Polska społeczność o zarabianiu przez internet, pracy w domu i dodatkowej pracy online Zobacz dzisiejsze dyskusje →
Zmień styl:BiałyMobilnyRetro

Wielka aktualizacja Zarabiam.com — zobacz pełną listę zmian

Overfitting i backtesting - wynik z przeszłości nie gwarantuje zysku


Autor Wiadomość
Post: #1
Overfitting i backtesting - wynik z przeszłości nie gwarantuje zysku
Sprawdź:

Overfitting i backtesting - dlaczego dobry wynik z przeszłości nie gwarantuje zysku z inwestycji


Wynik backtestingu, czyli sprawdzenia strategii na danych historycznych, zawyżają najczęściej: overfitting (przeuczenie), zaglądanie w przyszłość (look-ahead bias), błąd przeżywalności i pominięcie kosztów transakcji. Dochodzi do tego brak testu na danych spoza próby, który pozwala te błędy wykryć. Dlatego dobry wynik z przeszłości niczego nie gwarantuje, a wiarygodność strategii zależy od sposobu jej sprawdzenia.



Czego dowiesz się z tego artykułu:
  • Czym jest backtesting i do czego realnie służy
  • Czym jest overfitting (przeuczenie) i dlaczego wynik na danych historycznych bywa złudny
  • Jakie błędy najczęściej zawyżają backtest: look-ahead bias, błąd przeżywalności, pomijanie kosztów
  • Jak działa walidacja na danych spoza próby (out-of-sample) i metoda walk-forward
  • Dlaczego wyniki rzeczywiste różnią się od symulowanych
  • Jakie pytania warto zadać, czytając wynik backtestu
  • Odpowiedzi na najczęściej zadawane pytania

Czym jest backtesting

Backtesting to sprawdzanie reguł strategii inwestycyjnej na danych historycznych. Odpowiada na pytanie: jak zachowałby się dany zestaw zasad, gdyby stosowano go w przeszłości. Zasady muszą być sformułowane jednoznacznie, czyli określać, kiedy otwiera się pozycję, kiedy ją zamyka i jak duża ma być. Dopiero wtedy komputer może je przeliczyć na notowaniach z wielu lat.

Wynik backtestu opisuje się zwykle kilkoma miarami:

Stopa zwrotu
Co pokazuje: Zmianę wartości kapitału w badanym okresie
Na co uważać: Sama w sobie nie mówi nic o ryzyku, jakie poniesiono

Maksymalne obsunięcie (max drawdown)
Co pokazuje: Największy spadek kapitału od szczytu do dołka
Na co uważać: Pokazuje najgorszy epizod z próby, a nie najgorszy możliwy

Wskaźnik Sharpe’a
Co pokazuje: Nadwyżkową stopę zwrotu w stosunku do zmienności
Na co uważać: Zależy od okresu i sposobu liczenia

Liczba transakcji
Co pokazuje: Na jakiej próbie opiera się wynik
Na co uważać: Mała liczba transakcji oznacza duży udział przypadku

Backtest ma charakter narzędzia selekcji. Dobrze nadaje się do odrzucania pomysłów, które nie działają nawet w sprzyjających warunkach historycznych. Znacznie gorzej nadaje się do potwierdzania, że pomysł zadziała w przyszłości, bo przeszłość jest tylko jedną z wielu możliwych wersji historii rynku.

Czym jest overfitting (przeuczenie)

Overfitting, po polsku przeuczenie albo nadmierne dopasowanie (w literaturze także curve fitting), występuje wtedy, gdy strategia jest dopasowana do szczegółów danych historycznych, w tym do przypadkowych wahań, a nie do powtarzalnej prawidłowości. Na tych samych danych wygląda świetnie, ale na nowych często zawodzi.

Dobrze ilustruje to porównanie z nauką do egzaminu. Uczeń, który wkuł odpowiedzi do starych testów, zdobywa wysoką ocenę na znanych pytaniach, ale nie radzi sobie z nowymi. Strategia przeuczona zachowuje się podobnie: „zapamiętała” przeszłość, zamiast uchwycić regułę.

