Zwykły stop-loss i take-profit przyjęte przez serwer brokera pozostają aktywne po zamknięciu MT4. Wyłączenie laptopa nie usuwa tych dyspozycji. Inaczej działa wbudowany trailing stop i logika Expert Advisora: potrzebują pracującego terminala. Najważniejsze jest więc ustalenie, czy poziom ochronny został rzeczywiście zapisany u brokera, czy istnieje tylko jako reguła w programie.

Kliknięcie nie jest jeszcze potwierdzeniem

Terminal wysyła dyspozycję do serwera. Może ona zostać przyjęta, odrzucona albo pozostać z niejasnym dla użytkownika statusem po utracie połączenia. Przyczyną odrzucenia bywa nieprawidłowy poziom, niedozwolona odległość od ceny czy ograniczenia handlu. Przed zamknięciem programu odczytaj aktualny SL i TP w pozycji oraz komunikat wykonania.

Pozioma linia narysowana ręcznie na wykresie nie jest zleceniem. Podobnie „ukryty stop” w EA może być tylko lokalnym warunkiem zamknięcia. Jeśli pole SL na serwerze jest puste, nie zakładaj, że broker zna poziom zapisany w ustawieniach robota. Tę różnicę najlepiej sprawdzić na koncie demonstracyjnym, zanim powierzysz programowi kontrolę prawdziwej pozycji.

Zlecenie oczekujące przyjęte przez brokera również pozostaje po wyłączeniu terminala, do wykonania, anulowania albo wygaśnięcia zgodnie z jego warunkami. Samo zatrzymanie robota, który je utworzył, nie kasuje go. Przy kończeniu pracy strategii trzeba sprawdzić zarówno otwarte pozycje, jak i oczekujące dyspozycje.

Brak odpowiedzi nie mówi, jaki SL jest zapisany

To nie jest pytanie o to, czy laptop działa. Najpierw trzeba ustalić, którą wersję dyspozycji serwer rzeczywiście ma.

Przesuń diagram w bok, aby zobaczyć całość

Brak odpowiedzi nie mówi, jaki SL jest zapisanyWłasny model dwóch możliwych stanów serwera po próbie zmiany Stop Loss z 1,0900 na 1,0950. W obu wersjach lokalnie brakuje odpowiedzi. W pierwszej serwer przyjął zmianę i ma SL 1,0950, w drugiej zmiana nie została przyjęta i pozostaje SL 1,0900. Sam wspólny objaw nie odróżnia tych wersji. Dopiero aktualny odczyt właściwej nadal otwartej pozycji, po ponownym połączeniu i synchronizacji z serwerem, rozstrzyga stan w chwili odczytu. Nie jest to pełny katalog rzeczywistych stanów ani ocena ceny realizacji.JEDEN OBJAW, DWA STANYWłasny model po próbie zmiany SL.Żądana zmiana: 1,0900 → 1,0950Lokalny objaw: brak odpowiedziWersja AZmiana przyjętaSL: 1,0950Wersja BBez zmianySL: 1,0900Po połączeniu i synchronizacji:odczytaj aktualny stan tej pozycji.Stara kopia danych nie rozstrzyga.Brak odpowiedzi ≠ dowód odrzucenia

Założenia: Własny model informacyjny, dwie fikcyjne wersje zakończonej próby zmiany. Właściwa pozycja pozostaje otwarta, rachunek i identyfikator są znane, a po próbie nikt inny nie modyfikuje jej SL. Poziomy podano w USD za EUR. W obu wersjach obserwator nie otrzymał odpowiedzi; nie przypisujemy wersjom prawdopodobieństw. Rozstrzygający odczyt pochodzi z serwera po synchronizacji, nie ze starej kopii.

W wersji A serwer zapisał 1,0950, lecz odpowiedź nie dotarła do obserwatora. W wersji B nie przyjął zmiany i pozostaje 1,0900. Objaw lokalny jest taki sam; stan serwera inny. Nie wolno więc utożsamiać „nie zobaczyłem odpowiedzi” ani z odrzuceniem, ani z przyjęciem.

Przed dalszą decyzją sprawdź rachunek i identyfikator pozycji, połączenie oraz zakończoną synchronizację. Następnie odczytaj aktualny stan właściwej pozycji. W naszym modelu nowy, zsynchronizowany odczyt 1,0950 rozstrzyga na rzecz A, a 1,0900 na rzecz B. W rzeczywistym systemie sprawdź także, czy pozycja nadal istnieje, czy dyspozycja nie jest jeszcze przetwarzana i czy nie nastąpiła inna zmiana. Diagram celowo nie opisuje wszystkich tych stanów.

OrderModify dokumentuje modyfikację poziomów i wynik funkcji. To inna informacja niż brak zaobserwowanej odpowiedzi w naszym modelu. OrderSelect ostrzega, że pobrane wcześniej właściwości są kopią i mogą się zdezaktualizować. Sam ponowny odczyt starej lokalnej kopii nie zastępuje synchronizacji z serwerem. Ten przykład nie ustala automatycznej reguły ponawiania dyspozycji ani ceny przyszłego wykonania SL.

