← Wszystkie artykuły

Cmentarz strategii, rozdział 54 — pułapki metody

Generator strategii zawsze znajdzie zwycięzcę. Dlaczego nasz tester nie szuka za Ciebie

16 min czytania · Opublikowano 30.10.2026

Zbudowaliśmy 40 sztucznych rynków, na których z konstrukcji nie da się zarobić, i na każdym przeszukaliśmy 100 000 wariantów prostej strategii wybicia. Najlepszy wariant wyglądał w latach nauki jak gotowy system: średnio +0,24 R na transakcję i PF 1,47. W latach sprawdzianu: −0,02 R i PF 0,97. Nie jest to pech jednej symulacji, tylko arytmetyka wyboru najlepszego spośród wielu. Dlatego nasz tester strategii świadomie nie ma funkcji wyszukiwania.

R to wynik transakcji w jednostkach ryzyka (−1 R = strata równa odległości do stopu). PF (profit factor) to suma zysków podzielona przez sumę strat; PF 1,00 oznacza zero. Błąd standardowy to rozrzut średniej wynikający z samego przypadku: odchylenie standardowe wyników podzielone przez pierwiastek z liczby transakcji. Statystyka t to średnia podzielona przez błąd standardowy; w pojedynczym teście t około 2 uchodzi za granicę istotności. Nauka to dane, na których wolno szukać i wybierać, a sprawdzian to dane odłożone i oglądane raz, już po wyborze.

Hipoteza

Generatory strategii obiecują coś, co brzmi rozsądnie. Komputer sprawdzi w jedną noc więcej kombinacji niż człowiek przez całe życie, odrzuci te, które nie przejdą filtrów i testów odporności, i zostawi te, które przeszły wszystko. W najlepszej wersji hipoteza brzmi tak: jeśli wśród prostych reguł istnieje przewaga, masowe przeszukanie znajdzie ją pewniej niż ręczne zgadywanie, a testy odporności oddzielą ją od szczęścia.

W rozdziale 7 opisaliśmy nasze przeszukanie 1 344 wariantów, po którym żaden z 13 najlepszych nie przeżył sprawdzianu. Tu pytamy o skalę generatorów, czyli o sto tysięcy i milion prób, oraz o to, czy testy odporności liczone po wyborze cokolwiek zmieniają. Odpowiedzi szukaliśmy na rynku, na którym prawdę znamy z góry: nie ma tam żadnej przewagi.

Jak działa automatyczne wyszukiwanie

Generatory różnią się szczegółami, ale schemat jest zwykle podobny:

  1. Klocki: warunki wejścia z popularnych wskaźników, filtry (godziny, trend, zmienność) i wyjścia (stop, cel, stop kroczący, wyjście po czasie).
  2. Losowanie: tysiące albo miliony kombinacji z losowymi parametrami, każda liczona na tej samej historii.
  3. Filtry wyniku: zostają strategie z dość dużą liczbą transakcji, PF albo wskaźnikiem „jakości”.
  4. Ewolucja: algorytm genetyczny krzyżuje i mutuje najlepsze strategie, oceniając każde pokolenie na tej samej historii. Populacja 1 000 strategii przez 50 pokoleń to 50 000 ocen, choć na ekranie widać tylko bieżącą populację.
  5. Testy odporności: przetasowanie transakcji, wyższy spread, zmienione parametry, inne rynki, odcinek „poza próbą”, czasem walk-forward.
  6. Wynik: bank strategii, które przeszły wszystko, często z gotowym kodem.

To narzędzia technicznie dopracowane, a dla wielu traderów pierwszy kontakt z systematycznym testowaniem. Problemem nie jest kod, tylko statystyka wyboru najlepszego.

Arytmetyka: o ile zawyżony jest najlepszy z M

