Przetestowaliśmy 240 zestawów parametrów. Najlepszy osiągnął współczynnik Sharpe’a 2.1, mediana wyniosła 0.1, a tylko 17 przekroczyło 1.0. Te liczby brzmią jak odkrycie, dopóki nie dowiemy się, że nawet gdy żadna strategia nie ma rzeczywistej przewagi, tak szerokie przeszukiwanie może przypadkiem wyłonić zwycięzcę, który wygląda imponująco.
Zaskakuje liczba 240. Raport z backtestu zwykle traktuje wybraną strategię tak, jakby pojawiła się sama. Badania tak nie przebiegają. Każda zmiana parametrów, podmiana cechy, zmiana uniwersum i ponowne uruchomienie po niekorzystnym wyniku dają szumowi kolejną szansę, by wyglądał jak sygnał.
Dlaczego testowanie większej liczby strategii zawyża najlepszy Sharpe?
Wyobraźmy sobie 240 niezależnych strategii bez rzeczywistej przewagi i z zaszumionymi szacunkami Sharpe’a. Większość szacunków będzie bliska zeru, ale maksimum zwykle okaże się dodatnie. Im więcej kandydatów sprawdzamy, tym dalej to maksimum może odbiegać od prawdy.
Dla zgrubnej ilustracji załóżmy, że błąd standardowy szacowanego Sharpe’a każdego kandydata wynosi 0.5. Przy 240 niezależnych losowaniach najwyższy szacunek może znaleźć się około 1.4 błędu standardowego powyżej średniej, czyli mniej więcej 0.7 Sharpe’a, wyłącznie wskutek selekcji. Rzeczywiści kandydaci na strategie są skorelowani, więc tego obliczenia nie można po prostu użyć jako korekty w raporcie. Pokazuje ono, dlaczego stwierdzenie „zwycięzca pokonał zero” jest słabym dowodem po szerokim przeszukiwaniu.
Przeszukiwanie rzadko ogranicza się do siatki parametrów. Możemy wypróbować trzy rodziny sygnałów, odrzucić dwie po obejrzeniu ich krzywych, zmienić uniwersum instrumentów, a potem ponownie uruchomić pozostałą strategię z innym harmonogramem rebalansowania. Jeśli wyniki wpłynęły na te decyzje, powinny znaleźć się w historii badań.
Co liczy się jako próba backtestu?
Decyzję liczymy jako próbę, jeśli jej wynik mógł wpłynąć na wybór strategii. Obejmuje to uruchomienia, których nie opublikowaliśmy, oraz warianty przerwane przedwcześnie, bo krzywa kapitału wyglądała źle. Błąd kompilacji nie jest próbą oceny wyników; uruchomienie, które dało rozczarowujący Sharpe, zazwyczaj nią jest.
| Działanie badawcze | Czy zwykle liczyć? | Dlaczego |
|---|---|---|
| Zmiana okresu wstecznego z 20 na 30 po przejrzeniu wyników | Tak | Pierwszy wynik wpłynął na kolejnego kandydata |
| Uruchomienie tej samej, z góry ustalonej strategii na nowym, wcześniej określonym zakresie dat | Zwykle nie jest to nowa próba selekcji | Reguła została ustalona przed zapoznaniem się z tymi dowodami |
| Zmiana uniwersum po zobaczeniu, które aktywa wypadły najlepiej | Tak | Wybór uniwersum może poprawić pozorny wynik |
| Poprawienie błędu składni i ponowne uruchomienie niezmienionego kodu | Nie | Żadna decyzja badawcza nie zależała od wyników |
Granica przebiega tam, gdzie użyliśmy wyniku, by podjąć decyzję. Odtworzenie tego z pamięci bywa trudne, dlatego dziennik eksperymentów powinien rejestrować hipotezę, wersję kodu lub konfiguracji, zakres danych, założenia dotyczące kosztów i wynik każdego uruchomienia.
Czy można skorygować wyniki pod kątem testowania wielokrotnego?
Istnieją metody szacowania błędu selekcji lub korygowania istotności dla wielu prób. Mogą być przydatne, ale wymagają założeń dotyczących zależności między kandydatami i zachowania stóp zwrotu. Nominalna wartość p ani pojedynczy skorygowany szacunek Sharpe’a nie uratują przeszukiwania, którego rzeczywista historia zaginęła.
Zacznijmy od tego, na co mamy wpływ. Ustalmy ostateczną specyfikację przed oceną naprawdę nietkniętego okresu. Zachowajmy widoczny cały zbiór kandydatów. Testując wiele powiązanych wariantów, grupujmy je według decyzji, która doprowadziła do ich powstania, zamiast udawać, że każdy był niezależnym odkryciem. Opisujmy przeszukiwanie obok zwycięzcy: liczbę prób, regułę selekcji i informację, czy ocena końcowa wpłynęła na dalsze zmiany.
Przydatny test: Jeśli wynik na zbiorze odłożonym na później rozczaruje, czy zmienimy strategię i ponownie nazwiemy ten sam okres zbiorem odłożonym? Jeśli tak, ten okres stał się częścią badań. Do następnej oceny potrzebujemy nowych dowodów.
Co powinien rejestrować agent badawczy AI?
Agent może generować kandydatów szybciej, niż człowiek jest w stanie przechowywać ich w pamięci roboczej. Dlatego ewidencja prób powinna być częścią systemu badawczego, a nie obowiązkiem przy sporządzaniu raportu. Zapisujmy każdego kandydata przed uruchomieniem, wraz z eksperymentem bazowym i powodem jego utworzenia. Zachowujmy nieudane i odrzucone uruchomienia. Rejestrujmy, kiedy człowiek lub agent sprawdził wyniki i jaka decyzja po tym zapadła.
Następnie zadbajmy o odtwarzalność procesu selekcji: przy tym samym zbiorze kandydatów i tej samej regule powinien zostać wybrany ten sam zwycięzca. Jeśli agent po zobaczeniu wyników wciąż zmienia prompt, cel lub ograniczenia, te zmiany również są częścią przeszukiwania.
Sharpe na poziomie 2.1 może zasługiwać na dalsze badanie. Jego znaczenie zależy od drogi, która do niego doprowadziła. Gdy dziennik badań pokazuje, że o główny wynik rywalizowało 240 kandydatów, możemy zadać właściwe kolejne pytanie: jakie dowody nam jeszcze pozostały, skoro żaden z tych wyborów ich już nie wykorzystał?
← Wszystkie wpisy


