Co oznacza dywergencja w ekspertach MT5?
Bezpośrednia odpowiedź
W MT5 „dywergencja” w ekspertach (EA) oznacza, że zachowanie lub wyniki EA nie są już zgodne z tym, czego oczekiwałeś na podstawie wcześniejszych testów lub innego przebiegu. Ta niezgodność może objawiać się różnymi decyzjami transakcyjnymi, różnym timingiem, różnymi wynikami zleceń lub osiąganiem przez EA różnych stanów wewnętrznych. „Dywergencja” nie jest pojedynczym wskaźnikiem ani gwarantowanym ostrzeżeniem; jest to opis niezgodności między przebiegami lub między założeniami a tym, co faktycznie się wydarzyło.
Mechanizm i definicja (jak powstaje dywergencja)
EA to program, który podejmuje decyzje na podstawie danych wejściowych i wewnętrznych reguł. Nawet jeśli dwa EA mają ten sam kod, dywergencja może rozpocząć się, gdy środowisko zasilające kod nie jest identyczne. Typowe źródła obejmują:
- Różne dane rynkowe: EA może obliczać wartości na podstawie serii cenowych, takich jak open, high, low, close lub timing ticków. Jeśli przechwycone dane się różnią, EA może obliczać różne sygnały.
- Różne szczegóły wykonania: Składanie zleceń zależy od sposobu ich przetwarzania. Niewielkie różnice w realizacji, timing lub kosztach mogą zmienić pozycje, co następnie zmienia późniejsze decyzje.
- Różny stan wewnętrzny: Wiele EA śledzi zmienne, takie jak istniejące pozycje, rozmieszczenie stop/limit lub flagi „czy ten warunek został już spełniony?”. Gdy stan różni się w dowolnym momencie, późniejsze zachowanie może się dalej rozchodzić.
- Różne założenia w testach a działanie na żywo: Backtesting i działanie na żywo mogą nie używać tego samego modelu dla timingu, spreadów, poślizgu lub sposobu sekwencjonowania zdarzeń.
Pomocny model myślowy jest następujący: dywergencja jest często reakcją łańcuchową. Niewielka różnica w danych wejściowych lub wykonaniu może popchnąć EA do nowego stanu, a następnie pozostała logika odnosi się do tego nowego stanu, powodując większe różnice później.
Dowód lub przykład (na co zwrócić uwagę)
Załóżmy, że uruchamiasz ten sam EA dwukrotnie w podobnym oknie czasowym:
- W przebiegu A pewien warunek staje się prawdziwy w określonym momencie i EA otwiera pozycję.
- W przebiegu B warunek staje się prawdziwy później lub wcale, ponieważ obliczone dane wejściowe się różnią (na przykład historia cen używana przez EA nie jest identyczna).
Od tego momentu późniejsze działania EA mogą się różnić, ponieważ zestaw otwartych pozycji, obliczenia ryzyka i logika zarządzania zleceniami są teraz inne.
Innym wzorcem jest dryf potwierdzania reguł: EA może wydawać się „przestrzegać swoich reguł” w backtestach, ale gdy uruchomisz go ponownie przy nieco innych danych wejściowych (inne granice świec, inne przechwytywanie ticków, inny timing wykonania), ta sama reguła może nie zadziałać. Jeśli następnie wybierzesz tylko te fragmenty, które nadal pasują, postrzegana zgodność może wzrosnąć, mimo że podstawowa niezgodność pozostaje.
Ograniczenia i ryzyka (czego dywergencja nie mówi)
Dywergencja jest informacyjna, ale nie oznacza automatycznie, że EA jest „błędny” lub że zawiedzie. Kluczowe ograniczenia obejmują:
- Brak gwarancji kierunku: Dywergencja może wystąpić zarówno, gdy wyniki się poprawiają, jak i gdy się pogarszają.
- Błąd retrospekcji: Po zaobserwowaniu wyników ludzie mają tendencję do skupiania się na wyjaśnieniu, które pasuje do wyniku. Na przykład mogą przypisywać zgodność „poprawnej logice”, ignorując, że małe różnice w danych wejściowych mogą również wyjaśniać niezgodności.
- Zmienne warunki rynkowe i konta: EA zależą od spreadów, prowizji, timingu wykonania i stanu konta. Nawet jeśli kontrolujesz kod, te czynniki mogą się nadal różnić.
- Inna metodologia testów: Backtesting może używać upraszczających założeń. Jeśli te założenia nie odpowiadają rzeczywistej sekwencji zdarzeń, dywergencja między testem a rzeczywistym zachowaniem jest oczekiwana.
Materialne tryby awarii często obejmują niezgodności stanu (EA uważa, że zarządza pozycją, która w rzeczywistości nie istnieje) oraz wrażliwość na kolejność zdarzeń (logika zależna od dokładnego timingu aktualizacji). Oba mogą powodować dywergencję, która rośnie w czasie.
Weryfikacja i kolejne pytanie (jak sprawdzić niezależnie)
Aby zweryfikować, co „dywergencja” oznacza w Twoim konkretnym przypadku, skup się na kontrolowaniu zmiennych, a nie na ocenianiu wyników po fakcie:
- Porównaj dane wejściowe używane przez EA w różnych przebiegach (ten sam symbol, ten sam timeframe, to samo źródło danych historycznych, ten sam timing sesji).
- Sprawdź różnice środowiskowe, które wpływają na sekwencję zdarzeń (feed danych, częstotliwość ticków, różnice w przetwarzaniu zleceń).
- Zbadaj zmiany stanu wewnętrznego w pierwszym punkcie, w którym przebiegi przestają być zgodne (na przykład, gdy warunek po raz pierwszy zadziałał inaczej).
- Uruchom ponownie z jedną zmianą na raz, aby móc przypisać dywergencję konkretnemu czynnikowi.