Jak zrobić backtest strategii giełdowej i nie oszukać samego siebie

autor: FactorSift Opublikowano 2026-09-11 7 min czytania English

Backtest potrafi udowodnić prawie wszystko. Problem zaczyna się wtedy, gdy wynik wygląda tak dobrze, że przestajemy pytać, dlaczego.

Masz pomysł na strategię. Kupno po wybiciu maksimum. Wejście po RSI poniżej 30. Przecięcie średnich. Inside Day. NR7. Opening Range Breakout.

Wrzucone na wykres wygląda sensownie. Kilka transakcji działa niemal idealnie. Powstają reguły, uruchamiasz backtest i dostajesz wynik:

+187% w pięć lat.

Świetnie?

Niekoniecznie.

Dobry backtest nie ma odpowiedzieć na pytanie:

„Czy potrafię znaleźć zestaw reguł, który zarabiał w przeszłości?”

To jest stosunkowo łatwe.

Znacznie trudniejsze pytanie brzmi:

„Czy istnieją powody, żeby sądzić, że to nie jest wyłącznie przypadek?”

I właśnie tutaj zaczyna się prawdziwy research.

Piękna krzywa kapitału nie jest dowodem

Wyobraźmy sobie prosty eksperyment.

Testujemy strategię na akcjach amerykańskich. Mamy kilka parametrów:

  • długość średniej,
  • poziom stop-loss,
  • godzinę wejścia,
  • minimalny wolumen,
  • filtr zmienności.

Każdy z nich ma kilka możliwych wartości.

Bardzo szybko zamiast jednej strategii otrzymujemy kilkadziesiąt albo kilkaset jej wariantów.

Jeśli wybierzemy z nich ten, który historycznie zarobił najwięcej, to niemal z definicji wybieramy wariant, któremu wyjątkowo sprzyjał przypadek.

To trochę jak rzucanie monetą.

Jeżeli rzucimy jedną monetą 10 razy, wynik 8 orłów wygląda ciekawie.

Jeżeli rzucimy tysiącem monet po 10 razy, niemal na pewno znajdziemy taką, która dała 9 albo 10 orłów.

Nie oznacza to jednak, że znaleźliśmy magiczną monetę.

Z backtestami jest podobnie.

Pierwsza zasada: oddziel dane do szukania od danych do sprawdzania

Jednym z najprostszych zabezpieczeń jest podział historii na dwa okresy.

Pierwszy to train, czyli dane, na których budujemy i wybieramy pomysł.

Drugi to test, czyli dane, których nie wykorzystujemy podczas poszukiwania strategii.

Przykładowo:

2015–2022 → research / train
2023–2025 → test / out-of-sample

Na pierwszym okresie możemy porównywać warianty i szukać interesujących reguł.

Ale kiedy wybierzemy zwycięzcę, zamrażamy zasady.

Dopiero wtedy sprawdzamy drugi okres.

Jeżeli strategia wygląda świetnie na train, a po wejściu na dane testowe natychmiast przestaje działać, dostaliśmy bardzo ważną informację:

historyczna przewaga mogła być efektem dopasowania do przeszłości.

I taki negatywny wynik jest często bardziej wartościowy niż kolejny ładny wykres.

Look-ahead bias: strategia, która zna przyszłość

Jednym z najbardziej podstępnych błędów jest look-ahead bias.

Czyli sytuacja, w której algorytm podczas podejmowania decyzji korzysta z informacji, której w danym momencie jeszcze nie było.

Prosty przykład.

Strategia generuje sygnał na zamknięciu poniedziałkowej sesji.

Backtest wpisuje transakcję również po poniedziałkowej cenie zamknięcia.

Problem?

Ostateczną cenę zamknięcia znamy dopiero po zakończeniu sesji.

Jeżeli potrzebujemy całej świecy do wygenerowania sygnału, realistyczne wykonanie może nastąpić dopiero później, np. na otwarciu kolejnej sesji.

Różnica wygląda niepozornie.

Ale po tysiącach transakcji potrafi całkowicie zmienić wynik.

Podobne problemy pojawiają się przy danych fundamentalnych opublikowanych dopiero później, składach indeksów znanych z przyszłości, splitach, delistingach czy korzystaniu z dzisiejszych list spółek do badania rynku sprzed kilkunastu lat.

Backtest może być matematycznie poprawny i jednocześnie ekonomicznie niemożliwy do wykonania.

Koszty transakcyjne zmieniają więcej, niż się wydaje

To szczególnie brutalne w strategiach krótkoterminowych.

Załóżmy, że strategia wykonuje dużo transakcji, a jej średnia przewaga na pojedynczym wejściu jest niewielka.

Bez kosztów wygląda świetnie.

Dodajemy jednak:

  • prowizję,
  • spread,
  • poślizg.

Nagle strategia, która była lekko dodatnia brutto, staje się ujemna netto.

To nie jest kosmetyczna poprawka modelu.

To może być różnica między:

„znaleźliśmy efekt”

a:

„znaleźliśmy sposób na regularne płacenie prowizji brokerowi”.

W researchu intraday jest to szczególnie ważne. Im krótszy interwał i częstszy handel, tym mniej miejsca zostaje na ignorowanie realnych kosztów wykonania.

Win rate może wyglądać świetnie i nadal prowadzić do strat

„Strategia ma 78% skuteczności.”

Brzmi doskonale.

Ale sama skuteczność mówi bardzo niewiele.

Możemy mieć:

  • 78% zyskownych transakcji po +1%
  • 22% stratnych transakcji po -6%

Taka strategia może mieć imponujący win rate i fatalną wartość oczekiwaną.

Dlatego ważniejsze jest nie tylko jak często wygrywamy, ale też:

  • ile średnio zyskujemy,
  • ile średnio tracimy,
  • jak wygląda obsunięcie kapitału,
  • jak stabilne są wyniki,
  • czy przewaga utrzymuje się poza okresem, na którym ją znaleźliśmy.

Jeden instrument może stworzyć iluzję przewagi

Załóżmy, że testujemy strategię na dziesięciu spółkach.

Łączny wynik jest dodatni.

Wygląda dobrze.

Dopiero dokładniejsze sprawdzenie pokazuje, że prawie cały zysk pochodzi z jednej spółki.

Bez niej strategia traci.

To zmienia interpretację wyniku.

Być może nie znaleźliśmy uniwersalnego zjawiska rynkowego.

Być może znaleźliśmy przypadek, który wyjątkowo dobrze pasował do jednego instrumentu.

Dlatego warto wykonywać testy w rodzaju:

co stanie się z wynikiem po usunięciu każdego instrumentu po kolei?

Jeżeli usunięcie jednej spółki odwraca wniosek całego badania, przewaga jest znacznie mniej stabilna, niż sugerował wynik agregowany.

To właśnie zobaczyliśmy przy jednym z naszych testów

Podczas badania prostych wzorców inspirowanych pracami Tony'ego Crabela testowaliśmy między innymi NR4, czyli sesję o zakresie mniejszym niż trzy poprzednie sesje.

Pierwszy wynik wyglądał interesująco.

Na okresie treningowym NR4 był najlepszym spośród kilku testowanych wariantów.

Potem sprawdziliśmy wynik na okresie testowym.

Przewaga nie została potwierdzona.

Jeszcze ciekawiej zrobiło się po zwiększeniu jakości i kompletności danych.

Okazało się, że dodatni wynik agregowany był mocno zależny od jednej spółki — META.

Po jej usunięciu wynik zmieniał znak.

Nie oznacza to:

„NR4 nie działa”.

Ale zdecydowanie nie daje podstaw do stwierdzenia:

„NR4 działa i można na tym handlować”.

Prawidłowy wniosek jest znacznie mniej efektowny:

w tej konkretnej próbie nie otrzymaliśmy wystarczająco stabilnego potwierdzenia hipotezy.

I dokładnie po to robi się research.

Nie po to, żeby każda analiza kończyła się zielonym wykresem.

A co z AI?

Tutaj pojawia się jeszcze jeden problem.

Modele takie jak ChatGPT czy Claude są bardzo dobre w:

  • wyjaśnianiu wyników,
  • znajdowaniu zależności,
  • porównywaniu eksperymentów,
  • prowadzeniu rozmowy o researchu.

Nie powinny jednak samodzielnie „wymyślać” danych, których nie posiadają.

Jeżeli zapytamy AI:

„Czy strategia NR7 działa na SPY?”

model może przedstawić rozsądne argumenty, opisać literaturę i zaproponować sposób testowania.

Ale odpowiedź na pytanie:

„Jaki był wynik netto po kosztach na konkretnych danych?”

powinna pochodzić z deterministycznego silnika obliczeniowego, a nie z generowanego tekstu.

Dlatego sensowny podział pracy wygląda tak:

pomysł użytkownika
        ↓
silnik researchowy
        ↓
dane + backtest + metryki + provenance
        ↓
Claude / ChatGPT
        ↓
interpretacja i dalsze pytania

Silnik liczy. AI pomaga zrozumieć.

To znacznie bezpieczniejsze niż proszenie modelu językowego, żeby był jednocześnie bazą danych, backtesterem i analitykiem.

Co powinien zawierać uczciwy backtest?

Nie istnieje jeden uniwersalny standard dla każdej strategii, ale przed potraktowaniem wyniku poważnie warto odpowiedzieć przynajmniej na kilka pytań:

  • Czy reguły były określone przed sprawdzeniem wyniku?
  • Ile wariantów strategii faktycznie przetestowano?
  • Czy istnieje osobny okres out-of-sample?
  • Czy sygnały wykorzystują wyłącznie informacje dostępne w danym momencie?
  • Czy model uwzględnia prowizje i poślizg?
  • Czy wynik nie zależy niemal całkowicie od jednego instrumentu lub okresu?
  • Czy sposób wykonania transakcji jest możliwy w rzeczywistym świecie?
  • Czy znamy pochodzenie i jakość danych?
  • Czy negatywne wyniki są zachowywane, czy pokazujemy tylko najlepszy wariant?
  • Czy można odtworzyć dokładnie ten sam eksperyment później?

Jeżeli na większość tych pytań nie znamy odpowiedzi, piękny wykres equity niewiele nam mówi.

Backtest nie ma potwierdzać tego, w co już wierzymy

To chyba najważniejsza zasada.

Jeśli zaczynamy badanie z przekonaniem:

„ta strategia musi działać”

bardzo łatwo znaleźć sposób, żeby wynik to potwierdził.

Trochę inny parametr.

Trochę krótszy okres.

Usunięcie niewygodnego instrumentu.

Jeszcze jeden filtr.

Jeszcze jeden warunek.

I nagle wynik wygląda świetnie.

Tylko że przestaliśmy testować hipotezę.

Zaczęliśmy projektować przeszłość.

Dobry proces researchowy powinien dawać nam możliwość powiedzenia:

„Nie znaleźliśmy wystarczających dowodów.”

I nie traktować tego jako porażki.

Wręcz przeciwnie.

Jeżeli dzięki badaniu nie wdrożymy strategii opartej na przypadkowej zależności, analiza właśnie spełniła swoje zadanie.

Po co powstał FactorSift

FactorSift budujemy właśnie wokół takiego podejścia.

Nie jako generator „sygnałów pewniaków” i nie jako bota, który obiecuje automatycznie zarabiać na rynku.

Ma być warsztatem do testowania pomysłów inwestycyjnych.

Silnik wykonuje deterministyczne obliczenia, zapisuje kontekst eksperymentu i pozwala porównywać wyniki.

Research Chat pozwala zlecać obsługiwane analizy zwykłym językiem.

A przez API i MCP wyniki mogą trafiać do Claude, ChatGPT lub innego kompatybilnego narzędzia, z którym użytkownik chce dalej pracować.

Nie chodzi o zastąpienie inwestora.

Chodzi o to, żeby trudniej było oszukać samego siebie dobrym backtestem.

Na koniec

Najgroźniejszy backtest nie jest tym, który pokazuje stratę.

Najgroźniejszy jest ten, który pokazuje dokładnie to, co chcieliśmy zobaczyć.

Dlatego zamiast pytać:

„Ile ta strategia zarobiła?”

warto najpierw zapytać:

„Co musiałoby być prawdą, żeby ten wynik był wiarygodny?”

Od tego pytania zaczyna się research.

Masz pomysł na strategię?

FactorSift pomaga zamienić pomysł w powtarzalny eksperyment — od danych i backtestu po wynik, który możesz dalej analizować z Claude lub ChatGPT.