Wersja narzędzi: OkurraButton 2.00 · OkurraGlobal 2.00 · O!kurra Capital Defense EA 2.00
Spis treści
7.1 Plik .set — przenośny artefakt konfiguracji 7.2 Zapis: jak powstaje .set 7.3 Dwa rodzaje .set — pełny i tylko strategie 7.4 Wczytanie w panelu (Load) i menedżer plików 7.5 Gdzie mieszkają pliki: sets, history, stan roboczy 7.6 Wczytanie do EA (F7 → Load) 7.7 Praktyka: nazewnictwo i zarządzanie wariantami 7.8 Klucz licencyjny a pliki .set 7.9 Rejestr własności pozycji i restarty
7.1 Plik .set — przenośny artefakt konfiguracji
Plik .set to most między projektowaniem a wykonaniem — jedyny sposób, w jaki zaprojektowana w panelach strategia trafia do robota (rozdział 2.4 i 2.7). Warto go rozumieć dobrze, bo całe Twoje archiwum strategii to właśnie zbiór plików .set.
Technicznie .set to zwykły plik tekstowy w standardowym formacie ustawień MetaTradera 5: każda linia to NazwaParametru=Wartość, a linie zaczynające się od średnika (;) to komentarze. Panele Okurra dopisują na początku pliku krótki nagłówek-komentarz z informacją, skąd i kiedy plik pochodzi (instrument, broker, znacznik czasu, oraz adnotacja, czy zawiera sekcję globalną). EA czyta .set natywnie — robot nie wie i nie obchodzi go, że plik powstał we wskaźniku Okurra; widzi poprawny .set, który da się wczytać.
Najważniejsza zaleta tego podejścia: konfiguracja jest trwałym dokumentem, nie ulotnym stanem. Każdy wariant strategii możesz nazwać, zarchiwizować, porównać z poprzednim, wczytać na innym koncie albo przekazać dalej. To dyscyplina, która procentuje, gdy badasz wiele wariantów — nie zgubisz tego, co działało.
7.2 Zapis: jak powstaje .set
Plik .set tworzysz przyciskiem Save w panelu (OkurraButton lub OkurraGlobal — rozdziały 4.8 i 5.7).
Po kliknięciu Save otwiera się małe okienko zapisu, w którym od razu wpisujesz nazwę pliku, a zatwierdzasz „V” (lub anulujesz „X”). To ważne: nazwę nadajesz w trakcie zapisu — nie musisz tworzyć pliku z bezosobowym znacznikiem czasu i dopiero potem go przemianowywać. Możesz od razu wpisać coś czytelnego, np. XAUUSD_mean-rev_M1. (Zmiana nazwy później też jest możliwa — w dialogu Load, sekcja 7.4.)
Plik ląduje w katalogu MQL5/Files/OKU/sets/ wewnątrz piaskownicy MetaTradera. Na początku pliku panel dopisuje nagłówek-komentarz, np.:
; --------------------------------------------
; F-ExportSet: Okurra .set written by OkurraButton
; --------------------------------------------
; symbol : XAUUSD
; broker : <nazwa brokera>
; timestamp : 2026.06.13 14:22:05
; --------------------------------------------
; Note : per-button sections only (B1..B5).
; Global section: use OkurraGlobal [Save] for that.
; --------------------------------------------
Plik zapisany z OkurraGlobal ma analogiczny nagłówek, tylko z opisem „F-ExportSet: Okurra EA setup snapshot (.set)” oraz dodatkowymi liniami source (skąd plik pochodzi) i ea_revision (rewizja EA, z którą zgodna jest konfiguracja). Dzięki temu, otwierając plik po tygodniach, od razu wiesz, z czego pochodzi i co zawiera.
7.3 Dwa rodzaje .set — pełny i tylko strategie
To z którego panelu klikniesz Save, decyduje, co znajdzie się w pliku (rozdział 2.4):
Save w OkurraGlobal → pełny setup. Plik zawiera sekcję globalną (wszystkie ustawienia wspólne EA) oraz parametry wszystkich pięciu buttonów (B1…B5). To kompletna konfiguracja całego robota — wczytujesz ją do EA jednym ruchem i masz wszystko. To jest plik, którym zwykle przenosisz gotowy setup do EA.
Nowsze ustawienia globalne też wędrują w
.set. Pełny plik z OkurraGlobal niesie m.in. przełącznik trybu „tylko moje” (Global_MonitorOwnOnly, rozdział 5.5), filtr znaczników „tylko moje” (Global_TradeMarkers_OwnOnly), model zamykania (Global_CloseModel) i jego cooldown (Global_CloseAdaptive_CooldownMin) — przenosząc setup na inny terminal, przenosisz też te zachowania. Jeden świadomy wyjątek:Global_OwnOnly_AdoptExisting(jednorazowa adopcja istniejących pozycji do rejestru „tylko moje”) istnieje wyłącznie w oknie Inputs EA (F7) i w.setnie wędruje — to bezpiecznik operacyjny, którego nie chcesz przypadkiem przenieść razem z konfiguracją.
Save w OkurraButton → tylko strategie. Plik zawiera wyłącznie parametry buttonów B1…B5, bez sekcji globalnej (nagłówek pliku wprost o tym informuje: „per-button sections only”). Przydatne, gdy chcesz przenieść same strategie, zachowując ustawienia globalne, które już masz w EA.
Którego użyć? Jeśli projektujesz kompletny setup i chcesz jeden plik do wczytania w robocie — zapisuj z OkurraGlobal (pełny). Plik z OkurraButton ma sens, gdy świadomie chcesz oddzielić strategie od ustawień globalnych (np. masz jeden zestaw globalny i kilka różnych zestawów buttonów do przetestowania na nim).
7.4 Wczytanie w panelu (Load) i menedżer plików
Przycisk Load w panelu otwiera przeglądarkę plików .set z katalogu OKU/sets/. To nie jest tylko „wybór pliku” — dialog działa jak mały menedżer:
- Wczytanie — wybierasz plik, a panel od razu przyjmuje go jako bieżącą konfigurację. Nie trzeba potem klikać Apply — wczytany
.setstaje się stanem zaaplikowanym, a wskaźniki towarzyszące przerysowują się pod niego. (W praktyce: pola nie świecą się na złoto, bo „robocze” i „zatwierdzone” są po wczytaniu identyczne — rozdział 4.7.) - Zmiana nazwy — w dialogu możesz przemianować plik (np. bezosobowy
Button_<znacznik-czasu>.setnaXAUUSD_scalp_M1.set). Wygodne porządkowanie archiwum bez wychodzenia z panelu. - Usunięcie — możesz też skasować plik
.set, którego już nie potrzebujesz. Kasowanie jest dwustopniowe (zabezpieczenie przed przypadkowym kliknięciem): pierwsze kliknięcie tylko uzbraja przycisk (prosi o potwierdzenie), a drugie kliknięcie dopiero usuwa plik. Pojedyncze kliknięcie niczego nie skasuje — jeśli w ciągu 5 sekund nie klikniesz drugi raz, zabezpieczenie samo się rozbraja i plik zostaje nietknięty.
Cross-sync przy wczytaniu. Jeśli na wykresie masz oba panele, wczytanie .set w jednym automatycznie odświeża drugi (mechanizm z rozdziału 2.5): wczytujesz pełny .set w OkurraGlobal → Global przyjmuje sekcję globalną, a OkurraButton z tego samego pliku przyjmuje B1…B5 (i odwrotnie). Jedno wczytanie wystarcza — nie ładujesz tego samego pliku dwa razy.
7.5 Gdzie mieszkają pliki: sets, history, stan roboczy
Wszystko, co narzędzia zapisują, trafia do katalogu MQL5/Files/OKU/. Z perspektywy codziennej pracy nie wchodzisz tam ręcznie — ale warto wiedzieć, co gdzie leży, bo to trzy różne rzeczy:
| Podfolder | Co zawiera | Rola |
|---|---|---|
OKU/sets/ | pliki .set (Twoje zapisane konfiguracje) | to, co wczytujesz do EA (F7) i co wczytuje Load w panelu |
OKU/history/ | kopie auto_B<N>_<TS>.ini, auto_Global_<TS>.ini, presety nazwane manual_B<N>_<etykieta>.ini, starsze offline_B<N>_<TS>.ini | rolujący backup + presety — auto-kopie dopisywane przy każdym Apply; manual_... powstają, gdy w okienku P OkurraButton nadasz zapisowi własną nazwę (rozdział 4.8) |
OKU/applied/ | B<N>_c<id>_applied.ini, Global_c<id>_applied.ini, pliki robocze | stan roboczy paneli — pamięć między odświeżeniami wykresu |
OKU/ea_memory/ | m.in. rejestr własnych pozycji EA ownreg_acc<login>_<sym>_mb<base>_ch<id>.csv | pamięć samego EA (tryb „tylko moje”, rozdział 5.5) — przeżywa restart terminala; nie ruszaj ręcznie |
OKU/diag/ | ea_activity.log (i pliki diagnostyczne) | dziennik aktywności EA — zapis wejść, transakcji i zdarzeń ochronnych (rozdział 21) |
Cztery rzeczy warte zapamiętania:
- Do EA trafia wyłącznie
.setzsets/. Pliki.iniwhistory/iapplied/to wewnętrzna pamięć paneli — robot ich nigdy nie czyta (rozdział 2.6). Jeden niuans: EA zapisuje własne pliki podglądu do podfolderuapplied/viz/— czytają je wskaźniki towarzyszące na wykresie z EA (żeby pokazać to, co robot faktycznie widzi); to ruch w drugą stronę, EA nadal niczego zapplied/nie wczytuje jako konfiguracji. - Nazwy plików stanu roboczego mają dopisek wykresu. Pliki w
applied/nazywają sięB<N>_c<id>_applied.ini/Global_c<id>_applied.ini, gdzie<id>to skrócony identyfikator wykresu — dzięki temu dwa wykresy tego samego instrumentu nie mieszają sobie stanu projektowego. Warto o tym pamiętać, gdy szukasz plików ręcznie. - Historia (
history/) to siatka bezpieczeństwa. Przy każdym Apply panel dopisuje tam kopię. Nie jest automatycznie czyszczona — pliki narastają, a kasujesz je ręcznie, gdy uznasz za stosowne. Dzięki temu możesz cofnąć się do wcześniejszego stanu projektu, nawet jeśli nie zapisałeś go jako.set. - Reset (
R) w panelu nie tyka historii. Reset czyści stan roboczy (applied/), alehistory/zostaje — więc nawet po resecie masz z czego odzyskać konfigurację (rozdział 4.8).
7.6 Wczytanie do EA (F7 → Load)
To ostatni krok mostu: przeniesienie zaprojektowanej konfiguracji do działającego robota. Odbywa się w samym EA, standardowym mechanizmem MetaTradera — nie ma tu nic specyficznego dla Okurra poza tym, że wskazujesz wcześniej zapisany plik .set.
Krok po kroku:
- Otwórz okno konfiguracji EA. Na wykresie z działającym (lub świeżo wrzucanym) EA naciśnij F7 — albo kliknij prawym na wykresie → Expert Advisors → Properties. Otworzy się okno z zakładką Inputs.
- Kliknij
Load(przycisk u dołu okna konfiguracji MT5). - Wskaż plik
.setzOKU/sets/— ten, który zapisałeś w panelu (najlepiej pełny, z OkurraGlobal). - Zatwierdź
OK. EA startuje (lub restartuje się) z wczytaną konfiguracją — wszystkie ustawienia globalne i pięć buttonów naraz.
Przypomnienie z rozdziału 2.7. Panele projektowe i EA pracują na osobnych wykresach. Plik
.setzapisujesz na wykresie projektowym (z panelami), a wczytujesz na wykresie wykonawczym (z EA). To świadome przeniesienie — robot zmienia konfigurację tylko wtedy, gdy sam wczytasz.set, nigdy „na żywo” z panelu.
.setdziała w obie strony. EA potrafi nie tylko wczytać.set, ale i zapisać bieżące ustawienia do.set— natywnym przyciskiem Save w tym samym oknie F7 (standard MetaTradera). Taki plik ma dokładnie te same nazwy parametrów co.setz paneli, więc możesz go wczytać z powrotem do OkurraButton/OkurraGlobal (Load), zmodyfikować na wykresie projektowym i zapisać jako nowy.set. Dzięki temu.setjest pełnoprawnym, dwukierunkowym formatem wymiany między panelami a robotem — nie tylko „panel → EA”. (To wciąż przenoszenie plikami, nie połączenie na żywo — rozdział 2.7.)
Sety sprzed wydania 1.28 — jak migrują. Nowe pola (Extreme Mode, Filters Mode, wiersze OKUR bounce) przyjmują przy wczytaniu starego pliku wartości domyślne, czyli zachowanie dokładnie sprzed 1.28 — z jednym wyjątkiem: jeśli stary set miał włączone „Keep Extreme Across Zone Exits” (pole usunięte w 1.28), to ustawienie przenosi się tylko przez panel. Wczytaj taki plik do OkurraButton (Load) — panel przetłumaczy stary klucz na Extreme Mode = Keep Across Exits — po czym Apply i Save dają plik w nowym formacie. Wczytanie starego pliku wprost do EA przez F7 po cichu pominie ten klucz i button wróci do Classic (MetaTrader ignoruje nieznane nazwy bez ostrzeżenia). Rozdział 9.6.
Sety 7-batonowe (sprzed wydania 2.00) — jak migrują. Klucze
B6_*/B7_*są przy wczytaniu po cichu pomijane (jak każde nieznane nazwy), a strategie B1–B5 z pliku działają bez zmian. Jedna rzecz jest przy tym aktywnie porządkowana: cel triggera wskazujący dawny B6/B7 — EA go ignoruje i wpisuje do dziennika komunikat o nieistniejącym celu, a panel Button czyści taki cel już przy wczytaniu pliku, więc nie przenosi go do nowych zapisów. Dwie zmiany wartości domyślnych (EA startuje z wyłącznikiem OFF, czujniki Price Movement fabrycznie wyłączone) dotyczą setów, które tych kluczy nie zawierają — pełna lista rzeczy do sprawdzenia przy aktualizacji: rozdział 3.5.
Iteracja. Gdy po obserwacji na demie chcesz zmienić strategię: wracasz do paneli, poprawiasz, zapisujesz nowy .set, i wczytujesz go w EA (znów F7). Stary .set zostaje w sets/ jako archiwum — możesz do niego wrócić i porównać.
7.7 Praktyka: nazewnictwo i zarządzanie wariantami
.set to Twoje archiwum badawcze — kilka nawyków sprawi, że za dwa tygodnie nadal będziesz wiedział, co jest czym:
- Nadawaj opisowe nazwy od razu przy zapisie. Zamiast
Button_20260613_142205.setwpisz w okienku zapisu coś, co opisuje zawartość:XAUUSD_meanrev_M1_v1,NAS100_momentum_3butt,hedge_symetryczny_test. Nazwa to pierwsze, co zobaczysz w dialogu Load. - Wersjonuj ręcznie sufiksem. Gdy iterujesz ten sam pomysł, dopisuj
_v1,_v2,_v3. Nie nadpisuj poprzedniej wersji — niech zostaje jako punkt odniesienia. To „ręczna historia” wariantów, czytelniejsza niż auto-kopie whistory/. - Trzymaj jeden „pełny” plik na setup. Najwygodniej operować pełnymi plikami z OkurraGlobal (Global + B1…B5) — jeden plik = cała konfiguracja robota. Pliki „tylko strategie” z OkurraButton zostaw na świadome przypadki (jeden zestaw globalny, wiele zestawów buttonów).
- Sprzątaj
history/, gdy urośnie. Auto-kopie z każdego Apply nie kasują się same. Gdy folder spuchnie, usuń stare ręcznie — ważne warianty masz przecież zapisane jako nazwane.set. - Notuj, co dany
.setmiał pokazać. Plik mówi jak skonfigurowałeś, ale nie po co. Krótka notatka („v3 — głębszy próg, mniej sygnałów, test pod trend”) obok obserwacji z demo domyka obraz. Nagłówek-komentarz w pliku możesz też uzupełnić własnym opisem w zwykłym edytorze tekstu — to przecież czysty tekst.
To wszystko składa się na rytm pracy z O!kurra: projektuj we wskaźnikach → zapisz .set → wczytaj w EA → obserwuj na demie → wróć do projektowania. Plik .set jest osią tego cyklu — i Twoim archiwum tego, czego się nauczyłeś.
7.8 Klucz licencyjny a pliki .set
Klucz licencyjny EA (parametr LicenseKey, rozdział 3.7) może — ale nie musi — podróżować w pliku .set. Warto wiedzieć, który plik go niesie i co się dzieje przy wczytaniu:
Który plik zawiera linię LicenseKey:
- Pełny
.setz OkurraGlobal — zawsze zawiera linięLicenseKey=. Panel Global nie weryfikuje klucza (wskaźniki są darmowe) — jego pole klucza to tylko podgląd wartości z ostatnio wczytanego pliku, więc w praktyce zapisywana linia jest najczęściej pusta. - Plik „tylko strategie” z OkurraButton — nigdy nie zawiera klucza (sekcja globalna nie jest zapisywana).
- Sety fabryczne wydań (
Okurra-Defaults-<wersja>.set) i sety z Kreatora — celowo nie zawierają liniiLicenseKeyw ogóle.
Co się dzieje przy wczytaniu przez F7 → Load:
- Jeśli plik zawiera linię
LicenseKey=(nawet pustą), jej wartość nadpisuje pole klucza w oknie EA. Pusta linia = wyzerowanie klucza — przy starcie EA pokaże alert “Enter your License key in EA inputs” i nie uzyska ważnej licencji. - Jeśli plik nie zawiera tej linii, pole klucza zostaje nietknięte — klucz, który wkleiłeś wcześniej, przeżywa wczytanie. Dlatego sety fabryczne i kreatorowe pomijają tę linię.
To nic trwałego i nic groźnego. Wyzerowany klucz to lokalna niedogodność — wystarczy wkleić go ponownie (licencja żyje na serwerze okurra.com, przypięta do Twojego konta). A nawet gdyby Twój klucz „wyjechał” w pliku udostępnionym innym: klucz działa wyłącznie na numerach rachunków MT5 przypisanych do niego w panelu okurra.com — na cudzym koncie nie przejdzie weryfikacji.
Zasada higieny przy udostępnianiu setów: zanim podzielisz się plikiem zapisanym z OkurraGlobal, otwórz go w edytorze tekstu i usuń linię LicenseKey=... (albo przynajmniej jej wartość). Klucza się nie udostępnia — a odbiorcy oszczędzisz niespodzianki z wyzerowanym własnym kluczem po wczytaniu Twojego pliku.
7.9 Rejestr własności pozycji i restarty
Robot pracujący w trybie „tylko moje” (Global_MonitorOwnOnly, rozdział 5.5 — tak działa fabrycznie) prowadzi prywatny notes swoich pozycji: przy każdym otwarciu zapisuje numer pozycji do małego pliku na dysku terminala. Po restarcie platformy, przeładowaniu F7 czy rekompilacji EA wczytuje ten notes i opiekuje się dokładnie tymi pozycjami, które sam otworzył — sąsiednia instancja na tym samym symbolu nie jest ruszana. Notes jest osobny dla każdej kombinacji: rachunek + instrument + baza Magic Number + wykres.
Co z tego wynika w praktyce:
- Zwykły restart platformy jest bezpieczny. Notes przetrwa, pozycje wracają pod pełną opiekę (BE/TS, wirtualny SL/TP, koszyki, Close All).
- Zlecenia oczekujące NIE przeżywają restartu — celowo. Lista pilnowanych zleceń żyje tylko w pamięci robota. Po każdym restarcie EA sprząta swoje osierocone zlecenia oczekujące u brokera, żeby stary, nieaktualny setup nie odpalił się po dniach bez nadzoru. Od EA 1.26 dostaniesz o tym komunikat (wcześniej działo się to po cichu — stąd zgłoszenia „robot wyciął mi zlecenia po restarcie”).
- Pozycja-sierota. Jeśli pozycja z Magic Number robota nie figuruje w notesie, robot w trybie „tylko moje” jej nie obsługuje: bez Break Even i Trailing, bez wirtualnego SL/TP (przy włączonym Virtual SL taka pozycja jest naga — stop nie istnieje też u brokera!), poza koszykiem BEa i strażnikami konta, a Close All jej nie zamknie. Skąd biorą się sieroty:
- zlecenie oczekujące zrealizowało się, gdy platforma była wyłączona (np. luka po weekendzie) — wpis do notesu nie miał się kiedy wykonać;
- pozycje otwarto w innym środowisku — wbudowany MetaTrader VPS nie przenosi plików robota (folder plików zostaje na komputerze), więc VPS i komputer lokalny prowadzą osobne notesy;
- rzadziej: konto typu netting lub wolne potwierdzenia brokera zapisały do notesu błędny numer.
Co nowego w EA 1.26 — wykrywanie i naprawa:
| Parametr (F7) | Fabrycznie | Działanie |
|---|---|---|
Global_OwnOnly_Reconcile | Alert | Skan przy starcie i co minutę: każda sierota trafia do dziennika. Indywidualny popup dostaje wyłącznie sierota z dowodem własności (to naprawdę Twoja zgubiona pozycja — rzadkie i krytyczne); pozostałe przypadki — najczęściej obce EA używające magic z zakresu robota — zbiera jeden zbiorczy popup na sesję, więc powiadomienia nie zaleją ekranu. Alert = tylko informacja, handel bez zmian. Tryb Adopt dodatkowo przygarnia sierotę z powrotem pod opiekę — wyłącznie z dowodem własności (zapisany numer zlecenia albo komentarz transakcji Okurra_btn przy braku drugiej żywej instancji na tej samej bazie MN). Wątpliwości nigdy nie są zgadywane — dostajesz alert z wyjaśnieniem. |
Global_OwnReg_TrackPendingOrders | wył. | Dopisuje do notesu także numery wystawianych zleceń oczekujących. Dzięki temu pozycja z „pendinga zrealizowanego pod nieobecność” ma twardy dowód własności i tryb Adopt przygarnie ją bezbłędnie. |
Global_StalePendings_OwnListOnly | wył. | Porestartowe sprzątanie zleceń kasuje wyłącznie zlecenia z notesu (ochrona drugiej instancji przy nachodzących na siebie zakresach MN). Wymaga włączonego zapisu numerów powyżej. |
Global_OwnReg_ConfirmTicketOnDeal | wył. | Dla kont netting / wolnych potwierdzeń: numer w notesie jest domykany z potwierdzenia transakcji brokera (naprawia błędny wpis, przepina też wirtualny SL/TP). |
Global_AlertOwnRegistry | wł. | Popupy (i push, jeśli włączony) dla zdarzeń rejestru: wykryta sierota, sprzątnięte zlecenia po restarcie, ostrzeżenie o MagicBase ≤ 0. Jedyny alert włączony fabrycznie — czysto informacyjny. |
VPS i drugi terminal — jedna żelazna zasada. Na jednym rachunku dana baza Magic Number powinna mieć jednego aktywnego robota naraz. Wbudowany MetaTrader VPS pilnuje tego sam (wykres „przeniesiony” na VPS przestaje pracować lokalnie), ale pamiętaj: pliki robota nie migrują — po każdej migracji notes na VPS zaczyna się od nowa (pierwszy start przygarnia pozycje po MN automatycznie), a notes lokalny nie zna pozycji otwartych na VPS. Po powrocie z VPS zobaczysz alerty o sierotach — to właśnie ten mechanizm; włącz tryb Adopt (albo jednorazowo
Global_OwnOnly_AdoptExisting), a robot przejmie je z powrotem.
Magic Number 0. Ustawienie
Global_MagicBase=0sprawia, że pierwszy baton handluje z MN = 0 — tak samo jak pozycje otwierane ręcznie (w raportach kolumna MN jest wtedy pusta). Robot i człowiek stają się nierozróżnialni. Od 1.26 EA głośno przed tym ostrzega; trzymaj bazę ≥ 1, a między instancjami odstęp co najmniej 5.
Na tym domykamy część o projektowaniu (rozdziały 4–7). W kolejnym rozdziale przechodzimy do wykonania — zaczynając od pełnej anatomii panelu sterowania EA: co widzisz na wykresie po wczytaniu konfiguracji i uruchomieniu robota, i jak sterować nim taktycznie w trakcie pracy.