Ten sam brak odpowiedzi pasuje do dwóch różnych zapisów SL.

Serwer i terminal mają różne zadania

W MT4 zwykłe SL i TP obsługuje infrastruktura brokera. Nie wymagają otwartego wykresu na twoim komputerze. Lokalny program może natomiast dopiero obliczać, kiedy taki poziom zmienić. Jeżeli straci dostęp do notowań albo możliwość wysłania modyfikacji, ostatni potwierdzony stan rachunku nie zastępuje nowych decyzji, które program miał podjąć.

Co sprawdzić przed zamknięciem terminala
MechanizmPo zamknięciu lokalnego MT4Co potwierdzić
Standardowy SL i TPPozostają u brokeraPoziomy zostały przyjęte na serwerze
Zlecenie oczekującePozostaje według warunków ważnościTyp, wolumen, termin i przypisane SL/TP
Wbudowany trailing stopPrzestaje przesuwać SLCzy zdążył ustanowić pierwszy SL
EA i ukryty stopLokalna kopia nie wykonuje dalszej logikiCzy jest serwerowy poziom ochronny
EA w odrębnym terminalu na VPSMoże nadal działaćStan zdalnego procesu, połączenie i dziennik

Gdy SL lub TP są przypisane do zlecenia oczekującego, dotyczą pozycji powstałej po jego uruchomieniu. Nie są osobnymi pozycjami handlowymi. Jeśli zmieniasz lub usuwasz dyspozycję, zweryfikuj wynik na rachunku, zamiast wnioskować ze zniknięcia okna formularza.

Trailing stop: ostatni poziom zostaje, dalszy ruch ustaje

Wbudowany trailing stop MT4 działa w terminalu. Po osiągnięciu wymaganego zysku wysyła dyspozycję ustawienia SL w określonej odległości od ceny, a przy korzystnym ruchu próbuje go przesuwać. Nie jest to oddzielne zlecenie, które automatycznie wędruje wraz z rynkiem po wyłączeniu platformy.

Wybór trailing stopa nie musi od razu ustanowić SL. Przed osiągnięciem progu aktywacji nadal obowiązuje tylko wcześniej ustawiony zwykły stop, jeżeli taki istnieje. Po aktywacji trzeba sprawdzić, czy modyfikacja została przyjęta. Również nazwy „punkty” i „pipsy” nie są zamienne: przy typowym pięciocyfrowym EUR/USD 200 punktów platformy odpowiada 20 pipsom.

Alert cenowy także nie zamyka pozycji. Może wysłać powiadomienie, gdy działa odpowiedni mechanizm, lecz do wykonania transakcji potrzebna jest dyspozycja handlowa. Jeśli korzystasz z dodatkowej usługi alertów lub serwerowego trailingu brokera, sprawdź jej własne zasady; nie są automatycznie zasadami wbudowanej funkcji MT4.

Przykład: pozycja długa i trailing 20 pipsów

Rozważmy hipotetyczną pozycję kupioną po 1,1000, z początkowym SL 1,0970 i TP 1,1100. Trailing ma odległość 20 pipsów. Kiedy odpowiednia cena Bid rośnie do 1,1020, terminal może ustawić SL na 1,1000, jeśli warunki brokera pozwalają i serwer przyjmie zmianę.

Przy dalszym wzroście Bid do 1,1030 przyjęty SL może przesunąć się na 1,1010. Teraz zamykasz terminal. Na serwerze zostaje SL 1,1010 i TP 1,1100. Początkowy SL 1,0970 został zastąpiony, więc nie ma dwóch niezależnych stopów do tej samej pozycji.

Jeżeli później rynek wzrośnie do 1,1050, wyłączony terminal nie przesunie SL na 1,1030. Jeżeli cena spadnie i uruchomi ostatni zapisany stop, realizacją zajmie się broker. Wynik zależy od ceny wykonania i kosztów; stop ustawiony powyżej wejścia nie gwarantuje dokładnie obliczonego zysku netto.

Dlaczego „aktywny” nie znaczy „gwarantowany”

Zwykły stop-loss nie gwarantuje ani dokładnej ceny, ani natychmiastowego wykonania w każdych warunkach. Przy luce, braku płynności, przerwie handlowej lub problemie infrastruktury realizacja może nastąpić inaczej, niż wynika z prostego spojrzenia na poziom. Pozostawienie włączonego laptopa samo w sobie tego ryzyka nie usuwa.

W weekend zamknięty rynek walutowy nie dostarcza normalnego ciągu cen, po których da się realizować transakcje. Po otwarciu kurs może znajdować się już za stopem. Nie pisz więc planu ryzyka tak, jakby poziom SL był nieprzekraczalną granicą straty. Osobną usługą jest stop gwarantowany, jeśli broker oferuje go dla danego produktu i spełnione są jego warunki.

Przy pozycji długiej sprawdzaj cenę Bid, a przy krótkiej Ask. Poszerzenie spreadu może mieć znaczenie dla uruchomienia zlecenia, nawet jeśli sam wykres Bid wygląda spokojnie. Wyjaśnienie tej różnicy znajdziesz w podstawach MT4.

