Backtest strategii — jak go przeprowadzić poprawnie?

Ostatnio zweryfikowano: · Treść aktualna długoterminowo
Ostrzeżenie · YMYL Ten artykuł ma charakter wyłącznie edukacyjny i nie stanowi rekomendacji inwestycyjnej. Handel na rynku Forex wiąże się z wysokim ryzykiem utraty kapitału — według ESMA 74–89% rachunków detalicznych traci pieniądze.

Kiedy ktoś pisze, że jego strategia daje w teście dziewięćdziesiąt pięć procent skuteczności, wiem już, że historia nie skończy się dobrze. Backtest na historycznych notowaniach nie jest wyrocznią ani potwierdzeniem, że pieniądze zostaną zarobione w przyszłości. Jest narzędziem do falsyfikacji własnego pomysłu i sprawdzenia, czy twoje reguły dawały sobie radę w różnych reżimach rynku. Pokazuję, jak ten test zrobić uczciwie, gdzie są największe pułapki i czemu nawet poprawny backtest nie gwarantuje, że konto na żywym rynku nie ucierpi.

Po co właściwie testujemy strategie na historii?

Cel jest prosty: zanim ryzykujesz prawdziwe pieniądze, sprawdzasz, czy strategia zarobiłaby w ostatnich latach. Logika opiera się na założeniu, że jeśli reguły dały dodatni wynik przez pięć lat zróżnicowanego rynku, prawdopodobnie mają jakąś trwałą przewagę. Założenie jest wątłe — rynki się zmieniają, banki centralne korygują politykę, płynność migruje — ale nic lepszego nie mamy. Backtest jest filtrem, który eliminuje pomysły jawnie nieskuteczne i pozwala przejść do testu na demo, a potem do małej pozycji live. Nie więcej.

Reguły muszą być jednoznaczne, inaczej testujesz fikcję

Pierwszy krok wygląda banalnie, a wykłada większość początkujących. Strategia musi być spisana tak, że obcy człowiek, czytając twoje reguły, postawi dokładnie te same transakcje co ty. Jeżeli wpis brzmi „wchodzę kupnem, gdy widzę trend", to nie jest strategia — to wrażenie. Sprawdzalna wersja tej samej myśli to: „kupuję na zamknięciu świecy dziennej, gdy EMA z 50 sesji jest powyżej EMA z 200, RSI z 14 sesji jest poniżej 70, a cena dotyka średniej z 20 sesji od góry; stop loss równy 1,5 ATR(14) poniżej wejścia; cel 2,5 ATR powyżej; ryzyko jednego procenta rachunku". Tylko taką regułę da się rzetelnie przetestować.

Powiązany temat to poszukiwanie własnej przewagi w handlu — jeśli nie wiesz, na czym opierasz przewagę, backtest powie ci o tym brutalnie szybko. Szersze teoretyczne ramy testowania i forward testingu omawia rozdział backtesting i forward testing na MyBank.pl.

Skąd brać dane historyczne i ile próbek wystarczy?

Dane są drugim źródłem błędów po niejasnych regułach. Historia tików od jednego brokera nigdy nie pokryje się co do pipsa z historią innego — różnią się modelem rozliczenia i źródłem płynności. Jeżeli testujesz strategię o ciasnym stopie, ta różnica zaczyna decydować o wyniku. Dla intraday warto sięgnąć po dane z kontraktów futures z giełdy chicagowskiej (CME) — scentralizowane i audytowalne. Osobny wybór to narzędzie: porównanie Forex Tester z wbudowanym Strategy Testerem w MT wyjaśnia, kiedy dedykowany program daje przewagę nad wbudowanym symulatorem. Dla swingu na świecach dziennych historia brokerska wystarcza, o ile pochodzi z renomowanego dostawcy.

Druga kwestia to wielkość próby. Reguła obecna w literaturze od dziesięcioleci brzmi: co najmniej sto transakcji w teście, żeby wynik nie był ofiarą szczęścia. Trzydzieści świetnych transakcji w półrocznym oknie nic nie znaczy. Sto to dolny próg statystycznej istotności; profesjonaliści celują w trzysta i więcej. W praktyce strategia swing na D1 wymaga pięciu lat danych, daytrading dwóch, a scalping wystarczy na rok, ale za to z prawdziwych tików.

Pięć lat ma jeszcze jeden walor: pokrywa różne reżimy rynku. W ostatniej dekadzie zmieściły się okresy trendu (2014–2017 na DXY), gwałtownej zmienności (marzec 2020), zacieśniania monetarnego (2022–2023) i powrotu do konsolidacji (2024). Strategia działająca tylko w jednym typie rynku nie jest strategią — to złudzenie dopasowane do epoki.

Spread, prowizja i poślizg — bez tego backtest kłamie

Najczęstszy „cudowny" backtest to taki, w którym zapomniano odjąć koszty handlu. Dla swingu na H4 z celem 200 pipsów spread 0,8 pipsa ledwo widać. Dla scalpera robiącego 30 transakcji po pięć pipsów ten sam spread zjada większość przewagi. Realistyczny test musi uwzględnić bieżący spread brokera, prowizję od lota, a dla strategii wrażliwych na egzekucję także poślizg — różnicę między ceną widoczną w momencie kliknięcia a faktyczną ceną wykonania.

