Tohle je otázka, kterou mi v nějaké podobě kladou nejčastěji lidé, kteří právě dokončili svou první strategii: kolik obchodů potřebuju, aby byl výsledek skutečný? Obvykle k tomu připojí nějaké číslo. „Mám 1,200 obchodů, to už stačí, ne?“ A poctivá odpověď všechny otráví, protože vůbec nejde o počet obchodů.
Tady je celé vysvětlení v jednom řádku a zbytek příspěvku věnuju tomu, proč to bolí.
Jaká je standardní chyba Sharpe ratio?
U Sharpe vypočteného z n periodických výnosů za předpokladu, že jsou nezávislé a přibližně normálně rozdělené, je výběrová chyba:
SE(s) ≈ √((1 + s²/2) / n)
kde s je Sharpe měřený se stejnou frekvencí. Anualizujte obě strany a dostanete elegantní výsledek. Při k pozorováních za rok a T letech platí pro anualizovaný Sharpe S:
SE(S) ≈ √((1 + S²/(2k)) / T)
Všimněte si 2k ve jmenovateli. U denních výnosů je k = 252, takže i Sharpe 2 přispívá do čitatele hodnotou 4/504 ≈ 0.008. Celý člen se zjednoduší na 1. Standardní chyba anualizovaného Sharpe je přibližně 1/√T, kde T je počet kalendářních let vašich dat. Na samotném Sharpe závisí jen nepatrně, na frekvenci vzorkování nezávisí a na počtu uskutečněných obchodů už vůbec ne.
Takže:
| Roky dat | SE(Sharpe) | 95% CI při naměřené hodnotě 1.5 |
|---|---|---|
| 1 | 1.00 | −0.46 až 3.46 |
| 2 | 0.71 | 0.11 až 2.89 |
| 3 | 0.58 | 0.37 až 2.63 |
| 5 | 0.45 | 0.62 až 2.38 |
| 10 | 0.32 | 0.88 až 2.12 |
Backtest s Sharpe 1.5 za dva roky historie nedokáže na hladině 95% statisticky odlišit svou výkonnost od hodu mincí. To je výchozí situace u většiny kryptoměnového výzkumu, protože většina lidí má čistá data opravená o zkreslení přeživších a přesná co do poplatků až někdy od roku 2022 a polovina zajímavých symbolů před rokem 2023 vůbec neexistovala.
Ale mám 40,000 obchodů. To to nevyřeší?
Ne, a právě tohle nedorozumění chci nejvíc vyvrátit.
Počet obchodů a délka vzorku jsou různé veličiny a ve vzorci je jen jedna z nich. Pokud vaše strategie spustí 40,000 obchodů za šest měsíců, máte T = 0.5 a SE ≈ 1.41. Interval spolehlivosti 95% pro naměřené Sharpe 2.0 sahá od −0.8 do 4.8. Čtyřicet tisíc obchodů a poctivý závěr zní: „může to být dobré, ale taky to může být ztrátové.“
Důvod je ten, že těch 40,000 obchodů nepředstavuje 40,000 nezávislých sázek na 40,000 různých stavů trhu. Je to 40,000 vzorků z přibližně 180 dnů tržního chování, přičemž jednotlivé dny spolu korelují a korelují i režimy uvnitř těchto dnů. Kniha vysokofrekvenční mean-reversion strategie, která vydělává každý den po čtyři měsíce, ve skutečnosti vsadila jednou — na to, že krátkodobá reverze v tomto režimu likvidity funguje — a výsledek této sázky pozorovala možná jen několikrát nezávisle.
Pro sebe si to převádím takhle: počítejte režimy, ne plnění. Kolika skutečně odlišnými tržními podmínkami tato strategie prošla? Funding-carry strategie, která běžela během jednoho dlouhého období s kladným basisem, zažila n = 1 bez ohledu na počet zaznamenaných hodinových rebalancování.
Rychlá diagnostika: proveďte block bootstrap denního P&L s délkou bloku 20 dní a podívejte se na rozptyl nově vzorkovaných hodnot Sharpe. Pokud je 5. percentil pod nulou, počet obchodů je irelevantní. Zabere to asi devět řádků numpy a odradilo mě to od více strategií než jakákoli jiná jednotlivá kontrola.
Platí ten vzorec pro skutečné strategie?
Ne tak docela a chyba je směrem, který se vám nebude líbit. Výsledek 1/√T předpokládá IID normální výnosy. Skutečné výnosy strategií jsou autokorelované a zešikmené, přičemž u všeho, co připomíná carry, short vol nebo mean reversion, je zešikmení obvykle záporné. Mertensova korekce tyto momenty zahrnuje:
SE(s) ≈ √((1 + s²/2 − γ₃·s + (γ₄−3)·s²/4) / n)
kde γ₃ je šikmost a γ₄ špičatost. Záporná šikmost způsobí, že člen −γ₃·s je kladný, čímž se interval rozšíří. Nadměrná špičatost ho rozšíří ještě víc. U typického kryptoměnového carry P&L se šikmostí kolem −1.2 a špičatostí kolem 9 jsem viděl, že korigovaná standardní chyba byla o 30–40% větší než naivní odhad. Loův článek z roku 2002 řeší autokorelaci a efekt je stejného směru: kladná sériová korelace výnosů nadhodnocuje naivní Sharpe a podhodnocuje zdánlivou chybu, což je nepříjemná kombinace.
Berme tedy 1/√T jako spodní hranici nejistoty. To je nejpříznivější případ.
Jak vysoké musí být Sharpe, když jsem otestoval 500 variant?
Teď se dostáváme k tomu, na čem záleží každému, kdo provozuje automatizovaný výzkumný pipeline. V Stratmill je to naše každodenní realita: agent, který generuje strategie, nevytvoří jednoho kandidáta, ale stovky.
Očekávané maximum z M výběrů ze standardního normálního rozdělení je přibližně √(2 ln M). Vynásobte ho standardní chybou a dostanete Sharpe, které vykáže nejšťastnější z M skutečně bezcenných strategií.
| Otestované strategie | √(2 ln M) | Nejlepší Sharpe z náhodných výsledků, 5 let (SE 0.45) | Nejlepší náhodný výsledek, 2 roky (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 |
Podívejte se na předposlední řádek. Pokud jste na datech za dva roky vygenerovali 500 kandidátů a vítěz vykazuje Sharpe 2.4, nenašli jste vůbec nic. Je to pod úrovní šumu. Deflované Sharpe od Baileyho a Lópeze de Prada to formalizuje pomocí rozptylu vašich testovaných hodnot Sharpe namísto hrubého √(2 ln M). Stojí za to správně ho implementovat, ale i hrubá verze dnes stačí ke změně přístupu.
Dvě věci situaci zhoršují oproti tomu, co naznačuje tabulka. Zaprvé, M není počet strategií, které jste si uložili, ale počet těch, které jste vyhodnotili, včetně každé úpravy parametrů, každého „zkusím jen lookback 30 místo toho“ a každého opakovaného spuštění po opravě chyby. Nikdo to nepočítá poctivě. Zadruhé, kandidáti nejsou nezávislé výběry, takže √(2 ln M) nadhodnocuje efektivní šíři testování. Korelované testy ale také znamenají, že jediný šťastný režim může současně zvednout celý jejich shluk.
Nejnebezpečnější číslo v kvantitativním výzkumu je to, které nikdo nezaznamenal: kolikrát jste se podívali.
Co tedy skutečně dělám?
Pět věcí, v pořadí, v jakém bych se do nich pustil.
- Zaznamenávejte každé vyhodnocení. Počítadlo, které se zvýší při každém spuštění backtestu, průběžně se ukládá a nikdy se nevynuluje. Pokud neumíte říct, kolik je M, neumíte určit ani svůj práh. Tohle je hodinová práce s nejvyšší hodnotou v celém seznamu.
- Vždy uvádějte Sharpe včetně intervalu. Nikdy netiskněte samotné číslo. Naše backtest reporty uvádějí
1.72 ± 0.51 (2.9y, skew-adjusted)a ± není volitelné. Mění to způsob, jakým celý tým o výsledcích mluví. - Určete laťku podle M a T ještě předtím, než se podíváte na výsledky. Vezměte číslo z tabulky výše a zapište si ho. Dodatečně určené prahy vedou k tomu, že si každý namlouvá, že přeučená křivka je skutečný výsledek.
- Když máte málo dat, dejte přednost šíři před frekvencí. Kalendářní čas si uměle nepřidáte, ale stejný signál můžete spustit na 40 nekorelovaných symbolech. Tím se efektivní n skutečně zvýší, kdežto vyšší frekvence obchodů to nedokáže. Jen si hlídejte korelace — 40 kryptoměnových perpetual kontraktů během hodiny s averzí k riziku představuje jediný instrument.
- Pak strategii obchodujte na paper účtu. Vzorek mimo trénink roste tempem jednoho dne za den a neexistuje žádná zkratka. Právě proto jde o jediný vzorek, který nikdo nemůže přeučit.
Nic z toho neznamená, že krátké vzorky lze použít jako důkaz. Pomáhá vám to poctivě říct, co lze z krátkého vzorku vyvodit — a to je mnohem slabší tvrzení, než jaké naznačuje většina backtest reportů. Sharpe 1.5 za dva roky je hypotéza, kterou stojí za to ověřit na paper účtu. Není to zjištění.
← Všechny články
