8. října 2026 · výzkum

Proč se můj limitní příkaz v backtestu vyplní, když trh jeho ceny nikdy nedosáhl?

Proč se můj limitní příkaz v backtestu vyplní, když trh jeho ceny nikdy nedosáhl?

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 vyvoditCo to nedokazuje
Minimum svíčky zůstalo nad nákupním limitemBě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 limituCena 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í limitObchody 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říkazuTrh 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.

limitní příkazybacktestingmikrostruktura trhumodely plněníexekuce
← Všechny články