Walidacja walk-forward: nie wpuszczaj jutra do zbioru treningowego
Zaprojektuj chronologiczny proces badawczy, który ocenia całą procedurę decyzyjną, a nie dopracowaną regułę historyczną.

Testuj proces, nie końcową formułę
Badanie walk-forward wielokrotnie dopasowuje model z użyciem informacji dostępnych w historycznej dacie, zamraża wynikające z niego decyzje i ocenia je w późniejszym okresie. Następnie przesuwa sekwencję dalej. Naśladuje to proces badawczy działający bez znajomości przyszłości. Nie czyni strategii zyskowną ani nie eliminuje wszystkich obciążeń.
Zapisz, co może zmieniać się na każdym etapie. Parametry sygnału, wybór aktywów, szacunki zmienności i założenia kosztowe są częściami procedury. Jeśli badacz ręcznie dostosowuje je po obejrzeniu okresu testowego, procedura się zmieniła i okres ten nie jest już czystą oceną. Odtwarzalny harmonogram jest bardziej informacyjny niż wykres złożony z uznaniowych poprawek.
Świadomie wybieraj kroczące lub rozszerzające się okno historii
Rozszerzające się okno zachowuje wszystkie wcześniejsze obserwacje wraz z upływem czasu. Może stabilizować szacunki, ale także zachowywać dane z nieaktualnych warunków rynkowych. Okno kroczące wykorzystuje stały, niedawny okres, ułatwiając adaptację kosztem większego szumu próby. Żadne podejście nie jest uniwersalnie lepsze; właściwy kompromis zależy od tego, jaka relacja ekonomiczna ma się utrzymać.
Wybierz długości okien z uzasadnionego powodu przed porównaniem wyników. Próbowanie dziesiątek długości i wybór najlepszej jedynie przenosi optymalizację na wyższy poziom. Zapisuj liczbę obserwacji, odrębnych epizodów rynkowych i rzeczywistych transakcji w każdym przedziale testowym. Długi okres kalendarzowy z bardzo małą liczbą niezależnych decyzji może dostarczać mniej dowodów, niż sugeruje jego długość.
Przeciek informacji kryje się w przygotowaniu danych
Podział chronologiczny jest konieczny, ale niewystarczający. Standaryzacja cechy średnią z całej próby pozwala przyszłym obserwacjom wpływać na przeszłe dane wejściowe. Wybór papierów, które przetrwały, użycie zrewidowanych danych makroekonomicznych lub uwzględnienie raportu przed jego publikacją tworzy inne formy wykorzystania wiedzy z przyszłości. Dopasowuj transformacje na danych treningowych i w miarę możliwości zachowuj dostępność informacji zgodną z danym momentem.
Znaczenie mają także etykiety. Jeśli przykład treningowy przewiduje stopę zwrotu mierzoną w ciągu następnych pięciu dni, jego wynik może nakładać się na początek okresu testowego. Usuń lub oddziel obserwacje, których okna etykiet przekraczają tę granicę. Oprogramowanie może wstawić przerwę między indeksami zbioru treningowego i testowego, ale dobór sensownej przerwy wymaga zrozumienia horyzontów etykiet, opóźnień publikacji i zależności w danym zbiorze danych.
Data cechy nie jest datą poznania wyniku, który model ma przewidywać. Poniedziałkowy sygnał może używać wyłącznie dostępnych wtedy danych, lecz jego pięciodniowa przyszła stopa zwrotu we wtorek nie jest jeszcze znana. Wtorkowe uczenie nie może korzystać z tej kompletnej etykiety. Reguła doboru danych powinna sprawdzać cały okres etykiety i faktyczną dostępność, nie tylko początek wiersza.
Dostrajaj w zbiorze treningowym, zachowaj nietknięty zbiór do oceny
Dobór parametrów powinien wykorzystywać wyłącznie informacje z obszaru treningowego, ewentualnie poprzez wewnętrzną procedurę walidacji chronologicznej. Zewnętrzny przedział testowy ocenia następnie wybraną procedurę. Takie zagnieżdżenie odróżnia wybór modelu od pomiaru skuteczności tego wyboru. Zwiększa też koszt obliczeń, co jest lepsze niż uzyskanie taniego, lecz skażonego wyniku.
Połącz zwroty z kolejnych testów w rzeczywistej kolejności czasowej, uwzględniając okresy bez pozycji. Stosuj opłaty i założenia realizacji konsekwentnie. Nie uśredniaj atrakcyjnych wskaźników z poszczególnych podprób bez zbadania ich znaczenia ekonomicznego: krótki spokojny okres może w przeciwnym razie uzyskać pozornie taką samą wagę jak długi okres zmienny. Pokaż rozrzut między okresami obok łącznego wyniku.
Słaby wynik jest użytecznym dowodem
Wynik testu walk-forward, który pogarsza się po kosztach, zależy od jednego okresu lub drastycznie zmienia się po drobnej korekcie czasu, wymaga zbadania, a nie kosmetycznej naprawy. Oddziel wadę danych lub implementacji od strategii, która po prostu nie ma potwierdzenia. Usunięcie rzeczywistego błędu może uzasadniać ponowne uruchomienie, ale wcześniejszy kontakt z wynikami musi pozostać częścią historii badań.
Jeśli dalsza ocena jest uzasadniona, zakończ zamrożoną specyfikacją i naprawdę nowym okresem obserwacji demonstracyjnej. Z góry określ zbierane dane i to, co unieważniłoby założenia. Celem nie jest dalsza optymalizacja aż do pojawienia się atrakcyjnej linii, lecz ustalenie, czy zdyscyplinowana i wykonalna procedura wytrzymuje okazje do porażki.
Przenoś pozycje i kapitał przez granice kolejnych testów
Ponowne dopasowanie modelu nie zamyka automatycznie pozycji. Jeśli test styczeń–marzec kończy się z pozycją mającą wyjść w kwietniu, ustal wcześniej, czy zachowujesz starą regułę, stosujesz udokumentowaną nową, czy zamykasz pozycję z kosztami. Niejawny reset każdej części do gotówki może wymazać straty, odtworzyć kapitał albo ominąć trudny moment przejścia.
Kapitał także musi płynnie przechodzić między okresami. Zysk 10%, a potem strata 10% dają 1,10 × 0,90 = 0,99, czyli stratę 1%, nie zerowy wynik sugerowany przez średnią arytmetyczną. Zachowaj chronologiczny szereg ze spójnymi zasadami wielkości pozycji. Gdy odcinki testowe nakładają się kalendarzowo, nie licz dwukrotnie tego samego dziennego wyniku; wyjaśnij wybór modelu lub podział kapitału.
W każdym oknie uczącym ponawiaj konieczne wybory: selekcję cech, skalowanie, uzupełnianie braków i porównanie algorytmów. Transformacja dopasowana raz do całej historii może przeciekać przyszłością mimo poprawnego ponownego uczenia modelu. TimeSeriesSplit pomaga dzielić indeksy chronologicznie, lecz nie zna terminów dojrzewania etykiet, rewizji publikacji ani zasad przenoszenia otwartych pozycji.
Dla każdego odcinka przechowuj koniec uczenia, dostępne obserwacje, parametry, pierwszą możliwą transakcję, początkowe pozycje, koszty i stan końcowy. Zapisuj powody pominiętych danych lub zleceń. Po naprawie błędu przelicz cały proces spójnie, zachowując poprzednie wyniki. Poprawiona wersja oglądanych wcześniej danych nie staje się nowym, nietkniętym eksperymentem.