Próg, którym sam się posługuję: jeśli średni zysk na transakcję jest mniejszy niż dwukrotność średniego kosztu (spreadu, prowizji oraz założonego poślizgu łącznie), strategia nie ma marginesu bezpieczeństwa i nie przechodzi dalej. Filtr brutalny, ale ratuje przed wielomiesięcznym oszukiwaniem siebie. Osobnym źródłem złudzeń jest używanie wskaźników, które przemalowują swoje wartości — w teście na historii wyglądają doskonale, a na żywym rynku zachowują się zupełnie inaczej.

Krzywa dopasowana do historii to nie strategia, to muzeum

Pułapka większości samouków nazywa się przedopasowaniem (curve-fitting). Wygląda tak: testujesz strategię na trzydziestu wartościach parametru, wybierasz tę o najlepszym wyniku i ogłaszasz, że strategia daje czterdzieści procent rocznie. Tylko że właśnie zoptymalizowałeś szum, a nie sygnał. Im więcej parametrów dopuszczasz do optymalizacji, tym większa szansa, że wynik to dzieło przypadku. Robert Pardo, autor klasycznej książki o ewaluacji systemów transakcyjnych, formułuje to tak:

„Test poza próbą jest jedyną prawdziwą miarą jakości strategii. Jeżeli system nie utrzymuje przewagi na danych, których nie widział podczas optymalizacji, znaczy to, że został dopasowany do historii, a nie do rynku." — Robert Pardo, The Evaluation and Optimization of Trading Strategies, Wiley, 2008.

Stąd bierze się podział danych na próbę treningową (in-sample) i walidacyjną (out-of-sample). Typowy podział to siedemdziesiąt procent do strojenia, trzydzieści procent do potwierdzenia. Jeśli wynik na próbie poza optymalizacją jest istotnie gorszy, masz przedopasowanie i strategia w obecnej formie nie nadaje się na żywy rynek. Jeszcze bardziej rygorystycznym podejściem jest analiza walk-forward, która naprzemiennie optymalizuje na oknie historycznym i testuje na oknie następującym, przesuwając się przez historię. To najlepsze, co dziś mamy do oceny, czy strategia ma szansę przeżyć.

Hipotetyczny przykład — jak czytać wyniki uczciwie

Wyobraź sobie strategię swing na EUR/USD, D1, testowaną w latach 2019–2024 w środowisku opisanym w artykule praktyka backtestu w MT4 i MT5. Hipotetyczny wynik: 147 transakcji, skuteczność 54 procent, średnia proporcja zysku do ryzyka 2,3 do 1, profit factor 1,78, obsunięcie 14,5 procent, zwrot netto +87 procent przez pięć lat (około 13,3 procent średniorocznie). To liczby, jakie chciałbym widzieć przed przejściem na demo — niespektakularne, ale realistyczne. Wartości są szablonem ilustracyjnym, nie wyciągiem z rachunku. Kolejnym krokiem warto zrobić symulację Monte Carlo tej samej strategii, by zobaczyć jej zachowanie przy losowo przetasowanej kolejności transakcji.

Co zrobić jutro

Wiedza o backteście zaczyna pracować, gdy sam testujesz i konfrontujesz wyniki z dziennikiem. Pięć kroków poniżej zajmie kilka popołudni, a uchroni przed najczęstszymi błędami młodego tradera.

  1. Spisz strategię w jednym pliku tekstowym, mechanicznie. Każde wejście, każde wyjście, każdy stop loss i każdy filtr musi być zapisany tak, by druga osoba czytająca te same reguły postawiła identyczne transakcje. Jeśli musisz dopisać „zależy od sytuacji", wróć do biurka i doprecyzuj — backtest nie czyta między wierszami.
  2. Zbierz pięć lat danych dla swingu albo dwa dla daytradingu i podziel je z góry. Pierwsze siedemdziesiąt procent zostaw na strojenie reguł, ostatnie trzydzieści zachowaj zamknięte do momentu, w którym strategia będzie ostateczna. Dopiero wtedy uruchom test na tej drugiej części — to twój prawdziwy egzamin.
  3. Wprowadź realistyczne koszty handlu do każdej symulacji. Dodaj bieżący spread brokera, prowizję od lota oraz założony poślizg, z osobnymi wartościami dla okien spokojnych i okien wokół publikacji makro. Jeżeli po doliczeniu kosztów strategia traci więcej niż dwadzieścia procent zysku, nie ma marginesu bezpieczeństwa.
  4. Postaw twardy próg minimum stu transakcji w teście. Jeśli okres testowy daje mniej, wydłuż historię, dodaj instrumenty z tej samej rodziny albo zaakceptuj, że wynik jest hipotezą, a nie dowodem. Zapisz w dzienniku liczbę transakcji, średnie obsunięcie i skuteczność — te trzy liczby mówią więcej niż sam zwrot procentowy.
  5. Po pomyślnym backteście przenieś strategię na demo na co najmniej trzy miesiące przed wyjściem na żywo. Porównaj statystyki z demo do tych z backtestu — jeżeli demo wypada znacząco gorzej, masz sygnał przedopasowania, niedoszacowanych kosztów lub błędu w automatyce. Wracaj do reguł, nie do nadziei, że na żywym koncie pójdzie lepiej. Dobry backtest nigdy nie gwarantuje dobrego wyniku live; daje jedynie prawo do próby.