Skąd bierze się przeuczenie

Wystarczy prosty przykład hipotetyczny. Ktoś testuje strategię opartą na RSI i sprawdza okresy od 5 do 14 (10 wartości), pięć progów wyprzedania i pięć progów wykupienia. To już 250 kombinacji. Spośród kilkuset wariantów część wypadnie dobrze wyłącznie przez przypadek, a wybór najlepszego z nich przypomina losowanie najwyższego wyniku z wielu rzutów.

Zjawisko to nazywa się problemem wielokrotnych porównań. Im więcej konfiguracji strategii wypróbowano, tym większa szansa, że wybrana okaże się jedynie szczęśliwym dopasowaniem. Samo wydłużenie okresu testu nie rozwiązuje problemu, jeśli liczba wypróbowanych wariantów pozostaje duża.

Jak rozpoznać przeuczoną strategię

Nie ma jednego testu, ale kilka objawów powtarza się często:
  • Duża wrażliwość na parametry. Zmiana okresu wskaźnika z 14 na 13 lub 15 radykalnie pogarsza wynik.
  • Wiele reguł i filtrów. Każdy dodatkowy warunek zwiększa swobodę dopasowania do danych.
  • Mała liczba transakcji. Wynik opiera się na kilkunastu zdarzeniach, więc przypadek ma duży udział.
  • Działanie tylko w jednym okresie lub na jednym instrumencie. Po przeniesieniu strategii na inny okres albo inną spółkę wynik się załamuje.
  • Brak uzasadnienia. Nie da się wyjaśnić, dlaczego reguła miałaby działać, poza tym, że „tak wyszło w teście”.

Inne błędy, które zawyżają wynik backtestu

Przeuczenie nie jest jedynym problemem. Wynik historyczny psują też błędy w samym przygotowaniu testu.

Look-ahead bias
Na czym polega: Strategia korzysta z informacji, które w danym momencie nie były jeszcze dostępne
Skutek dla wyniku: Wynik jest zawyżony, bo „zna” przyszłość

Błąd przeżywalności (survivorship bias)
Na czym polega: Dane obejmują tylko spółki, które istnieją do dziś
Skutek dla wyniku: Pomijane są upadłości i wycofania z obrotu, więc wynik jest zawyżony

Pomijanie kosztów
Na czym polega: Test nie uwzględnia prowizji, spreadów i poślizgu cenowego
Skutek dla wyniku: Strategia z wieloma transakcjami wypada lepiej niż w rzeczywistości

Data snooping
Na czym polega: Te same dane służą wielokrotnie do wyboru i do oceny strategii
Skutek dla wyniku: Ocena traci wiarygodność

Look-ahead bias

Przykładem jest decyzja podejmowana na podstawie ceny zamknięcia sesji, ale zrealizowana po cenie otwarcia tej samej sesji. W rzeczywistości nie można znać ceny zamknięcia przed jej powstaniem. Podobny problem dotyczy danych finansowych spółek, które po publikacji bywają korygowane, a test używa wersji skorygowanej zamiast tej, która była dostępna w danym dniu.

Błąd przeżywalności

Jeśli test obejmuje tylko spółki notowane obecnie, pomija te, które zbankrutowały lub zostały wycofane z obrotu. Strategie, które w przeszłości kupowałyby takie spółki, wyglądają w teście lepiej, niż wyglądałyby naprawdę.

Koszty transakcji i poślizg cenowy

Każda transakcja kosztuje: prowizja, różnica między ceną kupna a sprzedaży (spread) i tzw. poślizg, czyli różnica między ceną oczekiwaną a faktycznie uzyskaną. Strategia, która generuje setki sygnałów rocznie, może po uwzględnieniu tych kosztów wypaść zupełnie inaczej niż na wykresie. Szczególnie widoczne jest to w przypadku mało płynnych spółek.

Walidacja poza próbą: out-of-sample i walk-forward

