Backtest vykázal anualizovaný výnos 20 %. Použil 8 let dat, 1,640 obchodů a čisté rozdělení pro testování po jednotlivých obdobích. Pak jsme aktuální historii od dodavatele nahradili hodnotami zaznamenanými v dané době a výhoda klesla na 3 %.
Překvapivým číslem nebyl původní výnos. Bylo to 17 procentních bodů, které závisely na revidovaných datech. Takové zpětné vědění se může skrývat v ekonomických statistikách, firemních fundamentálních údajích, složení indexů, a dokonce i ve zdánlivě jednoduchých tržních datech. Historická data ukazují, co zdroj říká nyní. Datový soubor k určitému okamžiku vám ukáže, co vaše strategie mohla vědět tehdy.
Proč se mohou historická data po události změnit?
Některé hodnoty jsou nejprve odhady a teprve později se opravují. Ekonomický ukazatel zveřejněný v pátek může být následující měsíc revidován. Firma může znovu vykázat hospodářský výsledek. Dodavatel dat může opravit chybný údaj, doplnit chybějící interval nebo nahradit předběžnou hodnotu konečnou. Databáze, která uchovává pouze nejnovější hodnotu, způsobí, že všechny tyto změny vypadají, jako by tak platily odjakživa.
Na tom záleží, když strategie řadí firmy podle vykázaných tržeb nebo obchoduje na trhu po plánovaném zveřejnění dat. Pokud uvidí opravené číslo o několik měsíců dřív, backtest jí poskytl informaci, která v době rozhodnutí na trhu nebyla. Výpočet signálu může být bezchybný, ale jeho vstup stále pochází z nesprávné verze historie.
Snadno se tu dá chytit do pasti: pole s názvem date často označuje období, kterého se hodnota týká, nikoli okamžik, kdy byla dostupná. Řádek s čtvrtletními tržbami označený datem 31. března mohl být zveřejněn až v květnu. Štítek popisuje období hospodaření firmy, nikoli informační sadu strategie.
Které časové razítko má backtest použít?
Samostatně sledujte období, ke kterému se hodnota vztahuje, a čas její dostupnosti. Pokud možno uchovávejte také čas zveřejnění a čas přijetí do systému. Strategie mohla hodnotu použít až poté, co byla zveřejněna a systém ji přijal; pokud se tyto časy liší, použijte pro konzervativní rekonstrukci ten pozdější.
| Časové razítko | Co popisuje | K čemu slouží |
|---|---|---|
| Čas platnosti | Období nebo událost, ke které se hodnota vztahuje | Umožňuje seskupit pozorování podle měřené veličiny |
| Čas zveřejnění | Kdy zdroj zveřejnil tuto verzi | Zabrání zobrazení údaje dříve, než existoval |
| Čas přijetí | Kdy váš systém tuto verzi přijal | Zachycuje zpoždění při doručení a pozdější doplnění dat |
Představme si například, že čtvrtletní tržby firmy pokrývají období od ledna do března, jsou vykázány 8. května v 16:15 východoamerického času a do vašeho výzkumného úložiště dorazí v 16:17. Strategie, která rozhoduje při zavření trhu 8. května, tuto zprávu nemůže použít, pokud k rozhodnutí došlo v 16:00. Strategie, která rozhoduje následující ráno, ji použít může. Samotné datum konce čtvrtletí neodpoví ani na jednu otázku.
Jak ověřím, zda výsledek nezpůsobují revize?
Spusťte stejnou strategii dvakrát: jednou s verzí dat dostupnou v každém historickém okamžiku rozhodnutí a podruhé s nejnovější revidovanou historií. Ponechte stejné předpoklady provedení, investiční univerzum i kód. Rozdíl je výsledkem analýzy citlivosti na revize, nikoli porovnáním nové strategie.
Pak zjistěte, odkud rozdíl pochází. Mění se výkonnost ve dnech zveřejnění? Soustřeďují se největší rozdíly u několika firem, které znovu vykázaly výsledky, nebo u opravených pozorování? Obchoduje strategie před příslušným zveřejněním? Audit několika jednotlivých událostí často vysvětlí víc než další graf kumulativních výnosů.
Tato čísla jsou pouze ilustrativní, nejde o univerzální postih. Užitečným výstupem je párové srovnání výsledků vaší vlastní strategie, pokud možno se stejnými obchody a náklady. Pokud revidovaná verze výrazně překonává původní, zjistěte, která pole a data rozdíl způsobují, než začnete věřit hlavnímu výsledku backtestu.
Co má audit dat k určitému okamžiku zaznamenávat?
Začněte poli, která vaše strategie skutečně používá. U každého určete zdroj, význam časového razítka, zásady revizí a to, zda lze získat předchozí verze. Zeptejte se dodavatele, jak zaznamenává opravy: přepisem řádků, přidáním řádků s novými verzemi, nebo v samostatném protokolu auditu. Označení „historická data“ na stránce produktu tuto otázku neřeší.
- Každou verzi ukládejte s časem zveřejnění nebo prvního zpřístupnění.
- Při spojování příznaků s rozhodnutími použijte čas dostupnosti, ne označení období.
- Pro reprodukovatelné běhy uchovávejte neměnný snímek nebo verzi zdroje.
- Označte hodnoty, které dorazily pozdě, byly revidovány nebo nemají spolehlivou historii.
Rozsah auditu přizpůsobte praxi. Pokud vaše strategie používá pouze obchody a svíčky z burzy, mohou být revize ekonomických dat nepodstatné. Opravy svíček a dodatečné doplňování dat od dodavatele však mohou hrát roli, zejména když signál závisí na málo likvidním trhu nebo přesně vymezeném časovém okně události.
Když historie k určitému okamžiku není dostupná
Neberte potichu dnešní hodnotu jako včerejší. Označte dané pole jako omezení, vyřaďte ho z tvrzení závislých na historické dostupnosti nebo použijte konzervativní zpoždění a ukažte, jak moc se výsledek změní. Zpožděná náhradní hodnota může být pro výzkum užitečná, pokud zpoždění výslovně uvedete a omezení zůstane součástí výsledku.
Úkolem backtestu je zrekonstruovat rozhodnutí na základě informační sady, která v danou chvíli existovala. Pokud vaše data ukazují pouze nejnovější verzi, má poctivý výsledek své hranice: může strategii otestovat vůči dnešní rekonstruované historii, ale nemůže přesně doložit, co historický obchodník mohl vidět.
← Všechny články

