30. srpna 2026 · statistika

Kolik obchodů potřebuje backtest, aby Sharpe něco znamenal?

Kolik obchodů potřebuje backtest, aby Sharpe něco znamenal?

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í.

1/√Tstandardní chyba anualizovaného Sharpe, T v letech
±0.8895% pásmo kolem libovolného Sharpe za 5 let
1.4Sharpe, kterého za stejných 5 let dosáhne ta nejšťastnější ze 100 náhodných strategií

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 datSE(Sharpe)95% CI při naměřené hodnotě 1.5
11.00−0.46 až 3.46
20.710.11 až 2.89
30.580.37 až 2.63
50.450.62 až 2.38
100.320.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)
102.150.961.52
1003.031.362.16
5003.531.582.50
5,0004.131.852.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.

  1. 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.
  2. 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í.
  3. 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.
  4. 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.
  5. 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í.

Sharpe ratiopřeučeníbacktestingstatistická významnostkvantitativní výzkum
← Všechny články