598 / 691WFA

Walk-forward Analysis

Analiza z postępującym przesuwaniem w czasie

Walk-forward Analysis wybiera reguły na podstawie dostępnej przeszłości i testuje je w następnym odcinku. Procedura powtarza się w czasie według ustalonego z góry protokołu. Ocenia się cały sposób wyboru, a nie zwycięzcę znalezionego po fakcie; nawet prawidłowe oddzielenie odcinków nie gwarantuje przyszłej stopy zwrotu.

Walk-forward Analysis to chronologiczna ocena procedury, która wybiera lub ustawia reguły na wcześniejszych danych i stosuje je w kolejnym okresie testowym. Role wyboru i testowania przesuwają się w czasie, przy czym bieżąca decyzja nie może znać następnego wyniku.

Walk-forward Analysis przesuwa symulację historyczną w czasie: na podstawie dotychczasowych danych wybiera lub ustawia regułę, a następnie ocenia jej zastosowanie w kolejnym odcinku. QuantConnect opisuje regularną optymalizację na oknie obejmującym najnowszą dostępną przeszłość. Nasze rozróżnienie redakcyjne: nie oceniamy wyłącznie jednego niezmiennego zestawu parametrów, lecz opisaną z góry procedurę ich aktualizowania. Częścią reguły jest również moment kolejnego wyboru, jego cel i zbiór kandydatów. Lepsze dopasowanie do niedawnych danych samo nie potwierdza lepszego przyszłego wyniku. [QuantConnect — Walk Forward Optimization]

QuantConnect zwraca uwagę, że okres wykorzystany do poszukiwania najlepszych parametrów staje się częścią danych służących do opracowania strategii. Zastosowanie w nim zwycięzcy wybranego po fakcie nie jest rzetelną weryfikacją ówczesnej decyzji. Nasz protokół zamyka więc wybór przed rozpoczęciem następnego odcinka testowego. Dane z tego odcinka nie mogą wpływać na bieżącego zwycięzcę. Gdy odcinek się zakończy, a jego informacje będą rzeczywiście dostępne, mogą zgodnie z ustaloną z góry procedurą wejść do późniejszego wyboru; nie zmienia to jednak wcześniej zapisanych decyzji testowych. [QuantConnect — Optimization Parameters]

TimeSeriesSplit tworzy uporządkowane w czasie indeksy treningowe i testowe; domyślnie stopniowo rozszerza przeszły zbiór treningowy i pozwala ograniczyć jego wielkość. Nasze rozróżnienie: okno przesuwne utrzymuje wybraną długość przeszłości, a okno rozszerzające się zachowuje stały początek. Długość okna i częstotliwość aktualizacji są częścią projektu, a nie dowolnymi zmianami wprowadzanymi po obejrzeniu wyników. Dokumentacja wymaga próbek w równych odstępach, aby metryki odcinków były porównywalne; przy danych nieregularnych trzeba kontrolować rzeczywisty zakres kalendarzowy. [scikit-learn — TimeSeriesSplit]

Parametr gap w TimeSeriesSplit pomija próbki na końcu zbioru treningowego przed testem. Nasz wymóg metodologiczny polega na wyznaczeniu potrzebnego odstępu na podstawie momentu dostępności danych wejściowych i zakończenia wyników docelowych. Jeśli wynik obserwacji treningowej korzysta z cen z okresu testowego, samo uporządkowanie wierszy nie usunie wycieku. Dlatego długości przerwy nie należy dobierać wyłącznie według atrakcyjnego wyglądu krzywej. Nawet odpowiednia przerwa nie dowodzi niezależności sąsiednich okresów ani nie usuwa wszystkich form błędu selekcji. [scikit-learn — TimeSeriesSplit]

Dokumentacja scikit-learn ostrzega, że normalizacja, uzupełnianie brakujących wartości czy wybór cech mogą przenosić informacje z testu do modelu. Parametry tych przekształceń należy wyuczyć wyłącznie na części treningowej, a następnie zastosować do części testowej. Nasza kontrola powtarza to oddzielenie przy każdym przesunięciu okna. Wcześniejszego obliczenia średniej z całego zbioru nie naprawia późniejsze podzielenie gotowej tabeli. Trzeba zachować także wersję danych i ich rzeczywistą dostępność w czasie. [scikit-learn — Common Pitfalls: Data Leakage]

QuantConnect wyróżnia model określający cenę i ilość realizacji, który może uwzględniać spread oraz Slippage. Nasz wymóg przy łączeniu odcinków testowych to spójne traktowanie kapitału, otwartych pozycji i kosztów zmiany reguły. Zysków treningowych nie dodaje się do wyniku późniejszego testu, a nakładających się okresów testowych nie wolno bez wyjaśnienia liczyć wielokrotnie. Jeśli pozycje są przenoszone, należy opisać przejście między konfiguracjami. Natomiast nasz poniższy model kończy każdy okres bez pozycji. [QuantConnect — Trade Fills: Key Concepts]