Wynik backtestu to suma tego, co reguła naprawdę potrafi, i przypadku tej konkretnej próby. Wielkość przypadku mierzy błąd standardowy. Gdy policzymy M wariantów o tej samej prawdziwej średniej i wybierzemy najlepszy, jego wynik będzie średnio zawyżony o Emax(M) błędów standardowych. Emax(M) to oczekiwane maksimum z M niezależnych losowań z rozkładu normalnego.

liczba prób M Emax(M), dokładnie przybliżenie Bloma
1 0 0
10 1,54 1,55
100 2,51 2,50
10 000 3,85 3,84
1 000 000 4,86 4,85

Wartości dokładne pochodzą z całkowania numerycznego (dla M = 10 i M = 100 sprawdziliśmy je też na 200 000 losowań), a przybliżenie ze wzoru Bloma (1958): Φ⁻¹((M − 0,375) / (M + 0,25)), gdzie Φ⁻¹ to odwrotność dystrybuanty rozkładu normalnego. W tabeli obie wersje różnią się najwyżej o 0,02, a nasz tester korzysta z przybliżenia.

Najlepszy ze 100 wariantów bez żadnej przewagi ma więc średnio t około 2,5, czyli wynik „istotny” według zwykłej granicy. W jednostkach wyniku: przy 300 transakcjach i odchyleniu standardowym 1,5 R błąd standardowy wynosi 1,5 / √300 ≈ 0,087 R, więc najlepszy z 10 000 niezależnych wariantów bez przewagi pokaże średnio około +0,33 R na transakcję. Warianty jednej rodziny dzielą wiele transakcji, więc liczą się jak mniej niż M niezależnych prób, a korekta dla pełnego M jest górną granicą. Liczą się za to wszystkie oceny: każde pokolenie algorytmu, każda poprawka parametru i każdy odrzucony kandydat.

Testy odporności liczone po wyborze to też wielokrotne testowanie. Jeśli na tych samych danych zostawiamy kandydatów, którzy zarabiają w obu połowach próby, przy podwójnym koszcie i przy sąsiednich parametrach, dokładamy tylko kolejne filtry do tego samego przeszukania. Przechodzą je warianty, którym szczęście dopisało szerzej, bo sąsiad w siatce ma prawie te same transakcje i dzieli to samo szczęście. Najgroźniejsze jest użycie odcinka „poza próbą” jako filtra. Gdy z tysiąca kandydatów zostawiamy tylko tych, którzy wypadli dobrze również tam, ten odcinek staje się drugą częścią nauki.

Jak to sprawdziliśmy

Rynek bez przewagi. Zbudowaliśmy 40 niezależnych sztucznych rynków. Cena każdego z nich to błądzenie losowe: świeca godzinowa składa się z 12 losowych kroków, a zmienność wynosi 0,2 % na godzinę, czyli około 15 % rocznie przy 6 000 świec na rok. Kroki są dobrane tak, że cena jest martyngałem, czyli jej oczekiwana przyszła wartość równa się bieżącej. Wynika z tego twierdzenie, a nie hipoteza: każda reguła, która decyduje wyłącznie na podstawie przeszłości, ma przed kosztem wartość oczekiwaną zero, a po koszcie minus koszt. Żaden wariant nie ma więc przewagi.

Rodzina strategii. Wybicie kanału Donchiana: zamknięcie świecy powyżej najwyższego szczytu albo poniżej najniższego dołka z N poprzednich świec, wejście na otwarciu następnej świecy, jedna pozycja naraz. Siatka:

  • długość kanału: 20 wartości od 10 do 240 świec;
  • kierunek: zgodnie z wybiciem albo przeciw niemu;
  • filtr: brak, jedno z trzech 8-godzinnych okien doby albo trend ze średniej 200 świec;
  • stop: 10 wartości od 0,5 do 5 ATR; cel: brak albo 1, 2, 3 lub 5 R;
  • wyjście po czasie: 10 wartości od 4 do 120 świec.

