598 / 736WFA

Walk-forward Analysis

Analiza z postępującym przesuwaniem w czasie

Walk-forward Analysis sprawdza strategię odnawianą w czasie: wybiera regułę na podstawie znanych danych, ocenia ją w kolejnym okresie i powtarza ten proces.

Walk-forward Analysis bada procedurę wyboru w porządku chronologicznym. Reguły wybiera się lub dostraja na dostępnej przeszłości, a ocenia na późniejszych danych niewykorzystanych przy tym wyborze.

Piotr ma kilka wariantów reguły handlu. Chce korzystać z tego, który ostatnio radził sobie najlepiej. Walk-forward Analysis pozwala prześledzić ten pomysł krok po kroku: wybrać na znanej historii, zapisać wynik następnego okresu i wybrać ponownie. QuantConnect opisuje takie okresowe aktualizowanie ustawień. Badamy więc również sposób wybierania, nie tylko stały wariant. Kandydaci, kryterium i termin kolejnego przeglądu muszą być znane wcześniej. [1]

Jeśli Piotr wybrał wariant ze względu na jego dawny zysk, ten sam zysk nie potwierdza wyboru niezależnie. QuantConnect wyjaśnia, że takie dane należą już do opracowania strategii. Uczciwe pytanie brzmi: jak wariant wypadł dopiero po wyborze? Bieżący test nie może wybrać własnego zwycięzcy. Gdy okres się skończy i jego wynik będzie dostępny, ustalona procedura może użyć go do późniejszego wyboru. Nie zmienia to zapisanej wcześniejszej decyzji. [2]

Okno wyboru to używany obecnie fragment historii. Okno przesuwne zachowuje długość i odrzuca najstarsze dane; rozszerzające się zachowuje początek i dodaje obserwacje. TimeSeriesSplit z scikit-learn domyślnie rozszerza zbiór, lecz pozwala ograniczyć jego wielkość. Długość i częstość aktualizacji ustal przed testem. Dokumentacja wymaga równych odstępów między obserwacjami dla porównywalnych miar; przy nieregularnych zapisach trzeba sprawdzać także rzeczywisty czas kalendarzowy. [3]

Wyobraź sobie, że wynik przypisany ostatniej obserwacji treningowej kończy się dopiero podczas następnego testu. W chwili wyboru jeszcze go nie znasz. Posortowanie tabeli według czasu tego nie naprawia. Parametr gap w TimeSeriesSplit pozwala pominąć końcowe obserwacje treningowe. Odstęp powinien wynikać z dostępności wejść i zakończenia wyników, nie z najładniejszej krzywej. Nawet właściwa przerwa nie dowodzi niezależności sąsiednich okresów ani nie usuwa wszystkich zniekształceń. [3]

Przeciek nie musi tkwić w regule handlu. Średnia użyta do przeskalowania wartości mogła zostać obliczona z całego pliku, także z przyszłego testu. scikit-learn ostrzega o tym samym przy uzupełnianiu braków i wyborze cech wejściowych. Parametry przekształceń należy wyznaczać tylko na treningu, a potem stosować do testu. Powtarzaj rozdzielenie przy każdym kroku; późniejsze podzielenie przetworzonej tabeli nie cofnie przecieku. Zachowaj też wersję danych i czas ich dostępności. [4]

Po testach poszczególnych okresów trzeba poprawnie połączyć wyniki. QuantConnect opisuje modele ceny i ilości realizacji, które mogą uwzględniać spread oraz Slippage. Dalej potrzebna jest spójna rachunkowość: nie dopisujemy zysków z opracowania do konta testowego ani nie liczymy nakładających się testów wielokrotnie bez wyjaśnienia. Przy zmianie wariantu określ, co dzieje się z otwartymi pozycjami, kapitałem i kosztami przejścia. Poniższy przykład upraszcza to, zamykając pozycję na końcu każdego okresu. [5]

Piotr może zmieniać długości okien, cele i kandydatów, aż test zacznie wyglądać dobrze. Wtedy wykorzystał serię testową również do opracowania metody. Bailey i współautorzy analizują przypadkowe sukcesy po wielokrotnym szukaniu w tych samych danych. Zapisuj wszystkie próbowane procedury i oddzielaj dalszą weryfikację na dotąd nieużytej historii. Przesuwanie się w czasie nie jest gwarancją statystyczną ani oszacowaniem prawdopodobieństwa nadmiernego dopasowania do przeszłych danych. [6]

Zachowaj granice okien, kandydatów, oceny wyboru, rzeczywiste decyzje i późniejsze wyniki po kosztach. Do sumy dodaj straty, liczbę obserwacji i porównanie na równych zasadach. Amerykańska NFA przypomina, że wyniki hipotetyczne nie oddają wszystkich problemów z płynnością, poślizgiem i zachowaniem przy prawdziwej stracie; jej zasady promocji dotyczą określonych członków. Mały stratny przykład nie obala całej metody. Dodatnia suma też nie dowodzi przyszłej przewagi. [7]

PrzykładPRZYKŁAD · WFA

Dawny zwycięzca może przegrać kolejną rundę

Weźmy nasz fikcyjny przykład: sześć równych okresów od 1 do 6 i ustalone wcześniej warianty A i B. Przy tej samej stałej wielkości transakcji wyniki netto wynoszą A [4, -1, 2, -3, 5, -2] USD oraz B [1, 2, 1, 1, -2, 4] USD. Każdy wynik staje się dostępny dopiero po zakończeniu okresu, obejmuje wszystkie koszty modelu i nie pozostawia otwartej pozycji. Nie ma dodatkowych kosztów zmiany, długu, wpłat ani wypłat. Przed testem ustalamy procedurę: zsumować ostatnie trzy zakończone okresy, wybrać wyższą sumę i zastosować zwycięzcę tylko w następnym okresie; przy remisie wybrać A. Okna wyboru to [1, 2, 3], [2, 3, 4] i [3, 4, 5], a kolejne testy [4, 5, 6]. Sumy A przy wyborze wynoszą [5, -2, 4] USD, a B [4, 4, 0] USD. Wybieramy więc kolejno A, B i A. Do łącznego wyniku testu trafia wyłącznie [-3, -2, -2] USD, razem -7 USD. Konto testowe zaczyna przed okresem 4 z gotówką 1000 USD i kończy z 993 USD; wielkość transakcji nie zmienia się wraz z saldem. Zysków z okien wyboru nie dopisujemy do konta, a każdy test liczymy raz. Schemat pokazuje przesuwanie okien i kolejnych testów, 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 test można później wykorzystać do wyboru?

Tak, gdy okres się zakończył, potrzebne dane są dostępne i przewidziana procedura na to pozwala. Nie wolno wstecznie zmienić wariantu ani wyniku zapisanych dla tamtego testu.

02Czy Walk-forward Analysis zapobiega nadmiernemu dopasowaniu?

Nie samoistnie. Okna, kandydatów lub całą procedurę nadal można wielokrotnie dostrajać do tych samych wyników. Dokumentuj próby, sprawdzaj przecieki informacji i odróżniaj dalsze opracowywanie od rzeczywiście nowej weryfikacji.

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
Zaktualizowano: Najpierw źródła · To nie jest porada inwestycyjna