8 listopada 2026 · badania

Twój backtest może być zbyt odtwarzalny

Twój backtest może być zbyt odtwarzalny

Backtest, który da się idealnie odtworzyć, może być mniej wiarygodny niż taki, którego wynik nieco się zmienia. Powtarzalność dowodzi, że można dwukrotnie uzyskać tę samą odpowiedź; nie mówi nic o tym, czy odpowiedź zależy od arbitralnego zrzutu danych, osobliwości biblioteki czy ukrytej wartości domyślnej.

Brzmi to jak argument przeciwko odtwarzalności, ale nim nie jest. Zamroź przebieg, żeby móc go wyjaśnić. Następnie celowo zmieniaj założenia, które nie powinny przesądzać o wyniku. Pierwszy krok sprawia, że wynik można poddać audytowi; drugi pozwala ocenić, czy coś znaczy.

Co właściwie potwierdza odtwarzalny backtest?

Jeśli ten sam kod, dane, konfiguracja i ziarno losowe dają te same transakcje i metryki, udało Ci się wyeliminować ważne źródło nieporozumień. „Ulepszenie” wprowadzone przez agenta można porównać z przebiegiem bazowym. Poprawkę błędu można odróżnić od zmiany harmonogramu opłat. Współpracownik może przejrzeć ten sam rejestr i znaleźć te same realizacje zleceń.

Wynik zależy jednak od wszystkiego, co zostało zamrożone. Rozważmy strategię krypto, której plik historyczny zawiera świece 1-minutowe. Zapisujesz hash pliku, przypinasz wersję kodu i przy każdym ponownym uruchomieniu uzyskujesz Sharpe’a 1.4. Jeśli dostawca później skoryguje kilka świec, ta czysta odtwarzalność nadal opisuje stary plik. Nie mówi, czy sygnał utrzymuje się w skorygowanej historii ani czy te świece były w takiej postaci dostępne w danym momencie.

Hash jest przydatny: ujawnia tę zależność. Nie dowodzi jednak, że jest ona nieszkodliwa.

Zamroź przebieg, sprawdź wniosek

Lubię rozdzielać dwa pytania. Czy potrafimy odtworzyć dokładnie ten przebieg? I czy wniosek z badań utrzyma się przy rozsądnych zmianach? Pierwsze wymaga niezmiennego zapisu; drugie — kontrolowanych perturbacji, wprowadzanych pojedynczo.

Co zapisaćCo później zmieniaćCo można dzięki temu wykryć
Wersję surowych danych i sumy kontrolneRewizję dostawcy lub drugie źródłoZależność od skorygowanych lub specyficznych dla dostawcy wartości
Commit kodu i wersje pakietówImplementację równoważną numerycznieWrażliwość na kolejność, zaokrąglenia lub bibliotekę
Opłaty, funding i założenia dotyczące realizacji zleceńUzasadniony zakres kosztówCzy niewielka przewaga wymaga wyjątkowo korzystnej realizacji zleceń
Uniwersum i skład w danym momencieAlternatywne zasady kwalifikacji rynkówZależność od decyzji o włączeniu lub wykluczeniu

Załóżmy na przykład, że symulacja bazowa strategii futures wykazuje 8% annualizowanej stopy zwrotu ponad benchmark. Uruchom ją ponownie z kosztami taker wyższymi o 25%, fundingiem przesuniętym do następnego zaobserwowanego rozliczenia oraz po kolejnym usunięciu dwóch największych kontrybutorów wyniku. To nie są trzy sposoby na ulepszenie modelu. To sondy: każda sprawdza, czy wiarygodny szczegół odpowiada za główny wynik.

Każdą sondę przeprowadzaj oddzielnie. Jeśli jednocześnie zmienisz dane, harmonogram opłat i moment realizacji zleceń, gorszy wynik niewiele Ci powie. A jeśli dana sonda jest mało realistyczna, oznacz ją jako scenariusz stresowy, zamiast przedstawiać jako prawdopodobny wynik.

Nie utożsamiaj identyczności bajt po bajcie z prawdą numeryczną

Niektóre obliczenia są wrażliwe na kolejność. Dodawanie liczb zmiennoprzecinkowych nie jest łączne, więc sumowanie wielu małych wartości P&L w innej kolejności może zmienić kilka ostatnich cyfr. Równoległa redukcja, sprzęt i wersje bibliotek również mogą wpływać na dokładny wynik. Zazwyczaj nie ma to znaczenia; czasem jednak niewielka zmiana numeryczna przekracza próg, zmienia pozycję i kieruje dalszą część symulacji na inną ścieżkę.

Dlatego zachowałbym zarówno dokładne artefakty, jak i tolerancje używane przy porównaniach. Zapisuj rejestr transakcji, a nie tylko końcowy Sharpe. Najpierw porównuj decyzje i przepływy pieniężne, a potem metryki z określoną tolerancją. Jeśli różnica jednego centa zmienia decyzję o wysłaniu zlecenia, dokładnie sprawdź tę granicę.

Przydatny zapis przebiegu obejmuje tożsamość danych i kodu, konfigurację, ziarno losowe, środowisko wykonania oraz wystarczająco dużo wyników pośrednich, by prześledzić metrykę aż do realizacji zleceń i przepływów pieniężnych. Sam wynik końcowy nie jest odtwarzalnym artefaktem badawczym.

Kiedy zmiana jest szumem, a kiedy odkryciem

Nie każda zmieniona liczba oznacza kryzys. Niewielkie przesunięcie metryki wynikające z innej kolejności redukcji może nie zmienić transakcji. Zmianę transakcji w pobliżu progu warto przeanalizować. Strategia, która traci większość wyniku, gdy jeden dostawca koryguje niewielki fragment historii, ujawniła coś o własnej kruchości, nawet jeśli pierwotny przebieg nadal da się idealnie odtworzyć.

Krytycy testów odporności mają rację w jednej kwestii: łatwo bez końca zmieniać założenia, aż wybrana strategia będzie wyglądać na odporną, albo odrzucić wiarygodny wynik, bo nie wytrzymuje celowo skrajnego scenariusza. Z góry określ realistyczne warianty, przedstaw je wszystkie i odróżnij zwykłe alternatywy od scenariuszy stresowych. Następnie zachowaj przebieg bazowy, żeby inny badacz mógł dokładnie odtworzyć to, co zaobserwowałeś.

Odtwarzalność daje wiarygodny punkt wyjścia. Potem pojawia się ważne pytanie: które elementy odpowiedzi pozostają niezmienne, gdy otoczenie tego przebiegu zmienia się w sposób, którego można rozsądnie oczekiwać?

odtwarzalnośćbacktestinginżynieria danychbadania ilościowe
← Wszystkie wpisy