Podstawowym zabezpieczeniem przed przeuczeniem jest podział danych na dwie części. Na pierwszej, zwanej próbą uczącą (in-sample), dobiera się parametry. Na drugiej, próbie testowej (out-of-sample), sprawdza się, jak wybrana strategia radzi sobie na danych, których nie użyto do jej konstrukcji. Jeśli wynik na próbie testowej jest wyraźnie gorszy, to sygnał, że część rezultatu była dopasowaniem.

Rozwinięciem tego pomysłu jest metoda walk-forward, w której walidacja powtarza się wielokrotnie, przesuwając okno w czasie:

  1. Dobiera się parametry na pierwszym odcinku historii.
  2. Sprawdza się je na bezpośrednio następującym odcinku, którego nie używano do doboru.
  3. Przesuwa się całe okno do przodu i powtarza kroki 1 i 2.
  4. Ocenia się wyłącznie wyniki z odcinków testowych, połączone w jedną serię.

Dzięki temu wynik końcowy składa się z kawałków, które nie brały udziału w optymalizacji, a strategia jest testowana w różnych warunkach rynkowych. Przykładem jest opis metodologii z walidacją walk-forward na danych spoza próby. To pomaga ocenić, czy wynik jest wiarygodnie policzony, ale nie jest gwarancją jakichkolwiek przyszłych rezultatów.

Walidacja poza próbą też ma swoje granice. Jeśli ktoś wielokrotnie poprawia strategię, patrząc na wyniki z próby testowej, to ta próba przestaje być „czysta” i zaczyna pełnić rolę uczącej. Dane testowe można wykorzystać do oceny tylko raz.

[Obrazek: overfitting-backtesting-walidacja.png]

Dlaczego wyniki rzeczywiste różnią się od backtestu

Nawet poprawnie przeprowadzony backtest nie odtwarza rzeczywistego handlu. Najczęstsze powody rozbieżności to:
  • Koszty i poślizg. Pełne koszty rzadko da się wiernie odwzorować w symulacji.
  • Płynność i wielkość zleceń. W teście zawsze można kupić po zadanej cenie, a w rzeczywistości duże zlecenie przesuwa cenę.
  • Zmiana warunków rynkowych. Reguły, które działały w jednym środowisku (na przykład w okresie niskich stóp procentowych), mogą nie działać w innym.
  • Błędy i luki w danych. Dane historyczne bywają niepełne lub poprawiane po fakcie.
  • Czynnik psychologiczny. W teście strategię stosuje się bez wyjątków, a w praktyce inwestor może zrezygnować w trakcie głębokiego obsunięcia.

Dla zrozumienia, jak wygląda pełna prezentacja symulacji, można zajrzeć do symulacji portfela giełdowego uwzględniającej koszty transakcji i pełną historię operacji, także stratnych. To wirtualny portfel, który pokazuje mechanikę: otwarte i zamknięte pozycje, zasady doboru wielkości pozycji i poziom stop-loss. Wyniki symulacji nie są prognozą ani zapisem rzeczywistych decyzji. Na takiej liście widać także transakcje zakończone stratą, co ma znaczenie przy ocenie, czy prezentacja jest kompletna.

Jak krytycznie czytać wynik backtestu - lista pytań

Gdy ktoś prezentuje wynik historyczny strategii, warto sprawdzić kilka rzeczy:
  • Ile parametrów i wariantów przetestowano? Im więcej, tym większe ryzyko, że wynik to przypadek.
  • Czy istnieje test poza próbą? Jeśli nie, wynik pochodzi z danych użytych do wyboru strategii.
  • Czy uwzględniono koszty transakcji i poślizg? Brak kosztów zwykle oznacza zawyżony wynik.
  • Ile było transakcji? Mała liczba zdarzeń daje niską wiarygodność statystyczną.
  • Jak wygląda największe obsunięcie? Sam zysk bez informacji o ryzyku jest niepełny.
  • Czy wynik jest stabilny po drobnej zmianie parametrów? Stabilność jest lepszym znakiem niż rekordowy rezultat.
  • Czy dane obejmują spółki, które zniknęły z rynku? Brak takich spółek oznacza błąd przeżywalności.
  • Czy reguła ma logiczne uzasadnienie? Strategia bez wyjaśnienia, dlaczego miałaby działać, wymaga szczególnej ostrożności.

