Wersja narzędzia: OkurraGlobal — wydanie 2.05
Uwaga o podziale rozdziałów. Ten rozdział opisuje jak obsługiwać panel OkurraGlobal — jego układ, sekcje, Apply, zapis konfiguracji. Znaczenie poszczególnych ustawień globalnych jest omówione w rozdziałach tematycznych: filtry globalne (10), Break Even Auto (12), Stop on Opposite (13), Daily P/L Limits (14), Equity Guard i Profit Target (15), Trading Hours (16). Tu poznajesz narzędzie; tam — mechanizmy.
Spis treści
5.1 Czym jest OkurraGlobal 5.2 Relacja z OkurraButton — siostrzane panele 5.3 Anatomia panelu 5.4 Dwa layouty: pionowy i poziomy (pasek zakładek) 5.5 Rodziny sekcji — co gdzie ustawiasz 5.6 Apply (N) — licznik zmian i zatwierdzanie 5.7 Save / Load .set — pełny setup całego EA 5.8 Globalne wskaźniki towarzyszące 5.9 Cross-sync z OkurraButton 5.10 Typowy cykl projektowania ustawień globalnych
5.1 Czym jest OkurraGlobal
Ten rozdział opisuje panel OkurraGlobal w wersji 2.29 — wersji z wydania 2.05. Panele mają własne numery, niezależne od numeru wydania (rozdział 23, „Skąd wiem, czy mam najnowszą wersję?”).
OkurraGlobal to drugi panel-projektant trybu projektowania — siostra OkurraButton. Tam, gdzie OkurraButton zajmuje się pięcioma strategiami (B1…B5), OkurraGlobal zajmuje się wszystkim, co wspólne dla całego EA: filtrami globalnymi, strażnikami konta, mechanizmem Break Even Auto, Stop on Opposite, Trading Hours, obiektami wykresu i ustawieniami samego panelu sterowania.
Podział jest prosty:
- OkurraButton = co robi każda z pięciu strategii (rozdział 4).
- OkurraGlobal = ramy, w których wszystkie strategie działają — filtry dzielone między buttony, limity chroniące konto, godziny pracy, mechanizmy koszyka.
Tak jak OkurraButton, OkurraGlobal jest narzędziem projektowym — układasz w nim ustawienia, oglądasz efekt (np. filtry globalne na wykresie przez wskaźniki towarzyszące), zapisujesz do .set. Niczego nie handluje. I tak jak OkurraButton, jest narzędziem bezpłatnym (rozdział 3.2) — działa od razu po instalacji, bez klucza i bez aktywacji.
Jest jedna istotna różnica praktyczna, do której wrócimy w sekcji 5.7: to z OkurraGlobal zapisujesz pełny .set — kompletną konfigurację całego EA (ustawienia globalne plus wszystkie pięć buttonów). OkurraButton zapisuje tylko buttony; OkurraGlobal zapisuje całość. Dlatego w praktyce OkurraGlobal jest częściej „panelem, z którego eksportujesz gotowy setup”.
5.2 Relacja z OkurraButton — siostrzane panele
OkurraButton i OkurraGlobal są pomyślane do wspólnej pracy na jednym wykresie projektowym (bez EA — rozdział 2). Domyślnie OkurraGlobal pojawia się po prawej stronie OkurraButton (z przesunięciem ustawionym tak, by panele nie nachodziły na siebie), więc po wrzuceniu obu na wykres masz po lewej projektant strategii, po prawej projektant ustawień globalnych.
Współpracują ze sobą na dwa sposoby:
- Wspólny plik
.set. Obie panele czytają i zapisują tę samą konfigurację. Gdy wczytasz.setw jednym, drugi może odświeżyć swoją część (cross-sync — sekcja 5.9). - Wskaźniki towarzyszące globalne vs lokalne. OkurraButton dociąga wskaźniki towarzyszące pokazujące filtry aktywnego buttona; OkurraGlobal dociąga te pokazujące filtry globalne (sekcja 5.8). Na wykresie mogą współistnieć — widzisz jednocześnie kontekst globalny i lokalny.
Jak OkurraButton, OkurraGlobal nie ma czego robić na wykresie z działającym EA — projektowanie trzymamy osobno od wykonania.
5.3 Anatomia panelu
Panel OkurraGlobal, od góry:
- Belka tytułowa — nazwa narzędzia, po lewej przycisk zwijania całego panelu (
[-]/[+]), po prawej mały przyciskH/V, który przełącza layout (sekcja 5.4); belka jest też uchwytem do przeciągania. Od 2.05 zwinięcie całego panelu jest pamiętane osobno dla każdego wykresu — przeżywa zmianę interwału, zmianę parametrów, ponowną kompilację i restart terminala. Usunięcie panelu z wykresu albo zamknięcie wykresu daje start rozwinięty. - Pasek statusu — komunikaty o stanie (np. „Loaded: …”, „Applied locally (state saved to disk)”, błędy).
- Górny rząd akcji — przyciski globalne: R (Reset), Apply, Save, Load (sekcje 5.6–5.7).
- Sekcje ustawień — 37 sekcji pogrupowanych tematycznie (sekcja 5.5), w jednym z dwóch layoutów (sekcja 5.4).
Mechanika edycji jest taka jak w OkurraButton (rozdział 4.6), poza listami wyboru: w OkurraGlobal menu rozwijają tylko ramki czasowe, a każde inne pole wyboru przełączasz kliknięciem. Wartości zmieniasz na trzy sposoby, zależnie od rodzaju pola:
- Liczby i teksty — klikasz pole, wpisujesz wartość, zatwierdzasz klawiszem ENTER (ESC anuluje).
- Pola wyboru (przełączniki i tryby) — każde kliknięcie przeskakuje na następną wartość w pętli (klik od razu zatwierdza, bez ENTER). Tak działają m.in. przełączniki on/off, tryb wartości Equity Guard (waluta/procent), akcja Daily P/L, 3-stanowa akcja stopu, a także tryby z większą liczbą opcji.
- Ramki czasowe — kliknięcie rozwija menu, z którego wybierasz pozycję.
Tak samo jak w OkurraButton działa rozróżnienie draft → applied: edycja trafia do wersji roboczej, a dopiero Apply ją zatwierdza (sekcja 5.6), a niezatwierdzone pole świeci się na złoto. Panel obsługuje też skalowanie wielkości, wybór rogu i pozycji, font Consolas oraz przeciąganie za belkę — jak panel-siostra.
5.4 Dwa layouty: pionowy i poziomy (pasek zakładek)
OkurraGlobal ma więcej sekcji niż OkurraButton (37 wobec 12), więc oferuje dwa sposoby ich rozłożenia. Przełącza je mały przycisk H/V po prawej stronie belki tytułowej; tekst przycisku nazywa layout, na który przejdziesz: H — poziomy, V — z powrotem pionowy. W panelu Global domyślny jest layout poziomy — świeży panel startuje z paskiem zakładek (OkurraButton startuje pionowo, rozdział 4.11).
Layout pionowy (klasyczny). Sekcje ułożone jedna pod drugą, każda zwijana przez nagłówek z +/−. Przewijasz panel i rozwijasz te, nad którymi pracujesz. W tym layoucie każdy nagłówek sekcji ma też przycisk „A” — skrót do pełnego Apply: zatwierdza cały panel, tak jak główny przycisk Apply (sekcja 5.6), a nie tylko tę sekcję. Przyciski „A” można wyłączyć w ustawieniach panelu (F7, pole Per-section "A" quick-Apply buttons (vertical layout only)); fabrycznie są włączone.
Layout poziomy (pasek zakładek). U góry panelu (pod rzędem akcji) pojawia się poziomy pasek 37 wąskich zakładek — po jednej na sekcję. Etykieta każdej zakładki to krótki kod sekcji pisany litera po literze, w pionie (np. DPL, EG, GSAR, GOKUR, TH). Klikasz zakładkę i panel pokazuje tylko tę jedną sekcję w pełnej szerokości, z jej tytułem nad wierszami; sekcje nie mają tu przycisków +/− ani „A”. Panel jest w tym layoucie szerszy, bo mieści cały pasek zakładek. To trzyma panel kompaktowym pionowo — zamiast długiej listy masz „kartoteki” przełączane jednym kliknięciem. Wygodne, gdy projektujesz punktowo (np. tylko Trading Hours) i nie chcesz przewijać całości.
Przełącznik między layoutami oraz wybrana zakładka są zapamiętywane (per wykres), więc panel wraca do Twojego układu po zmianie ramki czasowej czy restarcie.
Który layout wybrać? Pionowy jest dobry, gdy chcesz widzieć kilka sekcji naraz i przewijać. Poziomy — gdy masz dużo sekcji i wolisz skakać między nimi jak po zakładkach. To czysto wizualna preferencja; nie wpływa na projektowane ustawienia.
5.5 Rodziny sekcji — co gdzie ustawiasz
Trzydzieści siedem sekcji brzmi jak dużo, ale układają się w dziewięć logicznych rodzin. Kolejność na panelu jest celowa: od ustawień systemowych (Global Core), przez zarządzanie pozycją i pieniędzmi, filtry i mechanizmy koszyka, po ustawienia panelu robota; na końcu stoją trzy sekcje modułu Time Setups.
| Rodzina | Sekcje na panelu | Znaczenie → rozdział |
|---|---|---|
| Pozycja i strażnicy konta | Global Position Management · Lot Volatility Scale (ATR) · Daily P/L Limits · Equity Guard · Profit Target · T. on Server | 9, 14, 15 |
| Sesja handlowa | Trading Hours | 16 |
| Filtry globalne | Global SAR Filter · Global MMD Filter · Global SR Filter · Global OKUR Filter · Volatility Gate (ATR) | 10 |
| Break Even Auto | Break Even Auto (BEa) · BEa Auto-Arm: Time-of-day / SAR Flip / MMD Cross / SR Break / OKUR Cross | 12 |
| Stop on Opposite | StopOpp Setup · StopOpp SAR · StopOpp MMD · StopOpp SR · StopOpp OKUR | 13 |
| Obiekty wykresu | Activation Zones · Target Lines | 11 |
| Czujniki ruchu ceny | Price Movement (ustawienia wspólne + 4 bloki czujników) | 18 |
| Panel i system | Control Panel (+ Info, + Layout) · Global Core · Alerts · Panel: Global Actions / Status + Target Blocks / Trade Markers | 8, 20 |
| Time Setups | Time Setups · Time Setups: Minute Lists · Time Setups: Visuals | 19 |
To samo słowami: pozycję i strażników konta ustawiasz w sekcjach Global Position Management, Lot Volatility Scale (ATR), Daily P/L Limits, Equity Guard, Profit Target i T. on Server (rozdziały 9, 14 i 15), godziny pracy — w Trading Hours (16), filtry globalne — w Global SAR Filter, Global MMD Filter, Global SR Filter, Global OKUR Filter i Volatility Gate (ATR) (10), tarczę BEa — w Break Even Auto (BEa) i pięciu sekcjach BEa Auto-Arm (12), reakcję na sygnał przeciwny — w StopOpp Setup i czterech sekcjach StopOpp dla filtrów (13), strefy aktywacji i linie celu — w Activation Zones i Target Lines (11), czujniki ruchu ceny — w Price Movement (18), panel robota i ustawienia systemowe — w Control Panel (z Info i Layout), Global Core, Alerts i trzech sekcjach Panel: … (8, 20), a minutki — w trzech sekcjach Time Setups (19).
Kilka uwag praktycznych do tego podziału:
- Filtry globalne (5 sekcji) to wspólne zestawy SAR/MMD/SR/OKUR, do których buttony „podpinają się” przez opt-in Use Global … Filter (rozdział 4.5, znaczenie w 10). Tu ustawiasz je raz dla całego EA. Sekcja Global SR Filter ma — obok wiersza SR Reaction Mode — wiersz „SR Last Zone Mode”: tryb, w którym ostatnia potwierdzona strefa SR wyznacza jedyny dozwolony kierunek wejść (rozdział 10.5). Piąta sekcja, Volatility Gate (ATR), to globalna bramka zmienności, do której button podpina się polem
Use Global Volatility Gate (ATR)(rozdział 10). - Break Even Auto to aż sześć sekcji — sam BEa plus pięć osobnych sekcji wyzwalaczy Auto-Arm (Time, SAR, MMD, SR, OKUR). To odzwierciedla, że każdy wyzwalacz ma własne, niezależne parametry (rozdział 12). Sekcja BEa Auto-Arm: OKUR Cross mieści od wydania 1.28 dwa wyzwalacze na wspólnej instancji oscylatora: strefowy OKUR transition oraz wiersze Bounce (arm on pull-back) / Bounce BUY Th / Bounce SELL Th / Bounce Correction — szósty wyzwalacz, uzbrajający na odbiciu od ekstremum wyczerpania (rozdział 12.7). Sama sekcja „Break Even Auto (BEa)” mieści też komórki sterujące strażnikiem i rozmiarem dokładek: Zero-level guard (od Global 1.15 — strażnik poziomu zero na własnym przełączniku, domyślnie włączony), Adapted sizing, Multisize x / step / max lot (od wydania 2.00 mnożnik przyjmuje ułamki, a wartości poniżej 1 dają degresję — rozdział 12.6), Adapted 1st hedge % of basket (od Global 1.15 — skala pierwszej dokładki tarczy), Adapted tolerance unit (od Global 1.15 — jednostka progu: loty albo % chronionego koszyka) oraz Adapted tolerance (0=flip, -=early) — próg strażnika poziomu zero (do Global 1.14 etykieta „Adapted tolerance lots (0=flip)”); do tego wiersz 1st hedge open on arm (dawniej „Instant open on arm”) oraz Manual arm incl. all (domyślnie włączona — ręczne uzbrojenie zgarnia cały kierunek; rozdział 12.3); od Global 1.23 na końcu sekcji także para Auto-Arm Mode SELL / BUY — tryb łączenia wyzwalaczy Auto-Arm danego kierunku (any (OR) = pierwszy spełniony uzbraja, domyślnie; all (AND) = konfluencja wszystkich włączonych; rozdział 12.8); znaczenie wszystkich opisuje rozdział 12.6.
- Stop on Opposite to pięć sekcji — wspólna StopOpp Setup plus po jednej na filtr (SAR/MMD/SR/OKUR), z parametrami niezależnymi od filtrów wejścia (rozdział 13). Sekcja StopOpp Setup (od Global 1.25) lustruje grupę F7 „Stop Opposite Setup” i zawiera wiersz Sources Mode (all buttons) — globalny tryb łączenia aktywnych filtrów SO buttona (any (OR) = pierwszy przeciwny reaguje, domyślnie; all (AND) = reakcja dopiero przy wszystkich przeciwnych naraz; rozdział 13.9). Ustawienie jest wspólne dla wszystkich źródeł i wszystkich buttonów — dlatego mieszka we własnej sekcji, a nie w żadnej z sekcji per filtr.
- Daily P/L Limits ma od 2.05 wiersz Scope (pod Rollover Pause (min)): czy dzienny limit liczy tylko wynik tego robota (this EA, fabrycznie — pozycje z jego Magic Number na tym symbolu: wynik zrealizowany od resetu dnia plus bieżący) czy zmianę equity całego konta od resetu dnia (whole account). W oknie Inputs EA to pole
DPL scope: OFF = this EA only (default), ON = whole account equity; ustawisz je w panelu Global albo w F7. Znaczenie w rozdziale 14.1. - T. on Server — osobna sekcja w rodzinie pozycji/strażników (na panelu pod tą etykietą): tryb wpisywania realnych SL/TP po stronie serwera brokera (z harmonogramem), alternatywa dla wirtualnych (stealth) SL/TP pilnowanych przez EA. Mechanizm omawiamy w rozdziale 9.
- Rodzina „Czujniki ruchu ceny” to jedna sekcja Price Movement (ustawienia wspólne rodziny + cztery bloki czujników po sześć wierszy) — fizycznie na panelu leży między StopOpp OKUR a Activation Zones; znaczenie w rozdziale 18.
- Rodzina „Panel i system” nie dotyczy strategii, tylko wyglądu i widoczności panelu sterowania EA — co pokazywać, jak rozłożyć. Global Core zawiera ustawienia systemowe: Magic Number oraz wirtualizację pendingów i SL/TP, a od wydania 2.04 także wiersz Time spans counted in — czy czas życia setupu, pauza po Equity Guard / Profit Target i czas trwania nowej strefy liczą się w minutach rynku (
market min, domyślnie) czy zegara (clock min); opis w rozdziale 9, §9.16. (Klucza licencyjnego panel nie pokazuje — podajesz go wyłącznie w inputach EA, rozdział 3.) Znaczenie tych ustawień omawiamy przy panelu EA (rozdział 8). Sekcje Panel: … i Control Panel ustawiają wygląd panelu robota. Od 2.05 panel robota ma też własny layout poziomy z paskiem pięciu zakładek (BTN,ACT,STAT,TRD,TSET), ale przełączasz go przyciskiemH/Vna belce samego panelu robota — w panelu Global nie ma do tego wiersza (rozdział 8.2a). Do tej rodziny należy też sekcja Alerts — jedenaście komórek wyciszania okienek alarmowych EA (od 2.05 także Own Registry Popup, który dotąd był tylko w oknie Inputs EA; opis niżej w tym podrozdziale). - Rodzina „Time Setups” to trzy sekcje modułu minutek (rozdział 19): Time Setups (zasady setupów), Time Setups: Minute Lists (listy minut i ich źródła) i Time Setups: Visuals (przełączanie celu i rysowanie). Wiersze, które doszły w 2.05, opisuje podrozdział „Sekcje Time Setups — nowe wiersze” niżej.
W tym rozdziale chodzi o to, gdzie te ustawienia są i jak je zatwierdzać. Po sens każdego z nich sięgaj do rozdziałów z kolumny po prawej.
To samo da się ustawić w samym EA. Każda z tych sekcji odpowiada grupie parametrów w oknie Inputs EA (np. Global Position Management, Daily P/L Limits, Equity Guard, T. on Server, Trading Hours…). OkurraGlobal nie jest więc technicznie konieczny — całość skonfigurujesz wprost w EA przez F7. Panel daje jednak czytelny podział na sekcje, podgląd filtrów globalnych na wykresie i złoty znacznik niezatwierdzonych zmian, więc projektowanie jest w nim wygodniejsze i mniej podatne na pomyłki niż w surowej, długiej liście Inputs (rozdział 8.1).
Komórki sekcji Position Management — m.in. odchylenie ceny (slippage)
W rodzinie Pozycja i strażnicy konta sekcja Position Management zbiera globalne ustawienia wykonania zleceń. Obok komórek „Max Spread (pts)” (maksymalny dopuszczalny spread) i „TS Min Delta (pts)” są tu dwie komórki odchylenia ceny (slippage):
- „Open Slippage (pts)” (domyślnie 20) — maksymalne dopuszczalne odchylenie ceny przy otwieraniu pozycji.
- „Close Slippage (pts)” (domyślnie 500) — maksymalne odchylenie przy zamykaniu. Większa wartość = mniej odrzuceń zamknięć (praktycznie wymuszone wyjście, kosztem nieco gorszej ceny).
Po co aż taki zapas przy zamykaniu: na kontach z egzekucją Instant broker honoruje dozwolone odchylenie i przy szybkim ruchu potrafi odrzucić zamknięcie lub modyfikację (requote). Hojny margines przy zamykaniu sprawia, że ochronne wyjścia (awaryjne zamknięcie Break Even, Equity Guard, wirtualny SL, ręczne Close All) nie są odrzucane. Na kontach Market odchylenie jest ignorowane (zamknięcie i tak idzie po rynku). Pojęcia Market / Instant execution oraz slippage — rozdział 3.
Wartości ustawiasz w panelu OkurraGlobal, a następnie — jak każdą konfigurację — zapisujesz do .set i wczytujesz do EA przez F7 (sekcja 5.7). Od 2.05 (panel 2.23) obie komórki naprawdę dają się edytować i liczą się w liczniku Apply (N) — do wydania 2.04 kliknięcie nie otwierało pola edycji. Wartość ujemną panel zamienia na 0.
Potwierdzenie akcji Time Setups (od 2.05). Obok przełączników Confirm Close All, Confirm Close Prof i Confirm Close Dir sekcja ma wiersz Confirm Time Setups (fabrycznie true; w oknie Inputs EA pole Show confirmation before Time Setups [C] / [X] / [R]). Decyduje on, czy przyciski [C], [X] i [R] sekcji Time Setups w panelu robota pytają o potwierdzenie, zanim cokolwiek zrobią (rozdział 19.13).
Normalizacja lota zmiennością (ATR) — sekcja Lot Volatility Scale (ATR)
Od wydania 2.00 robot ma normalizację lota zmiennością (ATR) — mechanizm, który skaluje bazowy lot wszystkich batonów według bieżącej zmienności rynku, fabrycznie odwrotnie do niej (wysoka zmienność = mniejszy lot, niska = większy). W panelu Global ustawiasz ją we własnej sekcji Lot Volatility Scale (ATR), tuż pod Global Position Management. Sekcja ma siedem komórek: włącznik Scale lot by volatility, ATR period i ATR timeframe, Reference ATR (pts, 0 = off) (= 100% lota; 0 = mechanizm bezczynny, nawet przy włączniku), widełki Min scale (%) i Max scale (%) (domyślnie 25–400%) oraz Scale direction (inverse — fabrycznie, odwrotnie do zmienności; proportional — lot rośnie ze zmiennością). Domyślnie całość jest wyłączona. Znaczenie i kalibrację opisuje rozdział 9.9; jak każdą sekcję Global, wartości eksportujesz przez .set (klucze LotATR_*) i wczytujesz do EA przez F7 — ta sama grupa nazywa się w oknie Inputs EA „Lot Volatility Normalization (ATR)”.
Monitor Own Only — tryb „tylko moje”
Komórka „Monitor Own Only” (domyślnie włączona) przełącza EA w tryb „tylko moje”: robot zarządza (Break Even, Trailing, wirtualny SL/TP, koszyki, wszystkie zamknięcia) wyłącznie pozycjami, które sam otworzył — a nie wszystkimi pozycjami o pasującym Magic Numberze na symbolu.
Po co to jest: gdy dwie instancje EA pracują na tym samym symbolu z tym samym (lub nakładającym się) Magic Numberem — np. dwa wykresy tego samego instrumentu z różnymi ustawieniami — bez tego trybu każda widziałaby pozycje drugiej jako własne („przenikanie”): liczyłaby je do koszyka, przesuwała im stopy, a przy Close All zamykała cudze. W trybie „tylko moje” każda instancja prowadzi własny rejestr pozycji (trwały plik w MQL5/Files/OKU/ea_memory/, rozpoznawany po koncie, symbolu, Magic i wykresie), który przeżywa restart terminala i rekompilację.
Skąd EA wie, że pozycja jest „jego”? Od EA 1.11 wpis do rejestru powstaje w chwili, gdy ta instancja wysyła zlecenie — a nie na podstawie Magic Number wyczytanego z powiadomień brokera. To celowe wzmocnienie: powiadomienia brokera bywają niekompletne (odrzucone zlecenie asynchroniczne potrafi wrócić bez Magic), a przy dwóch instancjach o wspólnym lub nakładającym się Magic rejestr karmiony powiadomieniami dopisywał każdej z nich także otwarcia sąsiadki — czyli dziurawił izolację dokładnie tam, gdzie miała chronić. Teraz pozycja sąsiedniej instancji nie trafi do rejestru nigdy; jedyny moment, w którym EA dopisuje pozycje „po Magic”, to jednorazowa adopcja przy pierwszym uruchomieniu trybu (patrz niżej).
Trzy zachowania, o których warto wiedzieć:
- Aktualizacja na żywym koszyku jest bezpieczna. Przy pierwszym uruchomieniu tego trybu (rejestr jeszcze nie istnieje) EA automatycznie adoptuje aktualnie otwarte pozycje o swoim Magic — nic nie wypada spod opieki. Gdyby rejestr już istniał, a jakieś pozycje mimo to zostały poza nim (przypadek awaryjny), w ustawieniach EA jest jednorazowy przełącznik
Global_OwnOnly_AdoptExisting(domyślnie wyłączony): włącz, zrestartuj EA — dopisze wszystkie bieżące pozycje o swoim Magic do rejestru — i wyłącz z powrotem. - Odporność na odmowy brokera. Pozycja jest wykreślana z rejestru dopiero, gdy faktycznie zniknęła z konta. Odrzucone przez brokera zamknięcie nie wyrzuca jej spod ochrony.
- Granica trybu: izoluje zarządzanie otwartymi pozycjami. Zrealizowany wynik dnia (Daily P/L) nadal liczy się per Magic Number — dwie instancje o wspólnym Magic wciąż współdzielą „dzienne zero”. Dlatego rozsunięcie baz Magic (co ≥7) pozostaje zalecane (rozdział 9); „tylko moje” chroni przed mieszaniem koszyków, nie zwalnia z higieny Magic.
Wiersze rejestru w panelu (od 2.05). Pod wierszem Monitor Own Only stoją cztery wiersze ustawień rejestru, które do wydania 2.04 ustawiałeś tylko w oknie Inputs EA (F7):
| Wiersz panelu | Fabrycznie | Co robi |
|---|---|---|
| Orphan positions | alert | co robot robi z pozycją-sierotą: off — nic; alert — wpis w dzienniku i okienko, bez zmian w handlu; adopt proven — dodatkowo przejmuje z powrotem pozycje z dowodem własności |
| Record pending tickets | false | zapisuje w rejestrze numer każdego zlecenia oczekującego wysłanego do brokera |
| Restart sweep: own list only | false | sprzątanie zleceń oczekujących po restarcie kasuje tylko zlecenia zapisane w rejestrze |
| Confirm ticket on deal | false | numer pozycji zapisany przy wysyłce robot potwierdza — i w razie potrzeby poprawia — według transakcji od brokera |
Pozycja-sierota to otwarta pozycja z Magic Number tej instancji na tym symbolu, której nie ma w jej rejestrze — na przykład powstała ze zlecenia oczekującego u brokera, gdy robot nie działał, została otwarta w innym środowisku (wbudowany VPS MetaTradera nie przenosi plików robota) albo na koncie netting zapisała się pod złym numerem. Przy włączonym Monitor Own Only robot taką pozycją nie zarządza: nie ma przy niej Break Even, trailingu ani wirtualnego SL/TP, nie liczy jej do koszyków i nie zamyka jej przyciskiem Close All. Wiersz Orphan positions (w oknie Inputs EA Orphan positions (own magic, missing from registry): Off / Alert / Adopt proven) mówi, co z nią zrobić, i działa tylko przy włączonym Monitor Own Only. Przy off robot ją pomija bez słowa. Przy alert (fabrycznie) robot sprawdza konto przy starcie i potem mniej więcej co minutę, każdą sierotę raz zapisuje w dzienniku Experts i pokazuje okienko, o ile włączony jest Own Registry Popup: sierota z dowodem własności dostaje własne okienko, pozostałe — jedno zbiorcze okienko na sesję; w handlu nic się nie zmienia. Przy adopt proven robot dodatkowo przejmuje z powrotem pozycje z dowodem własności — numerem zlecenia oczekującego zapisanym w rejestrze albo komentarzem transakcji Okurra_btn…, gdy na tym terminalu żadna inna instancja robota nie zarezerwowała tej samej bazy Magic na tym symbolu. Przejęta pozycja wraca pod pełną opiekę robota; gdy własność jest niejasna, robot tylko ostrzega.
Dwa kolejne wiersze dotyczą zleceń oczekujących wysyłanych do brokera (Virtual Pendings = false). Record pending tickets (w F7 Record broker pending ORDER tickets in the own-registry - ticket-proof ownership for pendings that realize while the EA is offline) zapisuje w rejestrze numer każdego takiego zlecenia; pozycja, która z niego powstanie pod nieobecność robota, ma wtedy najmocniejszy dowód własności. Restart sweep: own list only (w F7 Restart pending sweep cancels ONLY pendings recorded in the own-registry (protects overlapping-magic siblings; needs TrackPendingOrders)) zawęża sprzątanie po restarcie: robot kasuje wtedy tylko zlecenia zapisane w rejestrze, a zleceń innej instancji o nakładającej się bazie Magic nie rusza. Bez Record pending tickets nowe zlecenia nie trafiają do rejestru — robot pisze o tym notatkę przy starcie. Oba wiersze włącz, gdy pracujesz ze zleceniami u brokera, a na jednym symbolu działa kilka instancji o nakładających się bazach Magic. Confirm ticket on deal (w F7 Netting/slow-fill accounts: confirm the registered ticket from the broker deal event (repairs a wrong fallback ticket)) włącz na koncie netting albo u brokera, który potwierdza otwarcia z opóźnieniem: gdy wysyłka wróci bez transakcji, robot zapisuje pozycję pod numerem tymczasowym i poprawia go, gdy przyjdzie transakcja od brokera.
Jednorazowe przejęcie zostaje tylko w F7. Przełącznik One-shot: on init, adopt current magic+symbol positions into own-registry (use once when enabling on an open book, then set back to false) celowo nie ma wiersza w panelu. Służy do jednego użycia, a panel przenosi jego wartość do każdego zapisanego seta — set z włączonym przełącznikiem powtarzałby przejęcie przy każdym starcie robota, także po każdym wczytaniu pliku przez F7. Po przejęciu wyłącz go w F7 i zapisz set na nowo (rozdział 7).
Wyłączenie komórki przywraca dawne zachowanie (wszystko po symbolu+Magic). Pokrewna komórka „Markers Own Only” w sekcji Panel: Trade Markers zawęża analogicznie wizualizację transakcji (strzałki historii i linie pozycji) do tej instancji — szczegóły w rozdziale 20.
Close Model — jak EA wysyła zamknięcia
Dwie komórki sterują sposobem wysyłania zamknięć (Close All, Equity Guard, Profit Target, Basket Max Loss, BEa, wirtualny SL/TP):
- „Close Model (0=Auto 1=Sync 2=Async 3=Adapt)” (domyślnie 0 = Auto; do EA 1.22 domyślny był 3 = Adaptive) — tryb pierwszej próby zamknięcia:
- 0 Auto — zachowanie klasyczne: honoruje przełącznik Async Close All,
- 1 Sync — zawsze synchronicznie: każde zamknięcie czeka na potwierdzenie brokera, zanim poleci następne (najwolniej przy dużym koszyku, maksymalna przewidywalność),
- 2 Async — zawsze asynchronicznie: cały koszyk wysyłany od razu (najszybciej),
- 3 Adaptive — asynchronicznie, ale z uczeniem się: jeśli po wysyłce asynchronicznej broker zostawi niedomknięte pozycje, EA przechodzi na tryb synchroniczny na czas cooldownu, po czym sam próbnie wraca do asynchronicznego.
- „Adapt Sync Cooldown (min)” (domyślnie 30) — długość tego cooldownu w minutach.
Prozą o domyślnym zestawieniu (od EA 1.23): tryb Auto honoruje przełącznik Async Close All, a ten jest domyślnie wyłączony — więc bez zmiany ustawień każde zamknięcie czeka na potwierdzenie brokera (maksymalna przewidywalność). Kto chce szybszego zamykania dużych koszyków, włącza Async Close All albo przełącza model na Async/Adaptive — mechanika trybów bez zmian.
Siatka bezpieczeństwa działa zawsze. Niezależnie od modelu, po każdej wysyłce EA weryfikuje, czy pozycje naprawdę się zamknęły, a niedobitki dobija synchronicznie i alarmuje. Model wybiera tylko pierwszy strzał — weryfikacja i dobitka są nieusuwalne. Wyjątek: zamknięty rynek (od wydania 2.04). Gdy broker odmawia, bo rynek jest zamknięty (kod 10018 — przerwa dzienna albo weekend), wirtualny SL/TP, rozliczenie minutki, Timed Exit, reakcja na sygnał przeciwny i dosprzątanie po wyjściu masowym wysyłają jedną próbę na przerwę i czekają na otwarcie sesji (rozdziały 9.10, 13.2 i 19.15). Okienko
NOT closed by broker after ASYNC send. Retrying SYNC.pojawia się już tylko przy odmowie przy otwartym rynku. Tak samo zachowują się strażnicy koszyka: od wydania 2.04 Equity Guard w trybie celu (bez trailingu), Basket Max Loss i Profit Target w trybie „zamknij tylko stratne”, a od 2.05 także Equity Guard z trailingiem, Profit Target w trybie „zamknij wszystko” i dzienny limit z twardym zatrzymaniem. W trakcie pauzy „rynek zamknięty” nie wysyłają zamknięcia, a przy pierwszym ticku po niej sprawdzają swój warunek od nowa i zamykają tylko wtedy, gdy nadal jest spełniony (rozdziały 14.6 i 15.10). Od 2.05 zamknięcie odrzucone w przerwie niczego nie kasuje: Basket Max Loss zachowuje punkt odniesienia koszyka, Equity Guard — swój cel albo poziom trailingu, uzbrojona tarcza BEa zostaje uzbrojona, a dzienny limit wyłącza buttony dopiero po udanym zamknięciu. Zlecenia oczekujące (u brokera i wirtualne) zostają przy odmowie strażnika, Close All, Close BUY / Close SELL, linii celu i realizacji tarczy — również wtedy, gdy przerwa odrzuci zamknięcie dopiero przy wysyłce (rozdziały 8.5, 11.7, 12.6); reakcja na sygnał przeciwny i Timed Exit kasują zlecenia swojego buttona jak dotąd, bo z założenia zdejmują go z rynku. Warunek jest sprawdzany ponownie po przerwie, bo wynik liczony w przerwie to w dużej części spread, który po otwarciu rynku znika. Do wydania 2.04 odrzucone zamknięcie kasowało decyzję strażnika (rozdział 15.10). Przerwa działa też na minutki: od 2.05 minuta z listy Time Setups, która wypada w przerwie handlowej albo w pauzie po odmowie „market closed”, nie tworzy setupu — w dzienniku stoi jedna linia zSKIPPED: the trade session of <symbol> is shut at this minute(rozdział 19.11a).
Zanim EA cokolwiek wyśle, sprawdza też, czy handel w ogóle jest włączony (AutoTrading terminala + zgoda algo dla EA). Gdy nie jest — zamiast lawiny odrzuceń dostajesz jeden wyraźny alert „PROTECTION OFFLINE” co minutę (rozdział 22.6).
Commission per Lot — prowizja brokera w liczeniu wyniku
Komórka „Commission / 1.0 Lot RT (0=off)” (domyślnie 0 = wyłączone) podaje EA szacunkowy koszt prowizji brokera za 1.0 lota w obie strony (round-turn: otwarcie + zamknięcie), w walucie konta. Przykład: broker pobiera 3.50 USD za stronę → wpisz 7.0. Wartość znajdziesz w specyfikacji rachunku u brokera.
Po co to jest: platforma nie raportuje prowizji na otwartej pozycji — jej bieżący zysk/strata (floating) wygląda lepiej, niż jest naprawdę. Po wpisaniu wartości EA pomniejsza floating każdej otwartej pozycji o loty × koszt, dzięki czemu Equity Guard, Basket Max Loss, Daily P/L i panel Status widzą wynik netto i reagują na prawdziwych progach, nie zawyżonych o koszty. Dodatkowo:
- „Zamknij tylko zyskowne” (oraz Profit Target w trybie „zamknij tylko stratne”) nie uzna za zyskowną pozycji, która ledwie pokrywa własną prowizję.
- Tarcza BEa odsuwa poziom break-even tak, żeby „zero” pokrywało też prowizję koszyka — zamyka odrobinę później, ale na prawdziwym zerze po kosztach (rozdział 12.2).
Zamkniętych transakcji EA nie szacuje — tam zawsze liczy się faktyczna prowizja zaksięgowana przez brokera (w tym pobierana już przy otwarciu pozycji). Wartość 0 = liczenie wyniku dokładnie jak dotąd.
Sekcja Alerts — kontrola wyskakujących okienek
EA informuje o ważnych zdarzeniach okienkami alarmowymi MetaTradera (Alert), a opcjonalnie także powiadomieniami push na telefon. Przy intensywnym handlu okienek potrafi być dużo — sekcja Alerts (od EA 1.08 / Global 1.05) pozwala włączyć każdą grupę osobno. Jedenaście przełączników (dziesiąty — BEa Level Cross Popup — doszedł w EA 1.20 / Global 1.15; jedenasty — Own Registry Popup — w EA 1.26, a od wydania 2.05 (panel 2.23) ma też komórkę w panelu, więc panel pokazuje wszystkie jedenaście), od EA 1.23 domyślnie WYŁĄCZONE z jednym wyjątkiem: Own Registry Popup jest fabrycznie włączony (czysto informacyjny — rozdział 7.9). Pozostałe okienka włączasz świadomie, tylko te, które chcesz oglądać (do wersji 1.22 wszystkie były domyślnie włączone):
| Komórka | Kiedy alarmuje |
|---|---|
| Auto-Close Popup | strażnik automatycznie zamknął pozycje — okienko podaje, który (Equity Guard / Profit Target / Basket Max Loss / Target Line) |
| Daily Limit Popup | zadziałał dzienny limit zysku lub straty (Daily P/L, rozdział 14) |
| Naked SL Popup | button ma włączony wirtualny SL, ale StopLoss=0 — otwarcia są blokowane, okienko wyjaśnia dlaczego |
| Instance Conflict Popup | inna instancja EA używa tego samego lub nakładającego się Magic Number (rozdział 9); od 2.05 ostrzeżenie działa dla każdego wykresu tego terminala |
| BEa Armed Popup | po restarcie EA tarcza BEa nadal jest uzbrojona (rozdział 12) |
| BEa Level Cross Popup | poziom ochrony BEa przeszedł na stronę tarczy — chroniony koszyk potrzebuje ruchu rynku dalej przeciwko sobie, żeby wyjść na zero (rozdział 12.6) |
| Protection Offline Popup | AutoTrading jest wyłączony i wysyłki ochronne są blokowane — „PROTECTION OFFLINE” (rozdział 22.6) |
| Broker Refusal Popup | broker odmawia przesunięcia SL lub zamknięcia — w tym alerty o niedobitkach i ponowieniach |
| Trigger Loop Popup | wykryto pętlę triggerów między batonami i włączył się cooldown (rozdział 17) |
| Own Registry Popup (EA 1.26; w panelu od 2.05) | zdarzenia rejestru własności (rozdział 7.9): sierota z dowodem — indywidualny popup; przypadki bez dowodu — jeden zbiorczy popup na sesję; sprzątnięcie pendingów po restarcie; ostrzeżenie MagicBase ≤ 0 — jedyny przełącznik domyślnie włączony |
| Push Notifications | wspólny wyłącznik kanału push na telefon (MetaQuotes ID) |
Trzy zasady, które warto znać:
- Wyciszasz tylko okienko / push. Każdy przełącznik gasi wyłącznie kanał popup/push swojej grupy — wpis do dziennika Experts (log) zostaje zawsze, więc diagnostyka nie ślepnie (rozdział 22).
- Alerty licencyjne nie mają wyłącznika — celowo. Musisz zawsze widzieć, dlaczego EA nie handluje. Żeby nie były uciążliwe, okienko o tym samym, utrzymującym się problemie powtarza się najwyżej raz na 4 godziny (rozdział 3.7); wpis w dzienniku zostaje przy każdej próbie.
- Push wymaga MetaQuotes ID skonfigurowanego w MT5 (Tools → Options → Notifications). Bez niego włączony przełącznik po prostu nic nie wysyła.
Prozą o dziesiątym przełączniku: BEa Level Cross Popup alarmuje wyłącznie wtedy, gdy poziom ochrony tarczy BEa przechodzi na stronę dokładek — dla koszyka SELL cel znajdzie się nad ceną, dla koszyka BUY pod ceną, czyli chroniony koszyk potrzebuje już ruchu rynku dalej przeciwko sobie. Stan „zablokowany” (równe loty — celu i linii nie ma) jest celowo tylko w logu: przy tarczy wyrównującej występuje przy każdym uzbrojeniu i alarmowanie go zagłuszyłoby przypadek naprawdę groźny (rozdział 12.6).
Który alert robota jest domyślnie włączony? Tylko Own Registry Popup — dlatego, że jest czysto informacyjny: mówi o zdarzeniach rejestru własności pozycji i nigdy nie zmienia handlu, a pozostałe okienka od EA 1.23 włączasz świadomie. Od 2.05 ustawisz go w panelu Global (sekcja Alerts, wiersz Own Registry Popup) albo w oknie Inputs EA (F7).
Prozą o jedenastym przełączniku: Own Registry Popup (Global_AlertOwnRegistry, od EA 1.26) to jedyny alert włączony fabrycznie — czysto informacyjny, nigdy nie zmienia handlu (w testerze wyciszony). Obejmuje zdarzenia rejestru własności pozycji: sierota z dowodem własności dostaje indywidualne okienko, przypadki bez dowodu zbiera jeden zbiorczy popup na sesję, do tego komunikat o sprzątnięciu zleceń oczekujących po restarcie i ostrzeżenie o MagicBase ≤ 0. Od wydania 2.05 (panel 2.23) przełącznik ma w panelu Global własny wiersz Own Registry Popup — w sekcji Alerts, pod Trigger Loop Popup — więc ustawisz go w panelu albo w oknie Inputs EA (F7; tam pole Popup for own-registry events (orphan positions, restart pending sweep, MagicBase<=0). ON by default: purely informational, never changes trading). Set zapisany z panelu niesie Global_AlertOwnRegistry z wartością z tego wiersza, a świeży panel ma go włączonego (wartość fabryczna). Wczytanie takiego pliku przez F7 ustawia wartość z pliku. Wyłączenie (Global_AlertOwnRegistry=false) gasi tylko popupy — wpisy w dzienniku Experts zostają. Szczegóły i strażnik anty-zalewowy — rozdział 7.9.
Prozą o ostrzeżeniu o drugiej instancji: Instance Conflict Popup (w oknie Inputs EA Popup when another instance uses the same / overlapping MagicBase) dotyczy sprawdzenia, które robot robi przy starcie — czy inna instancja na tym samym symbolu nie używa tej samej albo nakładającej się bazy Magic Number. Od 2.05 ostrzeżenie działa dla wszystkich wykresów jednego terminala, także sąsiednich; do wydania 2.04 dwa wykresy otwarte jeden po drugim były dla tego sprawdzenia jednym wykresem w 15 przypadkach na 16. Ostrzeżenie jest tylko informacją: robot niczego nie zmienia w handlu, wpis w dzienniku Experts pojawia się zawsze, a okienko — tylko przy włączonym przełączniku. Po przeniesieniu robota na inny wykres bez zdejmowania go poleceniem Remove możliwe jest jedno fałszywe ostrzeżenie, bo w terminalu zostaje rezerwacja bazy ze starego wykresu.
Jak każdą sekcję Global — ustawienia eksportujesz przez .set (klucze Global_Alert…) i wczytujesz do EA przez F7; ta sama grupa „Alerts” jest wprost w oknie Inputs EA.
Sekcje Time Setups — nowe wiersze (od 2.05)
Moduł Time Setups (rozdział 19) ma w panelu trzy sekcje: Time Setups (zasady setupów), Time Setups: Minute Lists (listy minut i ich źródła) i Time Setups: Visuals (przełączanie celu i rysowanie). Od 2.05 (panele 2.23–2.27) doszły w nich nowe wiersze. Część z nich to ustawienia, które do wydania 2.04 zmieniałeś tylko w oknie Inputs EA (F7) albo w pliku .set (Stop range (pts), Shared TP/SL from files i cztery wiersze Server:); pozostałe to pola robota nowe w wydaniu 2.05. Jak każdy wiersz panelu, trafiają do pełnego .set (sekcja 5.7).
Nowe wiersze sekcji Time Setups, w kolejności panelu:
| Wiersz panelu | Fabrycznie | Co ustawia |
|---|---|---|
| Stop range (pts) — pod Target range (pts) | no stop (0) | stop setupu: odległość od poziomu aktywacji w punktach; 0 = bez stopu (19.7) |
| SELL target spread (pts) | 5 | dodatek spreadu do celu i stopu setupu SELL; 0 = spread z chwili aktywacji (19.7) |
| Setups waiting for entry — pod Max parallel per dir | hold a place | co robi setup bez pozycji: hold a place — zajmuje miejsce w limicie Max parallel per dir, a minuta ponad limit przepada; wait in line — miejsce zajmuje tylko setup z pozycją, pozostałe czekają w kolejce (19.11) |
| Max waiting per dir | no limit (0) | ile setupów jednego kierunku może czekać w kolejce; po otwarciu nowej minuty nadmiarowe najstarsze się kończą; działa tylko przy wait in line (19.11) |
| Kill scope — pod Kill / expiry action | all setups | które żywe setupy kończy godzina z wiersza Kill time (HH:MM[/days]): wszystkie albo tylko te bez pozycji (without positions) — setupy z pozycjami grają wtedy dalej do celu, stopu albo wygaśnięcia (19.10) |
| Catch-up late minute | off (0) | minuta z listy, w której nie powstała świeca M1, otwiera się na pierwszej świecy po niej, najwyżej N minut później (19.11a) |
| End opposite same-minute | false | gdy ta sama minuta stoi na liście BUY i SELL, pierwsza pozycja jednego setupu kończy setup przeciwny, o ile ten nie ma jeszcze pozycji (19.11a) |
| Gap tolerance +/- (min) — pod Min gap between setups (min) | off (0) | tolerancja ± wokół odstępu z wiersza Min gap between setups (min) (19.11) |
| Skip if TP hit in last (min) | off (0) | filtr „TP już był”: minuta jest odrzucana, gdy cel, który dostałby setup, padł w ostatnich N zamkniętych świecach M1 (19.11a) |
To samo słowami. Stop range (pts) (w oknie Inputs EA Stop distance from the activated level (points, 0 = no stop)) ustawia stop setupu, a SELL target spread (pts) (SELL target and stop: spread allowance added to the minute's TP and SL (points; 5 = TimeR Used Spread, 0 = the spread at the activation)) — dodatek spreadu do celu i stopu setupów SELL. Setups waiting for entry (Setups waiting for entry) wybiera, co robi setup bez pozycji: hold a place (w F7 Hold a place - new minutes are skipped) albo wait in line (Wait in line - nearest TP enters first), a Max waiting per dir (Waiting setups per direction at most (0 = no limit, Wait in line only)) ogranicza liczbę setupów czekających w kolejce. Kill scope (Kill scope: all live setups, or only setups without positions) wybiera, które setupy sprząta godzina z wiersza Kill time (HH:MM[/days]). Catch-up late minute (Catch up a listed minute without an M1 candle: open it up to N minutes late (0 = off)) pozwala dogonić minutę, w której nie powstała świeca M1, a End opposite same-minute (Same minute in both lists: the first position ends the opposite setup (if it has none)) kończy setup przeciwny tej samej minuty po pierwszej pozycji. Gap tolerance +/- (min) (Same-direction setups: +/- tolerance of the gap above - the best |C= class in the window opens, then the minute closest to the gap (0 = off, less than half the gap)) i Skip if TP hit in last (min) (Reject the minute if its target was already hit in the last N minutes (closed M1 candles, 0 = off; TimeR PRO)) to dwie bramki, przez które minuta przechodzi przy aktywacji. Szczegóły każdego ustawienia — w rozdziale 19, w sekcjach podanych w tabeli.
Godzina sprzątania z dniami. Wiersz Kill time (HH:MM[/days]) (do wydania 2.04 Kill time (HH:MM); w F7 Clear live setups at this time ("HH:MM" or "HH:MM/days", e.g. 23:00/12345; "" = off)) przyjmuje od 2.05 także listę dni po ukośniku, tak jak minuty z list: 23:00/12345 to godzina 23:00 od poniedziałku do piątku (1 = poniedziałek … 7 = niedziela). Panel sprawdza zapis przy zatwierdzeniu pola: minuta musi mieć dwie cyfry, a dni to cyfry od 1 do 7, każda najwyżej raz; puste pole wyłącza sprzątanie (wiersz pokazuje wtedy off). Niepoprawny zapis panel odrzuca — w pasku statusu pojawia się czerwony komunikat TSet_KillTime rejected - see Experts log, w polu zostaje poprzednia wartość, a powód stoi w dzienniku Experts.
Nowe wiersze sekcji Time Setups: Minute Lists, na jej końcu:
| Wiersz panelu | Fabrycznie | Co ustawia |
|---|---|---|
| Shared TP/SL from files — pod Shared SELL US | true | czy setup ze źródła wspólnego (folder TimeSetups) bierze cel i stop zapisane przy minucie w pliku; false — zawsze ustawienia robota (19.5a) |
| Shared min class (C=) | off (0) | minimalna klasa minuty z plików wspólnych: 1–9 — grają tylko minuty z klasą co najmniej taką, a minuta bez klasy nie gra; 0 = filtr wyłączony (19.5a) |
| Server: instrument from | chart symbol | skąd robot bierze klucz listy z serwera: z symbolu wykresu albo z wiersza niżej (manual key) (19.4) |
| Server: instrument key | - (puste) | klucz listy uzgodniony z serwerem, np. XAUUSD — także wtedy, gdy Twój broker nazywa symbol inaczej (19.4) |
| Server: broker UTC offset | measured | skąd robot zna przesunięcie zegara brokera względem UTC: mierzy je przy każdym pobraniu listy albo bierze z wiersza niżej (manual offset) (19.4) |
| Server: manual offset (min) | +0 min | przesunięcie w minutach, czytane tylko przy manual offset; +180 = UTC+3 (19.4) |
To samo słowami. Dwa pierwsze wiersze dotyczą źródła wspólnego, czyli plików z folderu TimeSetups: Shared TP/SL from files (w oknie Inputs EA SHARED source: use the per-minute TP/SL from the files) decyduje, czy setup bierze cel i stop zapisane przy minucie w pliku, a Shared min class (C=) (SHARED source: minimum minute class |C= (0 = off, 1..9; when on, minutes without a class do not play)) — od jakiej klasy minuta gra. Cztery wiersze zaczynające się od Server: (od panelu 2.27) dotyczą źródła serwerowego: Server: instrument from (SERVER source: where the instrument key comes from) i Server: instrument key (SERVER source: instrument key (agreed name, e.g. XAUUSD - not the broker symbol)) wybierają nazwę listy, o którą robot pyta serwer, a Server: broker UTC offset (SERVER source: how the broker's offset from UTC is obtained) i Server: manual offset (min) (SERVER source: broker offset from UTC in MINUTES (MANUAL only; +180 = UTC+3)) — sposób przeliczenia minut listy z UTC na zegar brokera. Te cztery wiersze mają znaczenie tylko wtedy, gdy wiersz Times source wskazuje źródło serwerowe (wartość server; panele sprzed wydania 2.05 podpisywały ją server (n/a)).
Co jeszcze panel odrzuca. Tak samo jak zły zapis godziny sprzątania — czerwonym komunikatem z nazwą wiersza w pasku statusu, z poprzednią wartością w polu i powodem w dzienniku Experts — panel odrzuca to, czego robot nie przyjąłby przy starcie: Gap tolerance +/- (min) równą połowie Min gap between setups (min) albo większą (i odwrotnie: odstęp, który nie jest większy niż dwie tolerancje) oraz Shared min class (C=) powyżej 9. Liczby ujemne w wierszach liczbowych tych sekcji panel zamienia na 0; wyjątkiem jest Server: manual offset (min), które przyjmuje wartość tak jak robot, także ujemną.
5.6 Apply (N) — licznik zmian i zatwierdzanie
OkurraGlobal — jak OkurraButton — rozdziela draft (Twoje bieżące edycje) od applied (zatwierdzony stan, z którego czytają wskaźniki towarzyszące i który eksportujesz). Apply przenosi draft → applied.
Tym, co OkurraGlobal dodaje, jest licznik zmian wprost na przycisku Apply. Gdy masz niezatwierdzone edycje, przycisk pokazuje Apply (N), gdzie N to liczba pól czekających na zatwierdzenie. Gdy wszystko jest zatwierdzone, przycisk pokazuje po prostu Apply. Dzięki temu od razu widzisz, ile zmian wisi w drafcie — pomocne przy dużej liczbie sekcji, gdzie łatwo zapomnieć, że gdzieś coś się jeszcze zmieniło.
W layoucie pionowym sekcje mają dodatkowo przyciski „A” — to skróty do tego samego, pełnego Apply: kliknięcie „A” przy dowolnej sekcji zatwierdza cały panel (wszystkie sekcje naraz), dokładnie jak główny Apply. Przycisk „A” nie pokazuje licznika i nie zatwierdza wybiórczo — jest po to, żebyś przy długim, przewiniętym panelu nie musiał wracać do głównego przycisku.
Co robi Apply (model manualny, rozdział 2.7):
- Draft → applied (zapis do wewnętrznego stanu
Global_applied.ini). - Odświeżenie globalnych wskaźników towarzyszących na wykresie.
Od 2.05 (panel 2.26) Apply w OkurraGlobal nie zapisuje już kopii OKU/history/auto_Global_<znacznik-czasu>.ini — żaden program jej nie czytał, a folder tylko rósł.
I tak samo jak w OkurraButton: Apply nie wysyła niczego do EA. Aby konfiguracja trafiła do robota — Save .set + F7 (sekcja 5.7).
Przycisk R (Reset) czyści zaaplikowany stan globalny (z zabezpieczeniem przed przypadkowym kliknięciem), nie tykając historii — analogicznie do Reset w OkurraButton.
5.7 Save / Load .set — pełny setup całego EA
To jest miejsce, w którym OkurraGlobal różni się funkcjonalnie od OkurraButton i dlatego bywa „głównym panelem eksportu”.
Save — zapis pełnego setupu. Kliknięcie Save w OkurraGlobal zapisuje do .set kompletną konfigurację całego EA:
- sekcję globalną (wszystkie ustawienia z 37 sekcji tego panelu),
- oraz parametry wszystkich pięciu buttonów (B1…B5).
To jest plik gotowy do wczytania do robota „jak leci” — masz w nim wszystko. Po kliknięciu Save otwiera się małe okienko zapisu z polem nazwy — nazwę nadajesz od razu, w samym dialogu (podpowiedziana jest domyślna Global_<znacznik-czasu>.set; zatwierdzasz „V”, anulujesz „X”). Plik ląduje w katalogu OKU/sets/; nazwę da się też zmienić później, w dialogu Load (rozdział 7.2).
Stempel wersji w secie (od 2.05). Od panelu 2.27 set zapisany przyciskiem Save niesie w kluczu SetSchemaRev stempel wersji. W wydaniu 2.05 jest to 6150319 — numer schematu ustawień, dla którego zbudowano panel. Stempel dostaje każdy zapis, także wtedy, gdy wczytany wcześniej do panelu set miał inny stempel albo nie miał żadnego. Ten numer nie zależy od robota, z którym pracujesz: o tym, jakie klucze są w pliku, decyduje panel, który go zapisał. Do 2.04 set ze świeżego panelu miał tu 0, czyli „bez stempla”, i robot niczego nie sprawdzał. Przy starcie robot porównuje stempel ze swoją wersją: gdy set powstał przed ostatnią zmianą listy parametrów albo pochodzi z nowszego wydania niż robot, pokazuje okienko z ostrzeżeniem i wpisuje je do dziennika Experts — set i tak się wczytuje.
Porównanie z OkurraButton. Save w OkurraButton zapisuje tylko buttony (B1…B5), bez sekcji globalnej. Save w OkurraGlobal zapisuje całość (globalne + buttony). Jeśli projektujesz pełny setup i chcesz jeden plik do EA — zapisuj z OkurraGlobal. Szczegółowe porównanie obu rodzajów
.set— rozdział 2.4, a pełny opis przenoszenia konfiguracji — rozdział 7.
Load — wczytanie .set. Otwiera przeglądarkę plików .set z OKU/sets/. Wybierasz plik, panel wczytuje z niego sekcję globalną (i — przez cross-sync — przekazuje OkurraButton jego część). W dialogu Load możesz też przemianować zapisane pliki.
5.8 Globalne wskaźniki towarzyszące
OkurraGlobal dociąga globalne wersje wskaźników towarzyszących — pokazujące na wykresie filtry globalne, czyli te, do których podpinają się buttony przez opt-in:
- automatyczne doładowanie globalnego SAR — nakłada wskaźnik OkurraGlobalSAR (kropki globalnego SAR).
- automatyczne doładowanie globalnego MMD — nakłada OkurraGlobalMMD (chmury globalnego MMD).
- automatyczne doładowanie globalnego SR — nakłada OkurraGlobalSR (strefy globalnego SR).
- automatyczne doładowanie globalnego OKUR — nakłada OkurraGlobalOscillator (globalny OKUR Filter w osobnym oknie).
- automatyczne doładowanie globalnego ATR — nakłada OkurraGlobalATR (pasmo bramki zmienności w osobnym oknie).
- automatyczne zdejmowanie wskaźników — usuwa te nakładki, gdy zdejmujesz OkurraGlobal z wykresu.
Od panelu 2.08 pięć włączników doładowania jest fabrycznie wyłączonych, a włącznik zdejmowania zostaje aktywny. Świeżo wrzucony OkurraGlobal nie dokłada więc do wykresu żadnego wskaźnika — ani nie zajmuje osobnych okien pod OKUR i ATR. Nakładkę, którą chcesz widzieć, włączasz w ustawieniach panelu (F7, pozycje „Auto-load …”) albo przeciągasz z Nawigatora.
Powód takiego ustawienia fabrycznego: pięć nakładek naraz to dwa dodatkowe okna pod wykresem i komplet obiektów na cenie, a przy projektowaniu prawie zawsze interesuje Cię jedna z nich. Taniej jest dołożyć tę jedną, niż zdejmować cztery niepotrzebne.
Panel usuwa tylko to, co sam dołożył. Przy wyłączonym doładowaniu OkurraGlobal zrzuca prawo własności do danej nakładki (zapisuje to w dzienniku Experts), więc wskaźnik dołożony ręcznie zostaje na wykresie także wtedy, gdy zdejmiesz panel.
Te wskaźniki pokazują kontekst globalny — niezależnie od tego, który button jest aktywny w OkurraButton. Dzięki temu, projektując filtry globalne, od razu widzisz na wykresie, gdzie wypadają, i możesz je dostroić tak, by pasowały do strategii, które będą się do nich podpinać. Pełny opis wskaźników towarzyszących (lokalnych i globalnych) — rozdział 6.
Stan zero — dwa warunki, nie jeden. Nakładka globalna pojawia się sama dopiero wtedy, gdy oba są spełnione: włączony jest jej „Auto-load …” w F7 (fabrycznie wyłączony) i włączyłeś dla niej „Show … On Chart” w panelu, zatwierdzone przyciskiem Apply. Zabraknie któregokolwiek — świeży wykres pozostaje pusty (rozdział 6.6).
Jeśli „Show … On Chart” jest włączone, a na wykresie nic nie ma, panel wpisuje do dziennika Experts jedną linię z nazwą wiersza i etykietą włącznika, który to blokuje — to nie jest usterka wskaźnika.
Set z panelu bez zapisanego stanu (od 2.05). Panel bez zapisanego stanu — świeżo wrzucony na wykres albo po przycisku R (Reset) — zapisuje do seta wartości fabryczne robota. Wyjątkiem jest celowo wyłączona wizualizacja:
Show Global SAR On Chart,Show Global MMD On Chart,Show Global SR On Chart,Show Global OKUR On ChartiShow Global Volatility Gate (ATR) On Chart, a w blokach batonów, które na tym wykresie nie mają zatwierdzonego stanu w OkurraButton, takżeShow SAR On Chart,Show MMD On Chart,Show SR Box On ChartiShow Oscillator On Chart. Drugim wyjątkiem jest położenie panelu robota w rogu wykresu:Panel X distance from corner (px)iPanel Y distance from corner (px)mają w takim secie 0. Panele do wersji 2.22 zapisywały tu jeszcze kilka wartości innych niż robot — m.in. pustą nazwę zestawu plików minut (przy źródle wspólnym robot odmawiał wtedy startu) i tryb Basket Max Loss w walucie zamiast w procentach.
5.9 Cross-sync z OkurraButton
Gdy oba panele są na tym samym wykresie, działa między nimi synchronizacja przy wczytywaniu .set (mechanizm opisany w rozdziale 2.5):
- Wczytujesz
.setw OkurraGlobal → OkurraGlobal wczytuje sekcję globalną, a OkurraButton (jeśli obecny) wczytuje z tego samego pliku parametry B1…B5. - Wczytujesz
.setw OkurraButton → OkurraButton wczytuje buttony, a OkurraGlobal wczytuje sekcję globalną.
Jedno wczytanie pliku odświeża więc oba panele — nie musisz ładować tej samej konfiguracji dwa razy. Synchronizacja jest lokalna dla wykresu i — co warto powtórzyć — nie dotyka EA. Żeby zmiana trafiła do robota, zapisujesz .set i wczytujesz go w EA przez F7.
5.10 Typowy cykl projektowania ustawień globalnych
Rytm pracy z OkurraGlobal jest bliźniaczy do cyklu z OkurraButton (rozdział 4.12), tylko dotyczy ram, w których działają strategie:
- Wrzuć OkurraGlobal na wykres projektowy (najlepiej obok OkurraButton, bez EA). Globalne wskaźniki towarzyszące nie pojawią się same — świeży panel ma je wyłączone; włącz te, które chcesz widzieć (sekcja 5.8, „Stan zero”).
- Wybierz layout — pionowy albo poziomy (sekcja 5.4; świeży panel startuje w poziomym) — zależnie od tego, jak wygodnie Ci się pracuje.
- Zaprojektuj ustawienia w rodzinach sekcji (sekcja 5.5): najpierw to, co rzeczywiście chcesz włączyć — np. filtry globalne, jeśli buttony mają z nich korzystać, i strażników konta, jeśli chcesz limitów. Reszta zostaje na sensownych defaultach.
- Apply. Obserwuj licznik
Apply (N)— gdy wraca doApply, wszystko jest zatwierdzone. Globalne wskaźniki towarzyszące przerysują się pod nową konfigurację. - Spójrz na wykres. Czy filtry globalne wypadają tam, gdzie chcesz, by bramkowały sygnały buttonów? Popraw i zatwierdź ponownie.
- Gdy całość gotowa — kliknij Save, by zapisać pełny
.set(globalne + wszystkie buttony). To ten plik wczytasz do EA (rozdział 7).
Zwykle projektujesz równolegle w obu panelach: buttony w OkurraButton, ramy w OkurraGlobal, a na koniec zapisujesz całość jednym Save z OkurraGlobal. Cierpliwość i obserwacja wskaźników towarzyszących — tu, jak wszędzie w trybie projektowania — są głównym narzędziem.
Na tym kończymy parę panel-projektantów. W kolejnym rozdziale przyglądamy się wskaźnikom towarzyszącym — ośmiu narzędziom wizualizacyjnym, które pokazują na wykresie to, co widzą filtry i oscylatory: jak je czytać, kiedy ich używać, jak współgrają z panelami i z EA.