Bailey i współautorzy opisują rosnące ryzyko fałszywych odkryć przy wielokrotnych poszukiwaniach na tych samych danych. Nasz wniosek dla Walk-forward Analysis: jeżeli na podstawie wynikowego szeregu testowego zmieniamy długości okien, cel lub kandydatów i powtarzamy cały przebieg, szereg już wpływa na rozwój. Nie wystarczy nazwać go niezależnym. Raport powinien wymienić wszystkie wypróbowane protokoły i oddzielić ewentualną dodatkową weryfikację, której jeszcze nie wykorzystano. Samo przesuwanie w czasie nie jest oszacowaniem prawdopodobieństwa przeuczenia ani automatyczną gwarancją statystyczną. [Bailey et al. — The Probability of Backtest Overfitting]

NFA podkreśla, że hipotetyczne wyniki nie odzwierciedlają rzeczywistego handlu ani pełnego wpływu płynności, poślizgu cenowego i zachowania podczas rzeczywistej straty. Nasz raport Walk-forward Analysis zachowuje więc granice okien, kandydatów, wyniki punktowe wyboru, wybrane konfiguracje i wyniki kolejnych odcinków wraz z kosztami. Suma wymaga kontekstu ryzyka, liczby obserwacji i porównania przy takich samych warunkach. Mały przykład z ujemnym wynikiem nie dowodzi ogólnej nieskuteczności metody, tak jak dodatnia suma nie dowodzi przyszłej przewagi handlowej. [NFA — Use of Promotional Material Containing Hypothetical Performance Results]

PrzykładPRZYKŁAD · WFA

Wybrać na podstawie przeszłości, ocenić dopiero następny okres

Nasz własny fikcyjny model wykorzystuje sześć okresów o równej długości, oznaczonych od 1 do 6, oraz dwa ustalone z góry warianty A i B. Ich wyniki netto przy tej samej stałej wielkości wynoszą A [4, -1, 2, -3, 5, -2] USD i B [1, 2, 1, 1, -2, 4] USD. Każdy wynik jest dostępny dopiero po zakończeniu danego okresu, uwzględnia wszystkie koszty modelu i kończy się bez otwartej pozycji. Nie ma dodatkowych kosztów przejścia, długu ani przepływów pieniężnych. Ustalona z góry procedura zawsze sumuje ostatnie trzy zakończone okresy, wybiera wyższą sumę i stosuje zwycięzcę wyłącznie w następnym okresie; przy remisie wybrałaby A. Okna wyboru to [1, 2, 3], [2, 3, 4] i [3, 4, 5], a kolejne testy to [4, 5, 6]. Sumy służące do wyboru wynoszą dla A [5, -2, 4] USD, a dla B [4, 4, 0] USD, więc kolejno wybiera się A, B i A. Do wspólnego wyniku testowego wchodzą wyłącznie [-3, -2, -2] USD, łącznie -7 USD. Początkowa gotówka testowa przed okresem 4 wynosi 1000 USD, a końcowa gotówka 993 USD; wielkość nie zmienia się w zależności od gotówki. Wyników treningowych nie dodaje się do rachunku, a każdy odcinek testowy liczy się tylko raz. Schemat pokazuje przesuwanie okien wyboru i następujących po nich testów, a nie rzeczywistą historię rynku ani prawdopodobieństwo przyszłego sukcesu.

Pełniejszy obraz uzyskasz, czytając to hasło razem z Backtesting, Overfitting, Look-ahead Bias, Trading Plan, Trading Journal. Do tego hasła prowadzą również odsyłacze z Backtesting, Overfitting, Look-ahead Bias, Survivorship Bias.

01Czy wcześniejszy okres testowy może później wejść do treningu?

Tak, jeśli już się zakończył, informacje są dostępne, a ustalony z góry protokół na to pozwala. Nie może jednak zmienić po fakcie wyboru ani wyniku zapisanego dla tego okresu.

02Czy Walk-forward Analysis usuwa przeuczenie?

Nie automatycznie. Nadal można wielokrotnie dobierać długości okien, kandydatów lub całą procedurę na podstawie tych samych wyników. Trzeba ujawnić historię prób, kontrolować wyciek informacji i zachować rozróżnienie między opracowaniem a dalszą weryfikacją.

DOC · 001QuantConnect — Walk Forward OptimizationDokumentacja ↗DOC · 002QuantConnect — Optimization ParametersDokumentacja ↗DOC · 003scikit-learn — TimeSeriesSplitDokumentacja ↗DOC · 004scikit-learn — Common Pitfalls: Data LeakageDokumentacja ↗DOC · 005QuantConnect — Trade Fills: Key ConceptsDokumentacja ↗DOC · 006Bailey et al. — The Probability of Backtest OverfittingŹródło pierwotne ↗DOC · 007NFA — Use of Promotional Material Containing Hypothetical Performance ResultsDokumentacja ↗
Najpierw źródła · To nie jest porada inwestycyjna