To pytanie, w takiej czy innej formie, najczęściej zadają mi osoby, które właśnie ukończyły swoją pierwszą strategię: ilu transakcji potrzebuję, żeby wynik był wiarygodny? Zwykle pada przy tym konkretna liczba. „Mam 1,200 transakcji, to wystarczy, prawda?”. Szczera odpowiedź irytuje wszystkich, bo wcale nie chodzi o liczbę transakcji.
Cała sprawa sprowadza się do jednego wiersza. Potem przez resztę wpisu wyjaśnię, dlaczego jest to bolesne.
Jaki jest błąd standardowy współczynnika Sharpe’a?
Dla Sharpe’a obliczonego na podstawie n okresowych stóp zwrotu, przy założeniu, że są niezależne i w przybliżeniu normalne, błąd próbkowania wynosi:
SE(s) ≈ √((1 + s²/2) / n)
gdzie s to Sharpe mierzony z tą samą częstotliwością. Annualizujmy obie strony, a otrzymamy prosty wynik. Przy k obserwacjach rocznie i T latach annualizowany Sharpe S ma:
SE(S) ≈ √((1 + S²/(2k)) / T)
Zwróć uwagę na 2k w mianowniku. Dla dziennych stóp zwrotu k = 252, więc nawet Sharpe równy 2 daje 4/504 ≈ 0.008 w liczniku. Cały składnik sprowadza się do 1. Błąd standardowy annualizowanego Sharpe’a wynosi w przybliżeniu 1/√T, gdzie T oznacza liczbę lat kalendarzowych objętych danymi. Zależy on w niewielkim stopniu od samej wartości Sharpe’a, nie zależy od częstotliwości próbkowania i zdecydowanie nie zależy od liczby zawartych transakcji.
A więc:
| Lata danych | SE(Sharpe) | 95% CI, jeśli zmierzono 1.5 |
|---|---|---|
| 1 | 1.00 | −0.46 do 3.46 |
| 2 | 0.71 | 0.11 do 2.89 |
| 3 | 0.58 | 0.37 do 2.63 |
| 5 | 0.45 | 0.62 do 2.38 |
| 10 | 0.32 | 0.88 do 2.12 |
Backtest pokazujący Sharpe’a 1.5 dla dwóch lat danych historycznych nie pozwala na poziomie ufności 95% odróżnić strategii od rzutu monetą. To punkt wyjścia dla większości badań nad krypto, bo u większości osób czyste dane, skorygowane o błąd przeżywalności i uwzględniające dokładne opłaty, zaczynają się gdzieś około 2022 roku, a połowa interesujących symboli nie istniała przed 2023 rokiem.
Ale mam 40,000 transakcji. Czy to nie rozwiązuje problemu?
Nie, i właśnie to nieporozumienie chcę przede wszystkim wyjaśnić.
Liczba transakcji i długość próby to różne wielkości, a we wzorze występuje tylko jedna z nich. Jeśli strategia wygeneruje 40,000 transakcji w ciągu sześciu miesięcy, masz T = 0.5 i SE ≈ 1.41. Twój 95% przedział dla zmierzonego Sharpe’a 2.0 rozciąga się od −0.8 do 4.8. Czterdzieści tysięcy transakcji, a uczciwy wniosek brzmi: „strategia może być dobra, ale może też przynosić straty”.
Powód jest taki, że te 40,000 transakcji nie oznacza 40,000 niezależnych zakładów na 40,000 różnych stanów rynku. To 40,000 próbek z około 180 dni zachowania rynku, przy czym poszczególne dni są ze sobą skorelowane, a reżimy rynkowe również wykazują wewnętrzne korelacje. Portfel high-frequency oparty na powrocie do średniej, który zarabia każdego dnia przez cztery miesiące, w rzeczywistości postawił jeden zakład — że krótkoterminowe odwrócenie trendu utrzyma się w tym reżimie płynności — i zaobserwował jego rozstrzygnięcie może kilka razy w niezależnych warunkach.
Stosuję taką podmianę w myśleniu: licz reżimy, nie transakcje. W ilu naprawdę różnych warunkach rynkowych strategia sobie poradziła? Strategia funding carry działająca w trakcie jednego długiego okresu dodatniej bazy widziała n = 1, bez względu na liczbę odnotowanych godzinnych rebalansowań.
Szybka diagnostyka: zastosuj block bootstrap do dziennego P&L, używając bloków o długości 20 dni, i sprawdź rozrzut przeskalowanych prób Sharpe’a. Jeśli 5. percentyl jest poniżej zera, liczba transakcji nie ma znaczenia. Można to zrobić w około dziewięciu wierszach numpy; ten test odwiódł mnie od większej liczby strategii niż jakikolwiek inny pojedynczy test.
Czy ten wzór sprawdza się dla rzeczywistych strategii?
Nie całkiem, a błąd działa w kierunku, który ci się nie spodoba. Wynik 1/√T zakłada normalne stopy zwrotu IID. Rzeczywiste stopy zwrotu strategii są autokorelacyjne i skośne, a skośność zwykle jest ujemna w przypadku strategii przypominających carry, short vol lub powrót do średniej. Korekta Mertensa uwzględnia te momenty:
SE(s) ≈ √((1 + s²/2 − γ₃·s + (γ₄−3)·s²/4) / n)
gdzie γ₃ oznacza skośność, a γ₄ kurtozę. Ujemna skośność sprawia, że składnik −γ₃·s jest dodatni, co poszerza przedział. Nadmiarowa kurtoza poszerza go jeszcze bardziej. Dla typowego P&L strategii crypto carry, ze skośnością około −1.2 i kurtozą około 9, widziałem, że skorygowany błąd standardowy był o 30–40% większy niż naiwny. W artykule Lo z 2002 roku omówiono autokorelację i uzyskano ten sam kierunek efektu: dodatnia autokorelacja stóp zwrotu zawyża naiwny Sharpe i zmniejsza pozorny błąd. To nieprzyjemne połączenie.
Traktuj więc 1/√T jako dolną granicę niepewności. To najlepszy możliwy przypadek.
Jak wysoki musi być Sharpe, jeśli przetestowałem 500 wariantów?
Przechodzimy teraz do kwestii ważnej dla każdego, kto prowadzi zautomatyzowany proces badawczy. W Stratmill na co dzień jesteśmy właśnie w takiej sytuacji: agent generujący strategie nie tworzy jednego kandydata, tylko setki.
Oczekiwana wartość maksimum spośród M losowań ze standardowego rozkładu normalnego wynosi w przybliżeniu √(2 ln M). Pomnóż tę wartość przez błąd standardowy, a otrzymasz Sharpe’a, jakiego wykaże najszczęśliwsza z M zupełnie bezwartościowych strategii.
| Liczba testowanych strategii | √(2 ln M) | Sharpe najlepszej strategii opartej na szumie, 5 lat (SE 0.45) | Najlepsza strategia oparta na szumie, 2 lata (SE 0.71) |
|---|---|---|---|
| 10 | 2.15 | 0.96 | 1.52 |
| 100 | 3.03 | 1.36 | 2.16 |
| 500 | 3.53 | 1.58 | 2.50 |
| 5,000 | 4.13 | 1.85 | 2.93 |
Spójrz na przedostatni wiersz. Jeśli wygenerowałeś 500 kandydatów na podstawie dwóch lat danych, a zwycięzca ma Sharpe’a 2.4, nie znalazłeś absolutnie nic. To wynik poniżej poziomu szumu. Deflated Sharpe Baileya i Lópeza de Prado formalizuje to podejście, zastępując przybliżone √(2 ln M) wariancją Sharpe’ów z przeprowadzonych prób. Warto poprawnie go zaimplementować, ale nawet uproszczona wersja wystarczy, by zmienić dzisiejsze praktyki.
Dwie kwestie sprawiają, że problem jest poważniejszy, niż wynika z tabeli. Po pierwsze, M to liczba strategii, które oceniłeś, a nie tych, które zapisałeś. Liczą się wszystkie zmiany parametrów, każde „sprawdzę jeszcze lookback na 30 okresów” i każde ponowne uruchomienie po poprawieniu błędu. Nikt nie prowadzi uczciwego rachunku. Po drugie, kandydaci nie są niezależnymi losowaniami, więc √(2 ln M) zawyża efektywną szerokość próby. Jednocześnie skorelowane testy oznaczają, że jeden szczęśliwy reżim podnosi wyniki całej grupy strategii.
Najgroźniejsza liczba w badaniach ilościowych to ta, której nikt nie zapisał: ile razy sprawdzałeś.
Co więc właściwie robię?
Pięć rzeczy, w kolejności, w jakiej bym się za nie zabrał.
- Zapisuj każdą ocenę. Licznik zwiększany przy każdym uruchomieniu backtestu, z zapisem wyniku i bez resetowania. Jeśli nie wiesz, czym jest M, nie znasz swojego progu. To godzina pracy inżynierskiej, która daje największą wartość spośród wszystkich punktów na tej liście.
- Zawsze podawaj Sharpe’a razem z przedziałem. Nigdy nie wyświetlaj samej liczby. Nasze raporty z backtestów pokazują
1.72 ± 0.51 (2.9y, skew-adjusted), a znak ± jest obowiązkowy. To zmienia sposób, w jaki cały zespół rozmawia o wynikach. - Ustal próg na podstawie M i T, zanim spojrzysz na wyniki. Odczytaj wartość z powyższej tabeli i zapisz ją. Progi ustalane po fakcie sprawiają, że każdy potrafi przekonać sam siebie, że dopasowana krzywa jest wiarygodna.
- Gdy próba jest mała, stawiaj na szerokość próby, nie częstotliwość. Nie da się wyczarować dodatkowego czasu kalendarzowego, ale można uruchomić ten sam sygnał na 40 nieskorelowanych symbolach. To rzeczywiście zwiększa efektywne n, czego nie zapewnia wyższa częstotliwość transakcji. Uważaj jednak na korelacje — 40 krypto kontraktów perpetualnych podczas godziny awersji do ryzyka to jeden instrument.
- Potem przetestuj strategię na koncie demo. Próba poza próbą treningową wydłuża się o jeden dzień z każdym dniem i nie ma na to skrótu. Właśnie dlatego to jedyna próba, której nie da się przeuczyć.
Nic z tego nie sprawia, że krótkie próby stają się użyteczne. Pozwala uczciwie określić, jakie wnioski można wyciągnąć z krótkiej próby. Są one znacznie skromniejsze, niż sugeruje większość raportów z backtestów. Sharpe 1.5 z dwóch lat to hipoteza warta sprawdzenia na koncie demo. To nie jest ustalenie.
← Wszystkie wpisy
