Výsledky backtestu opcí se mohou změnit, i když se nezmění jediný řádek kódu strategie. Dodavatel opraví chybnou kotaci, doplní pozdě nahlášený obchod, upraví metadata kontraktu nebo změní filtr pro překřížené trhy. Znovu spustíte backtest za stejná data a dostanete jiné plnění, jinou pozici, možná i jiné Sharpe. Nemusí jít o chybu ve strategii. Změnily se podklady, podle nichž jsme strategii testovali.
Aby byl backtest opcí reprodukovatelný, berte tržní data jako verzovaný vstup. Zaznamenejte, který snapshot jste použili, uchovejte surová pozorování, která vedla ke každému rozhodnutí, a než začnete důvěřovat novému souhrnnému výsledku, porovnejte změny na úrovni kontraktu a časového razítka.
Proč se změnil můj backtest opcí, když kód zůstal stejný?
Záznamy o opcích jsou na opravy mimořádně citlivé, protože zdánlivá obchodovatelnost kontraktu závisí na několika polích, která se mění současně: bidu, asku, objemech, ceně podkladového aktiva, expiraci, strike ceně a multiplikátoru či dodávaném plnění kontraktu. Opravená kotace může změnit zdánlivou příležitost v překřížený trh. Oprava metadat může změnit význam multiplikátoru pozice.
Představme si strategii, která koupí call opci, když je ask nižší než $2.00. Při prvním načtení dat má kotace v 10:14 ask $1.95, bid $1.90 a velikost 5. Pozdější revize dodavatele změní ask na $2.05 po zpracování opožděné zprávy z burzy. Jediné pozorování tak obrátí signál. Pokud byl tento kontrakt jediným obchodem strategie v daný den, může i drobná oprava dat zásadně ovlivnit denní výnos.
Důležité je také filtrování kotací. Dodavatelé mohou vyřazovat zastaralé kotace, odstraňovat překřížené trhy nebo jinak normalizovat časová razítka. Takové postupy mohou dávat smysl, ale patří k identitě datové sady. „Opce SPY od ledna do března“ nepopisují reprodukovatelnou historii.
Co je vintage opčních dat?
Vintage dat je přesná verze historických pozorování dostupná pro konkrétní výzkumný běh. Uchovávejte název dodavatele a datové sady, čas načtení, časové období, verzi schématu a veškerá pravidla čištění a filtrování. Pokud dodavatel poskytuje ID snapshotů nebo časová razítka revizí, uložte i je.
U každého simulovaného rozhodnutí uchovávejte dostatek údajů, abyste mohli odpovědět: o jakém kontraktu se uvažovalo, kterou kotaci jsme vybrali, kdy byla zveřejněna nebo přijata a podle jakého pravidla byla způsobilá? Záleží na surovém i odvozeném záznamu. Očištěný NBBO bez zdrojových časových razítek může skrýt, zda byla kotace zastaralá nebo dorazila až po simulovaném rozhodnutí.
| Záznam k uchování | Proč je důležitý | Příklad |
|---|---|---|
| Zdrojový snapshot | Určuje historii použitou při běhu | ID revize dodavatele a čas načtení |
| Původ kotace | Vysvětluje výběr trhu | Burza, čas události, čas přijetí, bid/ask a objemy |
| Podmínky kontraktu | Určují, co opce představovala | Strike cena, expirace, multiplikátor a dodávané plnění |
| Pravidla čištění | Ukazují, která pozorování byla vyřazena | Limit zastaralosti a zacházení s překříženými kotacemi |
Jak zjistím, jestli revize dodavatele změnila výsledky?
Spusťte stejnou strategii se stejnou konfigurací nad oběma snapshoty. Nejprve podle data porovnejte počet způsobilých pozorování a kontraktů. Potom porovnejte rozhodnutí a plnění: které signály se objevily nebo zmizely, která kotace se změnila a zda nový záznam změnil modelovanou realizační cenu.
Nesledujte jen celkový výnos. Zaznamenávejte změny v počtu obchodů, vstupních a výstupních cenách, zamítnutých signálech a podílu P&L z obchodů, které existují jen v jednom vintage. Sharpe může zůstat podobný, přestože se jednotlivé obchody mění; hlavní statistika vám neřekne, že se změnila historie, z níž vychází.
Při smysluplném auditu ponechte strategii, poplatky a předpoklady provádění obchodů beze změny. Pokud změníte několik věcí najednou, nezjistíte, zda odchylku způsobila oprava dodavatele, nebo váš vlastní experiment.
Mám vždy používat nejnovější historii opcí?
Nejnovější historii použijte, když chcete vycházet z aktuálně nejlepší rekonstrukce dodavatele. Starý snapshot si ponechte, pokud potřebujete reprodukovat dřívější výsledek nebo zjistit, jaké informace měl váš výzkumný systém v dané době k dispozici. Jde o dvě různé otázky.
Při výzkumu point-in-time může být opravený záznam dnes přesnější, a přesto tehdy nemusel být strategii dostupný. Kde je to možné, uchovávejte časy zveřejnění a přijetí; jinak omezení jasně popište. Moderní rekonstrukce automaticky nepředstavuje historickou informační sadu.
Když se backtest opcí změní, první otázka by měla znít: „Která pozorování se změnila?“ Na otázku „Který běh je správný?“ přijde řada, až na to dokážete odpovědět.
Co mám ukládat ke každému backtestu?
Vedle výsledků uložte stručný manifest: poskytovatele dat a snapshot, čas načtení, verze schématu a čištění, zdroj metadat kontraktů, commit strategie, předpoklady provádění obchodů a konfiguraci běhu. Každý obchod propojte se záznamy kotací, které ho odůvodnily.
Díky tomuto stručnému záznamu se z nejasného opakovaného běhu stane rozdíl, který můžete prozkoumat. Historie opcí se bude dál opravovat. Výzkumný proces by měl každou opravu zviditelnit, aby lepší archiv zpřesňoval podklady, aniž by potichu přepisoval experiment.
← Všechny články


