Strategie zadá limitní příkaz v 10:00. Její signál se změní v 10:03. Backtest příkaz potichu nahradí v 10:04 a v 10:05 pak zaznamená jeho plnění. Při paper tradingu může původní příkaz na burze stále čekat na provedení. Pokud se vyplní ve chvíli, kdy je aktivní i náhradní příkaz, má strategie 2 příkazy a 1 model pozice, který předstírá, že existoval jen jeden.
Otevřené příkazy potřebují vlastní stav a časovou osu. Backtest by měl vědět, kdy byl každý příkaz zadán, kdy ho lze zrušit, zda se požadavek na zrušení dostal na burzu a co se stane, když se plnění střetne s rušením. Tyto skutečnosti pravidelně smažou 3 zjednodušující postupy.
Chyba 1: Předpoklad, že nový signál okamžitě ruší příkaz
Mnoho backtestů při každé svíčce znovu vypočítá cílovou pozici a pak čekající příkaz přepíše podle toho, co požaduje nejnovější signál. Příkaz tak zmizí přesně ve chvíli, kdy si strategie rozmyslí svůj záměr. Na skutečných burzách to tak nefunguje. Požadavek na zrušení nějakou dobu trvá a příkaz se může provést dřív, než ho burza zpracuje.
Uvažujme nákupní limitní příkaz na 100 akcií za $50.00. V 10:03 signál zeslábne, a tak strategie odešle požadavek na zrušení. V 10:03:00.080 se vyplní 60 akcií; zrušení je potvrzeno v 10:03:00.110. Zbývajících 40 akcií se zruší, ale pozice nyní zahrnuje 60 akcií. Backtest po svíčkách, který příkaz v 10:03 smaže, může vykázat nulu. Pokud předpokládá okamžité zrušení, ale přesto později zaznamená plnění, vytvořil expozici v opačném směru, která nikdy neexistovala.
Sledujte průběh příkazu výslovně: zadán, potvrzen, částečně vyplněn, čeká na zrušení, zrušen nebo plně vyplněn. Zachovejte plnění, k nimž dojde před potvrzením zrušení. Při hrubé simulaci po svíčkách zvolte konzervativní pravidlo pořadí událostí a uveďte ho, pokud se obě události mohly vejít do jedné svíčky.
Chyba 2: Neomezená platnost čekajícího příkazu
Limitní příkaz odvozený ze signálu v 10:00 může zastarat, i když signál nemá výslovné pravidlo pro ukončení. Kniha objednávek se mění, volatilita kolísá a tržní hodnota instrumentu se může posouvat. Simulátor, který nechá příkaz aktivní až do vyplnění, ho však může vyplnit až o několik měsíců později a připsat to investiční tezi, která už dávno neplatí.
Nastavte pravidla platnosti příkazu podle strategie. Signál s horizontem 1 minuty může mít expiraci za 30 sekund; při denním rebalancování může příkaz zůstat aktivní až do konce obchodování. Jde o volby strategie, nikoli o univerzální výchozí nastavení. Pokud strategie přeceňuje každý příkaz při každé svíčce, modelujte posloupnost zrušení a náhrady místo toho, abyste příkaz zázračně přesunuli na novou cenu.
| Pravidlo pro příkaz | Obvyklé použití | Otázka pro backtest |
|---|---|---|
| Okamžitě, nebo zrušit | Využít dostupnou likviditu a pak skončit | Jaká část se mohla vyplnit při zadání? |
| Krátká expirace | Rychlý signál s krátkým oknem pro exekuci | Byl příkaz stále platný, když se cena vrátila? |
| Do konce obchodní seance | Pomalé rebalancování nebo záměr obchodovat v závěrečné aukci | Podporuje burza skutečně takovou dobu platnosti? |
Chyba 3: Každý dotyk ceny se počítá jako plnění
Pokud minimum svíčky dosáhne nákupního limitu, neznamená to, že se příkaz nutně vyplnil. Ve frontě před ním mohly být jiné příkazy, na dané ceně se mohlo zobchodovat jen malé množství nebo k obchodu mohlo dojít ještě před přijetím příkazu. Zastaralý model příkazů často kombinuje všechny 3 chyby: nechá příkaz aktivní příliš dlouho, předpokládá, že byl ve frontě první, a při pouhém dotyku ceny mu přizná plné plnění.
Alespoň zabraňte plnění před časem přijetí příkazu a omezte simulované množství věrohodným zobchodovaným objemem na limitní ceně. U strategií, kde záleží na pořadí ve frontě, použijte data o obchodech a knize objednávek nebo záměrně konzervativní model fronty. Plnění při dotyku ceny se může hodit pro hrubé předběžné posouzení, ale označte ho jako optimistický odhad a porovnejte ho s přísnějším předpokladem.
Jednoduchá kontrola: zaznamenávejte čas vytvoření každého příkazu, dobu jeho aktivity, požadavek na zrušení a jeho potvrzení, čas plnění, vyplněné množství a zbývající množství. Potom přehrajte několik obchodů kolem obratu signálu. Pokud nedokážete vysvětlit, proč byl každý příkaz při plnění stále aktivní, je třeba zapracovat na počtu plnění vykázaném backtestem.
Modelujte příkaz, který chcete ověřit v paper tradingu
Stav příkazu propojuje záměr strategie se skutečnou expozicí. Pozice by se měla měnit při plnění, nikoli podle cílových pozic ze signálů nebo požadavků na zrušení. Náhradní příkazy by měly zanechat dohledatelnou historii a částečná plnění by se měla přenášet do dalšího rozhodování. Backtest je tím složitější, ale srovnání s paper tradingem pak dává smysl: oba systémy se mohou v exekuci lišit z konkrétních a zjistitelných důvodů.
Pokud je model příkazů nejistý, zachovejte tuto nejistotu i ve výsledku. Vyzkoušejte příkazy s krátkou i dlouhou platností, měňte zpoždění při rušení a ukažte, jak moc výkonnost závisí na optimistických předpokladech o pořadí ve frontě. Strategie může být v pořádku. Její zdánlivá výhoda ale může být také výnosem z příkazu, který by skutečný systém zrušil už před několika hodinami.
← Všechny články