Razem 100 000 wariantów. Stop i cel wypełnialiśmy po cenie pierwszego kroku, który je przekroczył, jak zlecenie po rynku (wypełnienie dokładnie na poziomie dawałoby tu fałszywą przewagę). Koszt transakcji wynosił około 2,2 % średniego ATR godzinowego, mniej więcej tyle, ile według naszych pomiarów kosztuje handel dużym indeksem amerykańskim na wykresie godzinowym (1,5–2,8 %).

Okresy i wybór. Każdy rynek miał 25 200 świec nauki (70 %, około 4,2 roku), 10 800 świec sprawdzianu (30 %) i 12 000 świec „przyszłości”, potrzebnych w jednym pokazie niżej. Spośród M wariantów wybieraliśmy ten z najwyższym t na nauce, przy co najmniej 100 transakcjach. Dla M mniejszego niż 100 000 losowaliśmy podzbiory siatki, na przykład dla M = 10 tysiąc podzbiorów na rynek. Liczyliśmy też wynik po korekcie, czyli średnią minus Emax(M) błędów standardowych, tak jak liczy go nasz tester. Skrypt ma stałe ziarno losowania i za każdym razem daje ten sam wynik.

Wynik

Najlepszy z M wariantów, średnio z 40 rynków:

M nauka: średnio na transakcję nauka: PF (mediana) nauka: t nauka po korekcie Emax(M) sprawdzian: średnio na transakcję sprawdzian: PF (mediana) sprawdzian na plusie
10 +0,082 R 1,12 1,13 −0,030 R −0,010 R 0,98 44 %
100 +0,143 R 1,25 1,94 −0,043 R −0,007 R 0,99 45 %
1 000 +0,181 R 1,34 2,48 −0,058 R −0,007 R 0,99 46 %
10 000 +0,211 R 1,42 2,86 −0,076 R −0,009 R 0,98 44 %
100 000 +0,238 R 1,47 3,14 −0,093 R −0,022 R 0,97 40 %

Im więcej prób, tym lepiej zwycięzca wygląda w nauce: od PF 1,12 przy dziesięciu do PF 1,47 przy stu tysiącach. Już najlepszy ze stu ma medianę PF 1,25, czyli próg, który sami uznajemy za minimum dowodu. W sprawdzianie wszystkie wiersze dają to samo: od −0,007 do −0,022 R na transakcję, czyli mniej więcej koszt (dla tych wariantów 0,009–0,014 R), a na plusie kończy się 40–46 % sprawdzianów. Średnia wszystkich wariantów wyniosła −0,016 R w nauce i −0,013 R w sprawdzianie przy koszcie 0,016 R, zgodnie z konstrukcją rynku.

Przykład z jednego rynku. Zwycięzca ze 100 000 wariantów miał na nauce t 4,07, czyli wynik, który w pojedynczym teście uchodziłby za bardzo mocny: 358 transakcji, +0,312 R na transakcję, PF 1,58. Był to kanał 120 świec, wejście przeciw wybiciu, stop 4 ATR, cel 2 R i wyjście po 120 świecach. W sprawdzianie dał 179 transakcji, −0,103 R na transakcję i PF 0,84.

Korekta działa, choć z zapasem. Po odjęciu Emax(M) błędów standardowych średni wynik zwycięzcy jest ujemny w każdym wierszu, a przy M = 10 000 i M = 100 000 nie był dodatni ani razu (przy M = 10 w 22 % losowań). Warianty są do siebie podobne, więc korekta liczona dla niezależnych prób jest tu za duża: zwycięzca ze 100 000 miał t 3,14, a nie 4,37, a rzeczywiste zawyżenie wyniosło od 75 % (M = 100 000) do 86 % (M = 10) korekty. Wolimy odjąć trochę za dużo, niż pokazać przewagę, której nie ma.

Testy odporności po wyborze, liczone po kolei na tych samych danych nauki, na pełnej siatce:

