Dokonale reprodukovatelnému backtestu lze důvěřovat méně než takovému, jehož výsledek se trochu mění. Opakovatelnost dokazuje, že dokážete dvakrát získat stejnou odpověď; neříká nic o tom, zda odpověď nezávisí na jednom svévolně zvoleném snímku dat, zvláštnosti knihovny nebo skrytém výchozím nastavení.
Zní to jako argument proti reprodukovatelnosti, ale není. Běh zmrazte, abyste ho dokázali vysvětlit. Pak záměrně měňte předpoklady, které by o výsledku rozhodovat neměly. První krok umožňuje výsledek auditovat; druhý ukáže, zda něco znamená.
Co vlastně reprodukovatelný backtest dokládá?
Pokud stejný kód, data, konfigurace a náhodný seed vedou ke stejným obchodům a metrikám, máte pod kontrolou jeden důležitý zdroj nejasností. „Zlepšení“ agenta lze porovnat s jeho výchozím během. Opravu chyby lze oddělit od změny sazeb poplatků. Kolega může prohlédnout stejnou účetní knihu a najít v ní stejná plnění.
Výsledek je ale podmíněn vším, co jste zmrazili. Představte si krypto strategii, jejíž historický soubor obsahuje minutové svíčky. Uložíte hash souboru, připnete verzi kódu a při každém opakovaném běhu získáte Sharpe 1.4. Pokud dodavatel později opraví několik svíček, tato čistá reprodukovatelnost stále popisuje starý soubor. Neříká vám, zda signál obstojí i v opravené historii ani zda byly tyto svíčky v dané podobě tehdy dostupné.
Hash je užitečný: zviditelňuje závislost. Nedokazuje však, že tato závislost neškodí.
Běh ponechte beze změny; prověřte zjištění
Rád odděluji dvě otázky. Dokážeme přesně zrekonstruovat tento běh? A obstojí výzkumný závěr při rozumných změnách? První otázka vyžaduje neměnný záznam; druhá řízené změny, vždy po jedné.
| Co zaznamenat | Co následně změnit | Co to může odhalit |
|---|---|---|
| Verzi surových dat a kontrolní součty | Revizi dodavatele nebo druhý zdroj | Závislost na opravených hodnotách nebo hodnotách specifických pro dodavatele |
| Commit kódu a verze balíčků | Numericky ekvivalentní implementaci | Citlivost na pořadí, zaokrouhlování nebo knihovnu |
| Poplatky, funding a předpoklady plnění | Obhajitelné rozpětí nákladů | Zda tenká výhoda vyžaduje neobvykle příznivé plnění |
| Univerzum a složení v daném čase | Alternativní pravidla pro zařazení trhu | Závislost na rozhodnutích o zařazení či vyřazení |
Představme si například, že strategie na futures vykazuje v základním přehrání anualizovaný nadvýnos 8%. Spusťte ji znovu s náklady taker vyššími o 25%, s fundingem posunutým na další zaznamenané vypořádání a postupně také bez dvou největších přispěvatelů. To nejsou tři způsoby, jak model vylepšit. Jsou to zkoušky: každá ověřuje, zda hlavní výsledek nestojí na nějakém věrohodném detailu.
Každou zkoušku provádějte zvlášť. Pokud současně změníte data, sazebník poplatků i načasování exekuce, zhoršený výsledek vám toho o příčině moc neřekne. A pokud je některá zkouška nepravděpodobná, označte ji jako zátěžový scénář, místo abyste ji vydávali za pravděpodobný výsledek.
Nezaměňujte shodu bajt po bajtu za numerickou pravdu
Některé výpočty jsou citlivé na pořadí. Sčítání čísel s plovoucí desetinnou čárkou není asociativní, takže sečtení mnoha malých hodnot P&L v jiném pořadí může změnit posledních několik číslic. Přesný výstup mohou ovlivnit také paralelní redukce, hardware a verze knihoven. Většinou je to neškodné; někdy ale drobná numerická změna překlopí prahovou hodnotu, změní pozici a nasměruje zbytek simulace jinou cestou.
Proto bych uchovával přesné artefakty i tolerance pro porovnávání. Zaznamenávejte účetní knihu obchodů, nejen výsledný Sharpe. Nejprve porovnávejte rozhodnutí a peněžní toky, potom metriky v rámci uvedené tolerance. Pokud rozdíl jednoho centu rozhodne o odeslání příkazu, tuto hranici prověřte přímo.
Užitečný záznam běhu obsahuje identifikaci dat a kódu, konfiguraci, náhodný seed, prostředí spuštění a dostatek mezivýstupů, aby bylo možné dohledat cestu od metriky až k plněním a peněžním tokům. Samotné konečné skóre není reprodukovatelný výzkumný artefakt.
Kdy je změna šum a kdy zjištění
Ne každá změněná hodnota znamená problém. Drobné kolísání metriky způsobené jiným pořadím redukce nemusí změnit obchody. Změnu obchodu poblíž prahové hodnoty stojí za to prověřit. Strategie, která přijde o většinu výsledku poté, co jeden dodavatel opraví malý úsek historie, se o své vlastní křehkosti něco dozvěděla, i když původní běh zůstává dokonale reprodukovatelný.
Kritici testů robustnosti mají v jednom pravdu: lze snadno měnit předpoklady tak dlouho, až oblíbená strategie začne vypadat odolně, nebo zamítnout solidní výsledek, protože ho rozbije některý záměrně extrémní scénář. Předem určete věrohodné varianty, uveďte celý soubor výsledků a rozlišujte běžné alternativy od zátěžových scénářů. Pak zachovejte základní běh, aby jiný výzkumník mohl přesně zopakovat, co jste viděli.
Reprodukovatelnost vám dává spolehlivý výchozí bod. Pak přichází užitečná otázka: které části odpovědi zůstávají stejné, když se svět kolem daného běhu změní způsobem, který lze rozumně očekávat?
← Všechny články