Dwie kopie programu mogą nadpisać lepszy poziom

Pracujący VPS nie usuwa problemu dwóch autorów zmian. Rozważ hipotetyczny model, w którym serwer zapisuje każdą przyjętą modyfikację SL tej samej pozycji. Początkowo przyjęty stop longa to 1,1010. Zdalny program wysyła 1,1030, a operator ze starszego widoku niemal równocześnie wysyła 1,1000.

Wynik zależy od kolejności przyjęcia, nie kolejności kliknięć
Przyjęte modyfikacjeKońcowy SLOdległość od wejścia 1,1050
1,1030, potem 1,10001,100050 pipsów
1,1000, potem 1,10301,103020 pipsów

Oba polecenia były poprawnie przyjęte w modelu. Odczyt potwierdzenia pierwszego nie wystarcza, bo drugie zmienia stan. Tabela nie określa rzeczywistej ceny wykonania stopa ani ograniczeń konkretnego brokera.

Przed pozostawieniem automatyzacji wyznacz jednego właściciela zmian tej pozycji albo jawny sposób współpracy. Własny program może odrzucać próbę obniżenia już odczytanego SL longa, ale sam odczyt i późniejszy zapis nie są automatycznie operacją niepodzielną. Test na demo powinien obejmować także ręczną zmianę podczas pracy EA oraz ponowny odczyt po obu potwierdzeniach. Obserwuj końcowy stan, zamiast liczyć liczbę komunikatów „sukces”.

VPS: zdalny komputer i hosting MetaQuotes

Na zwykłym VPS z systemem Windows można uruchomić pełny terminal z EA i skonfigurowanym trailing stopem. Musi on jednak pozostać aktywny i połączony z brokerem. VPS może ulec awarii, zostać zrestartowany lub stracić połączenie. Wykupienie usługi nie jest dowodem, że strategia faktycznie działa.

Wbudowany Virtual Hosting MetaQuotes jest inną usługą: migruje określone środowisko programów i sygnałów, zamiast udostępniać zwykły pulpit Windows. Nie przenosi skryptów, zabrania wywołań DLL, a EA po migracji mają zezwolenie na automatyczny handel. Lokalny przycisk AutoTrading nie służy do zatrzymywania odrębnego zdalnego terminala.

Nie zakładaj też, że lokalnie wybrany trailing stop został skopiowany razem z EA. Dla tej usługi trzeba potwierdzić odpowiednią logikę w migrowanym programie oraz jej działanie w zdalnym dzienniku. Odpowiedź moderatora serwisu MQL5 wskazuje, że lokalne ustawienia trailingu nie są przenoszone. Sam status „serwer uruchomiony” nie sprawdza wszystkich reguł strategii.

Kontrola przed przerwą w pracy

  1. Sprawdź połączenie i aktualne poziomy SL/TP odczytane z serwera.
  2. Przejrzyj zlecenia oczekujące i ich terminy ważności.
  3. Ustal, które funkcje zależą od EA, alertów lub lokalnego trailingu.
  4. Jeśli używasz VPS, sprawdź zdalny dziennik oraz możliwość zatrzymania właściwej kopii programu.
  5. Zapisz sposób dostępu do rachunku z drugiego urządzenia i kontakt do brokera na wypadek problemu.

Ćwiczenie na demo ma sprawdzać stan dyspozycji i procedurę obsługi. Nie dowodzi, że każdy przyszły stop wykona się bez poślizgu. Więcej o nadzorze nad programem znajdziesz w poradniku Expert Advisor.

Sprawdź, czy rozumiesz

Jedno krótkie ćwiczenie

Około 2 min · możesz spróbować ponownie

Po żądaniu zmiany SL nie zobaczyłeś odpowiedzi. Co rozstrzyga stan w przedstawionym modelu?

  • Stara lokalna wartość SL, bo była wcześniej potwierdzona.
  • Sam brak odpowiedzi oznacza pozostawienie starego SL.
  • Aktualny odczyt właściwej pozycji z serwera po synchronizacji.
Sprawdź odpowiedź i wyjaśnienie

Aktualny odczyt właściwej pozycji z serwera po synchronizacji.

Przy założeniu nadal otwartej pozycji i braku innych zmian nowy odczyt rozróżnia zapis 1,0950 od 1,0900.

Jeszcze jedno ćwiczenie

Początkowy SL 1,0970 został skutecznie przesunięty na 1,1010. Który poziom zostanie po wyłączeniu MT4?

Sprawdź odpowiedź

SL 1,1010. Zastąpił wcześniejszy poziom, a lokalny trailing przestanie go dalej przesuwać. Wykonanie zależy od rynku i zasad brokera.

Następny temat: Expert Advisor: działanie, testy i ryzyko robotów tradingowych →

Przy Expert Advisors sprawdzisz, które decyzje wymagają działającego programu i jak robot identyfikuje pozycje, którymi ma zarządzać.