EN
Artykuły / 8.2 Wiarygodność wyniku
Wiarygodność wynikuszkic

Lista transakcji zamiast sumy: jak znaleźć powód regresji wyniku

14.11.20263 min czytania

W skrócie: po przepisaniu trzech botów na wspólną klasę wynik jednego spadł z +16,4 tys. do +7,8 tys., a drugiego z +41,9 tys. do +14,0 tys. Szukanie przyczyny po sumach to zgadywanie. Porównałem więc listy transakcji z dwóch raportów, parami, dzień po dniu. Liczba wejść była ta sama, a cena wejścia gorsza średnio o 8 punktów.

Co zmieniłem i co się stało

Boty handlują na wybiciu z zakresu otwarcia Nowego Jorku z wejściem po cofnięciu. Przy porządkowaniu kodu przeniosłem ich wspólną logikę do jednej klasy i “uprościłem” dwie rzeczy: wejście sprawdzane raz na minutę i jeden wspólny punkt zerowy skali. Na papierze to bez znaczenia dla strategii. W teście wynik spadł o połowę albo o dwie trzecie.

Pierwszy odruch to szukać winy w sumach: ktoś źle policzył lot, zmienił się filtr, zepsuł się spread. Tak można tracić dni, bo suma zawiera setki transakcji i nie mówi, które z nich się zmieniły.

Metoda: pary transakcji zamiast sum

Wzięłem dwa raporty HTML z Testera, oryginalny i po zmianie, ten sam okres, ten sam symbol. Zamiast porównywać saldo końcowe, ułożyłem transakcje obok siebie według dnia i dla każdej pary zestawiłem czas wejścia, cenę, kierunek i wynik. Wnioski z tego były szybkie:

  • 175 z 176 wejść wypadało w tym samym dniu i w tym samym kierunku,
  • wejścia były w tej samej minucie,
  • stop loss był identyczny,
  • cena wejścia była średnio o 8 punktów gorsza (mediana 5 punktów).

Liczba transakcji identyczna oznacza, że logika sygnału jest ta sama. Różnica leży w jakości wejścia, nie w tym, czy bot wchodzi. To od razu wyklucza filtry, godziny sesji i większość błędów w sygnale.

Przyczyna i poprawka

Oryginał wchodził na pierwszym tiku, który dotknął poziom. Moja “uproszczona” wersja sprawdzała poziom raz na minutę, po zamknięciu świecy, więc wchodziła po tym, jak cena już odjechała. W strategii z krótkim celem kilka punktów gorszego wejścia to różnica między dobrym wynikiem a połową zysku. Po przywróceniu sprawdzania przy każdym tiku wyniki wróciły: w 2026 roku oba boty były identyczne co do grosza, a drugi w 2025 roku znów dawał +41 923.

Wniosek ogólny jest taki, że wynik strategii o krótkim celu jest bardzo wrażliwy na cenę wejścia. Ta lekcja doprowadziła mnie do dwóch kolejnych tematów: różnicy między testem na świecach a na tikach oraz do wejścia zleceniem limit zamiast rynkowym (oba opisałem osobno).

Pułapka: stare wiersze w pliku wyników

Przy takich porównaniach łatwo pomylić rozjazd wyniku z tym, że test się nie wykonał i w pliku wyników zostały stare wiersze. Zanim porównam, sprawdzam, że oba raporty mają świeży znacznik czasu i właściwy okres.

Jak to robię teraz

  1. Zapisuję raport z wersji sprzed zmiany jako punkt odniesienia, zanim cokolwiek ruszę.
  2. Po zmianie uruchamiam ten sam okres i porównuję listę transakcji, nie tylko saldo.
  3. Szukam najpierw różnicy w liczbie wejść (logika), potem w cenie wejścia (wykonanie), potem w wielkości lota.
  4. Zmianę, która “nie powinna nic zmieniać”, traktuję jak każdą inną: bez zgodności list transakcji nie uznaję jej za neutralną.

Checklista

  • Mam raport referencyjny sprzed zmiany z wersją kodu.
  • Porównuję ten sam okres, symbol i ustawienia.
  • Zestawiam transakcje parami (dzień, kierunek, cena, wynik).
  • Najpierw sprawdzam liczbę wejść, potem cenę, potem lot.
  • Wykluczyłem stare wiersze i nieudany test.

Powiązane

Ostrzeżenie: handel CFD i forex wiąże się z wysokim ryzykiem utraty kapitału. Wyniki testów opisują przeszłość i nie gwarantują zysku w przyszłości. Artykuł ma charakter edukacyjny i nie jest rekomendacją inwestycyjną.

Dalej w rozdziale

177

Test rok po roku: suma z 33 miesięcy ukrywa słaby rok

Jeden przebieg na całym okresie pokazuje zysk i profit factor, ale nie mówi, czy bot zarabiał w każdym roku. Osobny test na każdy rok kalendarzowy pokazał u mnie, że 2024 był słaby, a prawie cały zysk dały dwa następne lata.

185

Standard testu bota: 12 miesięcy, 52 starty tygodniowe i wersja w wyniku

Żeby wyniki botów dało się porównywać, każdy test robię według tego samego wzoru: ostatnie 12 miesięcy, 52 starty co tydzień, konto 10 tysięcy, a w wyniku zawsze wersja kodu i ustawienie. Opisuję, co zapisuję przy każdym przebiegu i dlaczego.