Jarosław Wasiński
O autorze

Jarosław Wasiński

Redaktor naczelny MyBank.pl · Analityk finansowy i rynkowy

Niezależny analityk i praktyk z ponad 20-letnim doświadczeniem w sektorze finansowym. Twórca i redaktor naczelny portalu MyBank.pl, działającego od 2004 roku. Analiza fundamentalna rynków walutowych i makroekonomicznych od 2007 roku.

Źródła i bibliografia

  1. MetaQuotes Strategy Testing in MetaTrader 5 · oficjalna dokumentacja testera strategii (testowanie i optymalizacja na danych historycznych) www.metatrader5.com ↗
  2. MQL5 Reference Testing Trading Strategies · dokumentacja deweloperska MQL5: tryby generowania tików, symulacja spreadu, testy wielowalutowe www.mql5.com ↗
  3. Bank for International Settlements OTC foreign exchange turnover in April 2022 · Triennial Central Bank Survey — dane o strukturze rynku FX (kontekst dla backtestu instrumentów detalicznych) www.bis.org ↗

Najczęstsze pytania

Co to jest przedopasowanie strategii?

Przedopasowanie (curve-fitting) to sytuacja, w której parametry strategii zostały tak dobrane, by idealnie pasowały do przeszłych notowań, ale nie radzą sobie z nowymi danymi. Klasyczny objaw to wynik na poziomie dziewięćdziesięciu pięciu procent skuteczności w teście i trzydziestu procent na żywym koncie. Powód jest prosty: skuteczność rzędu dziewięćdziesięciu pięciu procent w handlu forex jest długoterminowo niemożliwa — realne strategie utrzymują skuteczność w przedziale od pięćdziesięciu do sześćdziesięciu procent. Jeżeli twój backtest pokazuje więcej niż siedemdziesiąt procent wygranych, traktuj to jako sygnał ostrzegawczy i podejrzewaj przedopasowanie.

W jakim oprogramowaniu robić backtest?

Dla początkujących najlepszym wyborem jest tester strategii wbudowany w MetaTrader 5: jest bezpłatny, obsługuje testy wielowalutowe, prawdziwe tiki i optymalizację genetyczną. MetaTrader 4 wciąż bywa wykorzystywany, lecz ogranicza się do jednego instrumentu i jednego interwału. Forex Tester w wersji piątej kosztuje około trzystu dolarów i pozwala na ręczny przegląd strategii świeca po świecy — to dobre narzędzie dla osób, które chcą wyrobić wzrokowe wyczucie reguł, zanim je zautomatyzują. Pine Script w TradingView wystarcza do prostych testów na pojedynczym instrumencie. W praktyce większość poważnych testów warto prowadzić w MT5 lub w środowisku skryptowym typu Python z bibliotekami backtest.

Ile danych historycznych potrzebuję na uczciwy test?

Dla strategii swing i pozycyjnych przyjmuje się minimum pięć lat danych, dla daytradingu dwa lata, a dla scalpingu rok prawdziwych tików. Te przedziały nie wynikają z magicznej liczby kalendarzowej, lecz z konieczności pokrycia różnych reżimów rynku: trendowego, bocznego i wysokiej zmienności. Dodatkowo i niezależnie od interwału obowiązuje warunek statystyczny: co najmniej sto transakcji w teście, by wynik nie był ofiarą szczęścia. Profesjonaliści celują w trzysta i więcej. Jeżeli twoja historia daje mniej, wydłuż okres testu lub dodaj instrumenty z tej samej rodziny — inaczej testujesz hipotezę, a nie strategię.

Jak wyglądają realistyczne wyniki dobrego backtestu?

Realistyczne wyniki to skuteczność rzędu pięćdziesięciu do sześćdziesięciu procent, średnia proporcja zysku do ryzyka co najmniej dwa do jednego, profit factor w przedziale od 1,5 do 3,0 oraz maksymalne obsunięcie poniżej dwudziestu procent — przy minimum stu transakcjach i wyniku weryfikowanym na próbie poza optymalizacją. Wskaźnik Sharpe powyżej jednego sygnalizuje rozsądny stosunek zwrotu do zmienności. Czerwone flagi to skuteczność powyżej osiemdziesięciu procent, profit factor powyżej pięciu i drawdown poniżej pięciu procent — taki zestaw niemal zawsze świadczy o przedopasowaniu, a nie o przewadze.

Pogłębij temat · pełny przewodnik