Ryzyko

Backtesting i symulacje są narzędziami edukacyjnymi i analitycznymi, a nie prognozą. Nawet strategia, która przeszła rzetelną walidację, może przynosić straty, ponieważ przyszłe warunki rynkowe nie muszą przypominać żadnego z okresów, które znamy. Inwestowanie wiąże się z ryzykiem utraty części lub całości zainwestowanego kapitału, a wynik z przeszłości nie jest gwarancją wyniku w przyszłości.

Podsumowanie

Backtesting pozwala sprawdzić, jak zachowałaby się strategia w przeszłości, ale dobry wynik nie wystarcza do uznania jej za wiarygodną. Przeuczenie, look-ahead bias, błąd przeżywalności i pomijanie kosztów zawyżają rezultat, a im więcej wariantów wypróbowano, tym większe prawdopodobieństwo, że najlepszy z nich jest dziełem przypadku. Podstawowym zabezpieczeniem jest walidacja na danych spoza próby, na przykład w formie walk-forward. Nawet ona nie usuwa niepewności co do przyszłości. Ostatecznie wynik historyczny należy czytać krytycznie i z pytaniami o to, jak go policzono.

FAQ - najczęściej zadawane pytania o overfitting i backtesting

Co to jest overfitting w inwestowaniu? Overfitting, czyli przeuczenie, to dopasowanie strategii do szczegółów danych historycznych, w tym do przypadkowych wahań. Taka strategia osiąga świetny wynik w teście, ale na nowych danych zwykle wypada gorzej. Ryzyko rośnie wraz z liczbą parametrów i wypróbowanych wariantów.

Czy backtest gwarantuje zysk? Nie. Backtest pokazuje, jak zachowałaby się strategia w przeszłości, a przyszłe warunki rynkowe mogą być inne. Dodatkowo wynik bywa zawyżony przez przeuczenie, błędy w danych i pominięte koszty transakcji.

Jak sprawdzić, czy strategia jest przeuczona? Pomaga kilka kroków: test na danych spoza próby, sprawdzenie stabilności wyniku po niewielkiej zmianie parametrów, ocena liczby transakcji oraz przeniesienie strategii na inny okres lub inny instrument. Jeśli wynik wyraźnie się pogarsza, to sygnał nadmiernego dopasowania.

Co to jest walk-forward? To metoda walidacji, w której parametry dobiera się na jednym odcinku historii, a sprawdza na następnym. Okno przesuwa się w czasie i powtarza kroki, a ocenia się wyłącznie wyniki z odcinków testowych. Dzięki temu parametry nie są dobierane na danych, na których strategię oceniono.

Dlaczego wyniki backtestu różnią się od rzeczywistych? Powodów jest kilka: koszty i poślizg cenowy, ograniczona płynność, zmiana warunków rynkowych, błędy w danych oraz zachowanie inwestora, który w praktyce może zrezygnować ze strategii w trudnym okresie. Symulacja zawsze upraszcza rzeczywistość.

Ile danych historycznych potrzeba do backtestu? Nie ma jednej liczby. Ważne jest, aby dane obejmowały różne warunki rynkowe (hossę, bessę, okresy bocznego trendu) oraz dawały wystarczającą liczbę transakcji do oceny. Dłuższa historia nie chroni jednak przed przeuczeniem, jeśli wypróbowano bardzo wiele wariantów.

Materiał ma charakter wyłącznie edukacyjny i informacyjny. Nie stanowi rekomendacji ani porady inwestycyjnej w rozumieniu obowiązujących przepisów. Inwestowanie na rynkach finansowych wiąże się z ryzykiem utraty części lub całości zainwestowanego kapitału, a wyniki historyczne nie gwarantują przyszłych rezultatów. Decyzje inwestycyjne podejmowane są na własną odpowiedzialność.

[Obrazek: zarabiam.com.png]



Skocz do: