Řádek tržních dat může být naprosto přesný, a přesto nemusí být použitelným podkladem pro backtest. K obchodu došlo, cena sedí a časové razítko je platné, ale datový tok ho mohl doručit se zpožděním, dodavatel ho mohl později opravit nebo uvedený trh nemusel být vaší strategii dostupný.
Chcete-li zjistit, zda se s historickými daty dalo obchodovat, prověřte víc než jen čas události. Potřebujete vědět, co řádek popisuje, kdy se stal dostupným systému, jaký trh nebo instrument představuje a zda kotace či obchod mohly reálně posloužit jako podklad pro váš příkaz.
Stačí pro backtest správná historická cena?
Ne. Přesnost odpovídá na otázku „Jakou cenu zdroj nakonec zaznamenal?“ Backtest musí odpovědět také na otázky „Co mohla moje strategie vědět v okamžiku rozhodnutí?“ a „Co mohla provést?“ Jde o dvě odlišné věci.
Představte si, že se kryptoměnový obchod uskuteční ve 12:00:00.120, ale datový stream vašeho dodavatele ho doručí vašemu procesu až ve 12:00:00.480. Strategie, která se rozhoduje v .200, tento obchod použít nemůže, přestože jeho čas události předchází rozhodnutí. Pokud se v historickém souboru uchovává jen čas události, backtest může strategii nenápadně přisoudit informace, které její živý proces ještě nedostal.
| Čas nebo údaj | Co vám říká | Co se v backtestu pokazí, pokud chybí |
|---|---|---|
| Čas události | Kdy podle burzy událost nastala | Záměna času na trhu za dostupnost pro strategii |
| Čas přijetí | Kdy zprávu přijal váš sběrač dat | Použití zpožděných dat, jako by dorazila okamžitě |
| Pořadové číslo nebo ID aktualizace | Kam událost patří v pořadí datového toku | Zpracování aktualizací ve špatném pořadí nebo jejich tiché vynechání |
| Čas opravy | Kdy se stala známou opravená historická hodnota | Backtestování s hodnotou, která v původním datovém toku nebyla |
Pokud váš archiv neobsahuje časy přijetí, přiznejte tuto mezeru. Můžete otestovat předpokládanou latenci nebo omezit závěr na výzkum založený na časech událostí. Přesnou množinu dostupných informací nelze zpětně sestavit z časových razítek, která se nikdy neukládala.
Jak poznám, zda bylo možné kotaci realizovat?
Začněte trhem, na který by váš příkaz skutečně dorazil. Konsolidovaná nejlepší nákupní a prodejní kotace může shrnovat několik trhů. Nedokazuje však, že váš účet měl přístup k zobrazenému objemu, že kotace platila ještě v okamžiku doručení příkazu ani že by trh přijal typ vašeho příkazu.
U tržního příkazu je plnění za středovou cenu obvykle fikce. Užitečnější odhad postupuje viditelnou knihou podle objemu příkazu a pak připočítá poplatky a předpoklad latence nebo cenového dopadu. Pokud máte jen data nejlepší nabídky a poptávky, omezte své závěry: první úroveň odhadnout můžete, hloubku, která se nikdy nezaznamenala, ale odvodit nelze.
U limitního příkazu dotyk ceny neznamená, že došlo k plnění. Dostupné množství mohou nejdřív spotřebovat příkazy před vámi. Pořadí ve frontě většinou z běžných snímků knihy nepoznáte, takže pravidlo, které předpokládá plnění při dotyku ceny, berte jako optimistický scénář, nikoli jako důkaz toho, co se skutečně stalo.
Jednominutová svíčka vám může říct, že minimum překročilo vaši limitní cenu. Neřekne vám, zda váš čekající příkaz dorazil na trh před dosažením minima, jaký objem se tam zobchodoval ani kolik příkazů ve frontě bylo před vámi.
Co mám zkontrolovat, než začnu archivu tržních dat důvěřovat?
Nejdřív kontroluji obyčejné věci. Odhalí víc chybných výzkumů než sofistikovaný model exekuce připojený k porouchanému datovému toku.
- Pokrytí: Chybí některé intervaly nebo události, jsou v datech duplicity či mezery v pořadových číslech, případně nevysvětlené úseky s nulovým objemem?
- Identita trhu: Odpovídá symbol v čase stále stejné burze, kontraktu, kotovací měně a specifikaci instrumentu?
- Dostupnost: Jsou uchované časy událostí i přijetí? Pokud ne, jaký předpoklad zpoždění ohraničuje výsledek?
- Opravy: Dokážete odlišit původní zprávu od pozdějšího doplnění dat či opravy dodavatelem?
- Jednotky: Jsou ceny, množství, násobitele kontraktů a časová razítka interpretovány jednotně?
Poslední kontrola zní skoro až příliš jednoduše. Jednou jsem celé dopoledne pátral po zdánlivé změně režimu volatility. Nakonec se ukázalo, že se po migraci datového toku změnily jednotky pole s množstvím. Graf vypadal skvěle, jen jednotka byla špatně.
Jak otestuji, zda dostupnost dat mění výsledek?
Proveďte menší test citlivosti v okolí hranice, na níž strategie rozhoduje. Posuňte použitelná data o realistická zpoždění, vyřaďte aktualizace s narušenou návazností pořadových čísel a tam, kde máte data, porovnejte plnění podle knihy skutečného trhu. Uveďte původní i zhoršený výsledek. Pokud efekt smaže i nepatrné zpoždění, strategie může záviset na informační výhodě, kterou vaše sběrná infrastruktura nedokáže spolehlivě zajistit.
Konkrétní příklad: signál se aktivuje, když nejlepší nákupní cena vzroste o jeden tick. Zpětně ho přehrajte jednou s časem události z burzy a podruhé s časem přijetí u sběrače dat. Pokud přehrání podle času události provede 40 obchodů a přehrání podle času přijetí 27, patří tento rozdíl k důkazům o strategii. Stejně tak její výkonnost při každém přehrání. Slabší přehrání nezamlčujte jen proto, že jeho data vypadají méně úhledně.
Paper trading je užitečný další krok, protože odhalí zpoždění datového toku, zastaralé kotace, chyby v mapování symbolů i omezení daná trhem — v téže provozní cestě, kterou používá váš výzkumný systém. Přesto neobnoví každou situaci ve skutečné frontě ani veškerý cenový dopad. Tuto hranici mějte na paměti.
Co v praxi znamenají „obchodovatelná data“?
Backtest musí umět vysvětlit, kdy pozorování nastalo, kdy ho strategie mohla zpracovat, z jakého trhu pocházelo a o jaké důkazy o exekuci se opírá předpokládané plnění. Čistá cenová řada je výchozí bod. Výzkum získává důvěryhodnost, když obstojí při prověření jeho časování, přístupu k trhu a předpokladů o plnění — a když výsledek dává smysl i po jejich zpřísnění.
← Všechny články


