Zlecenia oczekujące na noc: dlaczego ich nie zostawiam
W skrócie: w moich botach zlecenie oczekujące (stop, limit) żyje najwyżej do końca sesji. Wieczorem je kasuję, a nowe wystawiam następnego dnia. Noc to czas z cienkim rynkiem, szerokim spreadem i lukami, a zlecenie wiszące bez nadzoru wykona się w najgorszej możliwej chwili.
Cztery powody
1. Luka. Stop z poziomem w środku nocnej luki wypełnia się po cenie otwarcia, nie po swojej. Wejście bywa gorsze o kilkanaście punktów od planu, a stop loss ustawiony względem zakładanej ceny wejścia jest wtedy za blisko albo za daleko. Mechanizm opisuję w artykule o luce cenowej.
2. Spread po przerwie. Po przerwie dobowej i na otwarciu azjatyckim spread bywa kilkukrotnie szerszy niż w dzień. Zlecenie typu stop odpala się na cenie Ask lub Bid, więc szerszy spread może je uruchomić na samym szumie, bez prawdziwego ruchu. Wynik w backteście tego nie pokazuje, jeśli test bierze stały albo uśredniony spread (zobacz spread w backteście).
3. Wygasanie po stronie brokera. Zlecenie z terminem ważności u jednych brokerów znika o północy czasu serwera, u innych działa do odwołania, a przy zmianie czasu doba ma inną długość. Bot, który zakłada, że zlecenie wciąż jest, a ono zniknęło, albo odwrotnie, liczy pozycje błędnie. Szczegóły: wygasanie zleceń oczekujących.
4. Reguły prop firm. Część firm zabrania trzymania pozycji przez weekend, a zlecenie oczekujące, które odpali się w nocy lub w poniedziałek rano, otwiera pozycję wtedy, gdy nikt jej nie pilnuje. Przy limicie dziennej straty jedna nocna transakcja zjada margines, zanim dzień się zacznie (zakaz trzymania przez weekend).
Co robię w kodzie
Bot sam usuwa swoje zlecenia oczekujące o ustalonej godzinie przed końcem sesji (godzina z inputu, standardowo ta sama co zamknięcie pozycji) i nie wystawia nowych po niej. Usuwa tylko własne zlecenia, rozpoznane po numerze magic, nie cudze. Nie polegam wyłącznie na terminie ważności po stronie brokera, bo jego zachowanie bywa różne. Wyjątek: strategie, które świadomie handlują otwarcie następnego dnia, wystawiają zlecenie dopiero po otwarciu sesji, a nie dzień wcześniej.
Kiedy to może mieć sens
Zlecenia na kilka dni stosują ręczni traderzy handlujący wykresy dzienne, z szeroką tolerancją na luki i niskim ryzykiem na pozycję. Dla bota na M5-H1 z limitem dziennym straty i ryzykiem liczonym od odległości SL korzyść jest niewielka, a ryzyko trudne do oszacowania.
Checklista
- Czy bot kasuje swoje pendingi przed końcem sesji?
- Czy kasowanie dotyczy tylko zleceń z jego numerem magic?
- Czy nowe zlecenia nie są wystawiane po ustalonej godzinie wieczornej?
- Czy w teście sprawdziłem zachowanie na luce i na szerokim spreadzie po przerwie?
- Czy reguły firmy nie zabraniają pozycji przez noc lub weekend?
Powiązane
Źródła
Brak źródeł zewnętrznych - opis z własnych zasad pisania botów.
Ostrzeżenie: artykuł ma charakter edukacyjny i nie jest poradą inwestycyjną. Wyniki z przeszłości nie gwarantują przyszłych. Handel na rynkach finansowych wiąże się z ryzykiem utraty kapitału.