etap zostało wariantów (średnio na rynek) nauka sprawdzian „przyszłość”
filtr wyniku: co najmniej 100 transakcji, PF ≥ 1,2, średnio > 0 2 937 +0,159 R −0,006 R −0,012 R
+ zysk w obu połowach nauki 2 597 +0,158 R −0,009 R −0,014 R
+ zysk przy podwójnym koszcie 2 597 +0,158 R −0,009 R −0,014 R
+ zysk u sąsiadów w siatce (kanał o krok krótszy i dłuższy, stop o krok węższy i szerszy) 2 546 +0,158 R −0,008 R −0,014 R
+ sprawdzian użyty jako filtr: średnio > 0 i PF ≥ 1,1 685 +0,161 R +0,142 R −0,024 R

Komplet testów liczonych na nauce przechodziło średnio 2 546 wariantów na 100 000, a na żadnym z 40 rynków mniej niż 576. W sprawdzianie dawały średnio −0,008 R, czyli mniej więcej zero minus koszt. Podwójny koszt nie odsiał ani jednego wariantu, bo przy koszcie około 0,016 R na transakcję wybrane warianty miały po +0,16 R zapasu, a tym zapasem było szczęście. Test sąsiadów odsiał 2 %. Ostatni wiersz pokazuje błąd najgroźniejszy: gdy sprawdzian posłużył za filtr, ocalałe warianty miały w nim +0,142 R na transakcję i wyglądały na potwierdzone dwa razy, a w kolejnych dwóch latach, których nie użyliśmy do niczego, dały −0,024 R.

Prawdziwe dane: nasza kopalnia wariantów

Na prawdziwych danych zrobiliśmy to samo w małej skali, a szczegóły opisuje rozdział 7. Siatka liczyła 1 344 warianty (6 instrumentów × 8 wyzwalaczy × 2 kierunki × 7 filtrów × 2 wyjścia), nauka objęła lata 2018–2022, a sprawdzian lata 2023–2025. Wynik dodatni w nauce miało 268 z 1 273 wariantów z co najmniej 100 transakcjami, czyli 21 %. Najlepsza statystyka t na instrument wyniosła od 1,99 do 3,01, a oczekiwane maksimum z 224 prób, które przypadały na jeden instrument, to około 2,8, czyli mniej więcej poziom samego przypadku. Z 46 kandydatów do sprawdzianu trafiło 13 najlepszych i nie przeszedł go żaden. Ich średnia spadła z +0,201 R do +0,049 R na transakcję, czyli o około trzy czwarte. To, co zostało, pochodziło w dużej części z hossy bitcoina: najbliższy zaliczenia wariant na bitcoinie miał w sprawdzianie +0,246 R i PF 1,38, ale w sumie dał +248 R, mniej niż zwykłe „zawsze kupuj” w tych samych chwilach (+261 R).

Dlaczego to nie działa

Generator nie pokazuje poprzeczki. Wynik zwycięzcy trafia na ekran bez informacji, z ilu prób pochodzi, a PF 1,47 i t 3,14 to przy stu tysiącach prób średnio tyle, ile daje rynek bez żadnej przewagi.

Testy na tych samych danych to więcej prób, a nie więcej dowodu. Szczęście też bywa „odporne”, bo obejmuje całą grupę podobnych wariantów. Gdy kanał o długości 36 zarabia, kanały 30 i 40 zwykle też, bo biorą prawie te same transakcje: w symulacji 98 % wariantów, które przeszły wcześniejsze testy, miało zysk także u wszystkich sąsiadów w siatce. „Płaskowyż” parametrów jest cechą historii, na której go znaleziono. Odcinek poza próbą działa tylko raz: kiedy decyduje, które strategie zostają, przestaje cokolwiek sprawdzać.

Mała przewaga ginie pod poprzeczką. Nie twierdzimy, że wśród miliona kombinacji nie ma prawdziwej przewagi. Twierdzimy, że wynik najlepszej nie pozwala jej odróżnić od szczęścia. Kandydatom z naszej kopalni zostało w sprawdzianie +0,049 R na transakcję. Przy 300 transakcjach i odchyleniu 1,5 R daje to t około 0,6, a poprzeczka przy milionie prób wynosi prawie 4,9.

