Backtest může vyplnit váš limitní příkaz, i když žádná obchodovatelná příležitost neexistovala. Pokud minimum svíčky kleslo pod váš nákupní limit, mnoho enginů započítá plnění. Minimum ale pouze říká, že alespoň jeden zaznamenaný obchod proběhl za tuto cenu nebo níže. Neříká nic o zobchodovaném objemu, příkazech zařazených ve frontě před vámi ani o tom, zda byl váš příkaz včas aktivní.
Na tomto rozdílu záleží především tehdy, když edge strategie závisí na častém pasivním plnění. Model, který každý dotyk ceny považuje za úplné plnění, může z trpělivého vstupu udělat imaginární zdroj alfa výnosu.
Znamená dotyk limitní ceny na svíčce, že se můj příkaz vyplnil?
Ne. Znamená to, že zaznamenané cenové rozpětí svíčky zahrnovalo vaši limitní cenu. Zda se váš příkaz mohl vyplnit, závisí na knize objednávek, toku obchodů, vaší pozici ve frontě a na tom, kdy příkaz dorazil.
Představte si nákupní limit 100,00 $. Svíčka se otevře na 100,20 $, klesne na minimum 99,98 $ a zavře na 100,10 $. Obchod se mohl uskutečnit o 2 centy pod vaší cenou, ale pokud na ceně 100,00 $ byla před vámi dlouhá fronta a zobchodovalo se tam jen malé množství, váš příkaz mohl zůstat nevyplněný. Samotné OHLCV tuto frontu neukazuje.
Je tu ještě jeden háček: svíčka slučuje události v čase. Pokud signál počítáte ze závěrečné ceny svíčky, nemůžete předpokládat, že váš příkaz čekal v knize už dříve během svíčky, když nastalo její minimum. Svíčka stlačí časovou posloupnost, která by na tuto otázku odpověděla.
Co mi data OHLCV skutečně prozradí o plnění limitního příkazu?
OHLCV mohou některá plnění vyloučit a jiná učinit pravděpodobnými. Nemohou určit pořadí ve frontě ani zaručit objem dostupný pro váš příkaz.
| Pozorování | Co z toho lze vyvodit | Co to nedokazuje |
|---|---|---|
| Minimum svíčky zůstalo nad nákupním limitem | Během této svíčky žádný zaznamenaný obchod nedosáhl této ceny | Že by se příkaz vyplnil |
| Minimum svíčky se dotklo nákupního limitu | Cena byla zaznamenána na úrovni limitu | Že se po doručení vašeho příkazu zobchodoval jakýkoli objem |
| Minimum svíčky kleslo pod nákupní limit | Obchody proběhly za tuto cenu nebo níže | Že se zobchodoval dostatečný objem, aby se dostalo na vaši pozici ve frontě |
| Celkový objem svíčky převýšil velikost vašeho příkazu | Trh v průběhu svíčky zobchodoval alespoň takový objem | Že se tento objem zobchodoval za vaši cenu a po doručení příkazu |
Engine založený na svíčkách tedy potřebuje předpoklad o plnění. Berte ho jako model se známým slepým místem, ne jako fakt vyčtený ze svíčky.
Jak mám v backtestu modelovat plnění limitních příkazů?
Začněte načasováním příkazu. Určete, kdy je signál k dispozici, kdy příkaz dorazí na burzu a které následné události na trhu s ním mohou interagovat. Pokud je signál známý až při uzavření svíčky, konzervativním pravidlem pro backtest založený na svíčkách je umožnit plnění nejdříve od následující svíčky.
Pak oddělte cenové podmínky pro plnění od jeho objemu. To, že je limitní příkaz způsobilý k zobchodování, neznamená, že se vyplní celý. Pokud máte záznamy obchodů, ale žádnou historii knihy objednávek, můžete požadovat, aby objem zobchodovaný na limitní ceně nebo výhodněji překročil násobek velikosti vašeho příkazu. Tento násobek je hrubá rezerva pro frontu, nikoli univerzální konstanta. Vyzkoušejte několik hodnot a uveďte, jak se mění výsledek.
Předpokládejme například, že strategie zadá nákupní limit 2 BTC a po aktivaci příkazu se na zvolené ceně zobchodují 3 BTC. Model vyžadující 5 BTC způsobilého objemu by příkaz nechal nevyplněný; model s násobkem objemu 1.0 by ho vyplnil. Ani jeden výsledek neobnovuje skutečné pořadí ve frontě. Porovnání ukazuje, nakolik strategie závisí na předpokladu, který nemůžete pozorovat.
Nechte nevyplněné příkazy v simulaci. Rušte je tehdy, kdy by je zrušila strategie, a počítejte s tím, že zmeškaný obchod zůstane zmeškaný. Pokud strategii přiznáte plnění pokaždé, když se limitu dotkne cena, a zároveň ignorujete příkazy, které vyprší nevyplněné, zkreslíte exekuci i počet příležitostí.
Kdy potřebuji data z knihy objednávek?
Použijte aktualizace knihy objednávek a záznamy obchodů, pokud jsou pro strategii klíčové pozice ve frontě nebo částečná plnění: například u market makingu, krátkodobých pasivních kotací nebo vstupů závislých na tom, zda se dostanete na začátek zaplněné cenové úrovně. Ani historická veřejná data nemusí odhalit vaši přesnou pozici ve frontě. Musíte modelovat doručení příkazu, rušení příkazů před vámi, pravidla párování i vlastní dopad na trh.
U pomalejších strategií mohou podrobné knihy přidat složitost, aniž by vyřešily hlavní nejistotu. Užitečná studie založená na svíčkách může stále porovnat horní mez s plněním při pouhém dotyku ceny s přísnějšími scénáři podmíněnými objemem. Pokud zdánlivý edge zmizí, jakmile vyžadujete věrohodné plnění, je to cenná informace pro výzkum.
Jak poznám, zda můj výsledek závisí na příliš optimistickém plnění?
Spusťte stejnou strategii s několika výslovně definovanými pravidly plnění a porovnejte víc než jen konečný výnos. Sledujte počet vyplněných příkazů, podíl částečných plnění, dobu čekání v knize, zrušené množství, zmeškané pohyby po nevyplnění a obrat. Strategie si může zachovat hlavní výnos, přestože spoléhá na výrazně méně, zato příhodnějších obchodů.
Další užitečnou kontrolou je paper trading: odešlete skutečnou logiku příkazů a zaznamenávejte potvrzení, plnění a zrušení. Plnění v paper tradingu stále závisí na pravidlech burzy nebo simulátoru, ale ověří načasování a správu příkazů, které svíčka neukáže.
Dotyk limitní ceny je důkazem o ceně. Plnění je tvrzení o exekuci. Váš backtest by měl zviditelnit rozdíl mezi těmito tvrzeními.
← Všechny články


