Ten sam bot u trzech brokerów: te same wejścia, inny lot i wynik
W skrócie: u jednego brokera test challenge dla mojego bota miał 14 oblanych startów, u innego tylko 1. Zacząłem od podejrzenia, że jeden z brokerów ma błędne dane. Po porównaniu świec M1 i listy transakcji okazało się, że ceny są niemal identyczne, a wejścia te same. Różnicę zrobiły rozmiary pozycji i bliskość limitu 10%.
Pytanie
Bot na złoto (bot 2908_DonchianPullbackEA) skupiał oblane starty w jednym oknie od końca września do połowy października. U brokera A (14 FAIL) wyglądało to na problem z danymi, u brokera B (1 FAIL) nie. Zacząłem od danych, bo to najtańsza hipoteza do sprawdzenia, a skrypt porównujący świece trzech brokerów już miałem.
Porównanie świec
Po przeliczeniu czasów serwerów na UTC (przesunięcie potwierdziłem empirycznie: przy poprawnym offsecie średnia różnica zamknięcia to około 0,1 USD, przy błędnym o godzinę około 7 USD) porównałem 15 840 świec M1 z dwóch tygodni:
| Miara | Wynik |
|---|---|
| Świece z różnicą zamknięcia powyżej 1 USD | 8 z 15 840 (maks. 2,83 USD) |
| Średnia różnica zamknięcia między brokerami | 0,09-0,14 USD |
| Zakres dzienny (high-low) | zgodny do ok. 1 USD |
Dane są zgodne. Znalazłem tylko dwie rzeczy: jeden z brokerów nie ma notowań w ostatniej godzinie przed zamknięciem (świece są u dwóch pozostałych), i jedna świeca o skrajnym low na otwarciu sesji niedzielnej u tego samego brokera. To znane źródła różnic, o których piszę też w artykule o błędnym tiku w historii złota.
Porównanie transakcji
Następnie puściłem bota na tych samych ustawieniach u trzech brokerów i porównałem listy dealów (lista transakcji zamiast sumy):
- wejścia te same: ta sama godzina, kierunek i cena z dokładnością około 0,3 USD, 17 pozycji u każdego,
- ta sama seria około dziesięciu strat z rzędu w tym samym oknie,
- wynik nieco inny: suma strat narastająco od 20 września około -578, -621 i -676 (przykładowe wartości z testu, jeden z kont w innej walucie),
- na prawdziwych tikach wyszło to samo, więc różnica nie jest artefaktem modelu świec.
Różnica brała się z rozmiaru pozycji. Jedna pozycja z 5 października dała u brokera A lot 0,01 i stratę -18, a u pozostałych 0,04 i -81 oraz 0,05 i -91. Bot ustawia SL według kanału z ostatnich świec, więc jeśli kanał jest szerszy, SL jest dalej, a lot mniejszy. Mechanizm opisałem w artykule o SL a długości sesji brokera.
Dlaczego PASS zmienił się w FAIL
Seria strat doprowadziła drawdown na wszystkich trzech brokerach tuż do limitu 10%. U brokera A starty miały 5,4-9,8%, u pozostałych 10,0-10,1%. Limit i wynik leżą tak blisko siebie, że kilka dziesiątych procenta (średnio 0,1 USD na świecę) zmienia ocenę. To ten sam efekt, o którym piszę w artykule o PASS i FAIL zamiast profit factor: test blisko progu jest czuły i jeden wynik nic nie dowodzi.
Wnioski do praktyki
- Gdy wynik u dwóch brokerów się różni, najpierw porównaj świece (tanio), potem listę transakcji (precyzyjnie). Nie zakładaj błędu danych.
- Spodziewaj się różnych lotów u brokerów o innych godzinach sesji, jeśli bot liczy SL z ostatnich świec.
- Wynik blisko limitu prop (9-10% przy limicie 10%) traktuj jak niepewny, niezależnie od brokera.
- Testuj u brokera, u którego bot będzie handlował, a nie u najwygodniejszego (specyfikacja symbolu).
[DO UZUPEŁNIENIA: czy na koncie live po tej analizie coś zmieniłeś w botach (np. dolna granica SL)]
Checklista
- czasy serwerów przeliczone na UTC i offset sprawdzony na danych,
- porównane świece M1 (średnia różnica, liczba świec powyżej progu),
- porównana lista transakcji: godzina, kierunek, cena, lot,
- sprawdzone, czy różnica to lot, a nie wejście,
- test powtórzony na tikach,
- wynik blisko limitu prop oznaczony jako niepewny.
Powiązane
- Ten sam bot: SL a długość sesji brokera
- Dane brokerów: zły czas serwera
- Lista transakcji zamiast sumy
- Pojęcia z artykułu: słowniczek, skorowidz
Ostrzeżenie: handel CFD i forex wiąże się z wysokim ryzykiem utraty kapitału. Artykuł ma charakter edukacyjny i nie jest rekomendacją inwestycyjną.