Problem ma swoją literaturę: test „reality check” na przeszukiwanie danych (White, 2000), wskaźnik Sharpe’a skorygowany o liczbę prób (Bailey i López de Prado, 2014) i praca o przeuczeniu backtestów (Bailey, Borwein, López de Prado i Zhu, 2014), której autorzy zauważają, że liczby prób prawie nikt nie podaje. Harvey, Liu i Zhu (2016) policzyli, że po dziesięcioleciach przeszukiwania tych samych danych nowy czynnik w finansach akademickich powinien mieć t powyżej około 3, a nie 2.

Co robimy zamiast tego

Nasz tester strategii, RBR Strategy Lab, to program (EA) do Testera Strategii platformy MetaTrader 5, zbudowany odwrotnie niż generator:

  1. Jedna strategia, opisana przed wynikiem. Składasz ją z klocków: wejście, filtr, stop, cel, wyjście po czasie. Zanim Lab policzy pierwszą transakcję, zapisuje opis strategii z sumą kontrolną (hashem) i datą. Zmiana jednego parametru daje nowy hash, czyli nową strategię.
  2. Prawdziwe ticki i prawdziwy koszt: ceny kupna i sprzedaży z ticków, prowizja i narzut z historii Twojego rachunku.
  3. Sprawdzian raz: to ostatnie 30 % okresu. Jego wynik dla danego hasha Lab pokazuje przy pierwszym przebiegu, a później już tylko ten zapisany.
  4. Licznik wariantów i korekta: każdy nowy hash na tym samym instrumencie, interwale i okresie to kolejna próba. Raport mówi, który to wariant, o ile przy tej liczbie prób zawyżony jest średnio wynik najlepszego (przybliżenie Bloma) i ile zostaje po korekcie. Wynik po korekcie musi być dodatni, inaczej strategia nie dostanie ani werdyktu „przechodzi”, ani „ślad”.
  5. Porównanie z czymś, a nie z zerem: z 1 000 serii losowych wejść o tej samej geometrii stopu i celu, liczonych z tym samym kosztem, oraz z trzymaniem rynku w tych samych godzinach.
  6. Werdykt według kryteriów zapisanych w kodzie: przechodzi, ślad albo nie przechodzi, z listą kryteriów, których strategia nie spełniła. Progów nie da się zmienić w ustawieniach.

Wyszukiwania, czyli masowego generowania i ewolucji strategii, Lab nie ma. To decyzja, a nie zaległość w planie. Większości strategii Lab powie „nie przechodzi” i uważamy to za jego wartość.

Walk-forward: strojenie, które da się policzyć. Pełna wersja Laba ma walk-forward. Siatkę parametrów, na przykład kilka długości kanału i kilka szerokości stopu, podajesz przed testem i trafia ona do hasha. Lab wybiera parametry na kolejnych oknach nauki według stałej reguły i sprawdza je na następnych, nieoglądanych odcinkach. Ocenie, według tych samych kryteriów co reszta, podlegają tylko sklejone odcinki testowe, a końcowy sprawdzian zostaje nietknięty. Każda kombinacja siatki liczy się jako wariant, a siatka ma górny limit (do 2 parametrów i 50 kombinacji), żeby walk-forward nie stał się wyszukiwaniem pod inną nazwą. Ocenie podlega więc procedura strojenia, a nie jeden szczęśliwy zestaw parametrów.

Uczciwie o granicach. Nasz tester nie zabroni nikomu szukać ręcznie, wariant po wariancie. Sprawdziliśmy w symulacji, jak często zwycięzca z M prób zaliczyłby uproszczony zestaw kryteriów podobnych do naszych: w nauce co najmniej 100 transakcji, PF ≥ 1,25 i t ≥ 1,645 (odpowiednik p < 0,05), a w sprawdzianie wynik powyżej zera. Pominęliśmy lata, pięć najlepszych transakcji i porównanie z trzymaniem rynku, więc liczby poniżej to górna granica:

M kryteria nauki spełnione do tego sprawdzian na plusie do tego średnia po korekcie Emax(M) powyżej zera
10 8,2 % 3,9 % 3,9 %
100 42,5 % 21,0 % 4,7 %
1 000 76,3 % 36,7 % 0,7 %
10 000 87,9 % 39,7 % 0,0 %
100 000 92,5 % 37,5 % 0,0 %

Bez korekty zwycięzca ze 100 prób na rynku bez przewagi zalicza ten zestaw w 21 % przypadków, a zwycięzca z tysiąca i więcej w 37–40 %, bo dla strategii bez przewagi sprawdzian na plusie to prawie rzut monetą. Z warunkiem, żeby średnia po korekcie była dodatnia, zostaje 3,9–4,7 % przy 10 i 100 próbach, mniej więcej tyle, ile dopuszcza próg p < 0,05, a przy tysiącu i więcej prawie zero. Ta tabela przekonała nas, że korekta nie może być tylko liczbą obok werdyktu. Dziś jest ósmym kryterium Laba: werdykt „przechodzi” albo „ślad” wymaga dodatniej średniej po korekcie, liczonej dla wszystkich wariantów sprawdzonych na tym samym instrumencie, interwale i okresie. Nie chroni to przed wszystkim: licznik widzi tylko próby zrobione w Labie w Twoim terminalu, a ten sam pomysł sprawdzony wcześniej gdzie indziej albo na innym okresie liczy się od zera. Dlatego przed werdyktem przeczytaj licznik wariantów i pamiętaj o próbach, których Lab nie widział.

Lekcja dla Ciebie

Jeśli i tak szukasz, generatorem, optymalizatorem w platformie albo ręcznie, licz, ile prób zrobiłeś.

  1. Zapisuj każdą próbę, także odrzuconą i „sprawdzoną tylko na szybko”. W generatorze liczba ocen to co najmniej wielkość populacji razy liczba pokoleń, a nie długość listy wyników.
  2. Porównaj t zwycięzcy z poprzeczką. t = średni wynik / (odchylenie standardowe / √liczba transakcji), wystarczy arkusz kalkulacyjny. Poprzeczka wynosi około 1,5 dla 10 prób, 2,5 dla 100, 3,85 dla 10 000 i 4,9 dla miliona. Wynik poniżej niej to tyle, ile daje sam przypadek.
  3. Odłóż kawałek danych, którego nie zobaczy żadna faza, ani szukanie, ani testy odporności, i obejrzyj go raz, dla jednej strategii.
  4. Nie wybieraj spośród tych, które przeszły sprawdzian. Jeśli to zrobiłeś, sprawdzian stał się nauką i potrzebujesz nowego: kolejnych miesięcy w przód albo rachunku demo.
  5. Porównuj z losowymi wejściami i z trzymaniem rynku, a nie z zerem.
  6. Spodziewaj się skurczenia. W naszej kopalni najlepsi stracili w kolejnych latach około trzech czwartych wyniku, a w symulacji bez przewagi cały.

W dzienniku tradera zapisuj, ile wersji strategii sprawdziłeś, zanim wybrałeś obecną. Kalkulator „Szczęście czy przewaga?” ocenia jedną serię transakcji. Jeśli ta seria jest najlepszą z wielu, najpierw porównaj jej t z poprzeczką.


Materiał edukacyjny, nie porada inwestycyjna. Wyniki historyczne nie gwarantują przyszłych. Opisujemy wynik naszej symulacji na sztucznych rynkach bez przewagi i naszego przeszukania jednej rodziny reguł, na naszych danych i przy naszych kosztach.

Sprawdź to na własnych transakcjach

Darmowe narzędzia, bez rejestracji, dane zostają w Twojej przeglądarce.

← Wszystkie artykuły