24. srpna 2026 · výzkum

Proč backtest obchoduje častěji než moje paper strategie?

Proč backtest obchoduje častěji než moje paper strategie?

Backtest často počítá obchody, jako by se signál přímo změnil v pozici. Paper trading mezi ně vkládá příkaz. Ten může čekat v knize, být částečně vyplněn, zrušen nebo zamítnut, případně zůstat aktivní i poté, co se signál změnil. Pokud simulovaná strategie tento životní cyklus přeskočí, počet obchodů a expozice mohou mít s tím, co zaznamená účet pro paper trading, jen málo společného.

Praktickým řešením je vést příkazy jako trvalé objekty se stavy a časovými značkami. Signál je pokyn, abychom se pokusili obchodovat; není důkazem, že k obchodu došlo.

Proč má moje paper strategie méně obchodů než backtest?

Začněme příkazy, které se nikdy nevyplnily. Backtest může předpokládat, že se každý limitní příkaz vyplnil, kdykoli se trh dotkl jeho ceny. Na živém trhu samotný dotyk neříká, zda měl váš příkaz ve frontě přednost, zda se zobchodoval dostatečný objem ani zda byla kotace ještě dostupná, když příkaz dorazil na burzu.

Představme si strategii, která zadá nákupní limitní příkaz na $100 a po 30 sekundách ho zruší. Trh zaznamená cenu $100.00, ale zobchoduje se tam jen malý objem a přednost mají jiné příkazy. Váš příkaz se může vyplnit jen zčásti, nebo vůbec. Backtest založený na dotyku ceny zaznamená plnou pozici. Účet pro paper trading, který zohledňuje předpoklady o frontě, nemusí zaznamenat žádné plnění.

U tržních příkazů vzniká jiný nesoulad. Backtest může vyplnit celé množství za otevírací cenu další svíčky, zatímco paper trading zamítne množství, které porušuje limit burzy, nebo ho vyplní po částech, jak se mění kniha objednávek. Svíčka shrnuje obchody; nezaručuje, že bylo možné celý váš příkaz zobchodovat za jednu cenu.

Co má backtest udělat, když se signál změní dřív, než se příkaz vyplní?

Ponechte starý příkaz aktivní, dokud simulátor neobdrží a nezpracuje jeho zrušení. Pokud se signál změní, zatímco nákupní příkaz čeká v knize, strategie ho může chtít zrušit a zadat prodejní příkaz. Tento záměr ale nákupní příkaz okamžitě neodstraní. Může se vyplnit, zatímco se zrušení zpracovává, a účet tak zůstane v dlouhé pozici právě ve chvíli, kdy nový signál říká otevřít krátkou pozici.

Modelujte to jako posloupnost událostí: signál se změní, strategie odešle požadavek na zrušení, burza ho potvrdí nebo oznámí plnění a teprve potom strategie zná konečný stav příkazu. I jednoduché pevné zpoždění může odhalit souběhy, které backtest s okamžitým zrušením skryje.

Pro záměrně jednoduchý model může být jednasekundové zpoždění při rušení a zpracování při další události poučnější než předstírat, že ke zrušení dochází okamžitě. Vhodné zpoždění závisí na burze a systému; důležité je vůbec nějaké zpoždění zachytit. Pokud je váš příkaz tržní a nemá časové okno pro zrušení, stejný problém se stále týká částečných plnění a opožděných hlášení.

Které stavy příkazů má simulátor paper tradingu zaznamenávat?

Použijte jednoduchý stavový automat a každou změnu stavu zaznamenejte s časem. Přesná terminologie se na jednotlivých burzách liší, základní rozlišení je ale stejné:

Vyplněné množství zaznamenávejte odděleně od požadovaného množství spolu s cenami plnění a poplatky. Částečně vyplněný příkaz je zároveň obchodem i stále trvajícím závazkem ohledně zbývajícího množství. Pokud ho budete považovat jen za otevřený, nebo jen za dokončený, ztratíte informace, které strategie potřebuje pro určení velikosti dalšího kroku.

Událost příkazuCo by strategie měla vědětBěžná zkratka v backtestu
Částečné plněníProvedené množství, zbývající množství, průměrná cenaOznačit celý příkaz za vyplněný za jednu cenu
Požadavek na zrušeníČas požadavku a následné potvrzení zrušení nebo plněníOkamžitě příkaz odstranit
ZamítnutíDůvod a informace, zda je platný opakovaný pokusPředpokládat, že se požadovaný obchod uskutečnil
ExpiraceČas, kdy příkaz přestal být způsobilý k vyplněníPonechat ho otevřený až do pozdějšího dotyku ceny

Jak férově porovnat obchody z backtestu s paper tradingem?

Nejdřív porovnejte události příkazů, potom pozice a nakonec P&L. Pokud backtest vyplnil příkaz, který účet pro paper trading nikdy nevyplnil, pozdější rozdíl v P&L je důsledkem, nikoli místem, kde hledat příčinu problému.

U každého zamýšleného příkazu spárujte oba běhy podle stabilního identifikátoru rozhodnutí strategie nebo příkazu. Pak zkontrolujte čas odeslání, požadovanou cenu a množství, dobu platnosti, plnění, zrušení, zamítnutí, poplatky a konečnou pozici. Zaznamenejte také důvod simulovaného neplnění: cena nikdy nedosáhla limitu, předpokládaná fronta před příkazem se nevyčerpala nebo příkaz expiroval.

Posloupnost dobře ukáže jednoduchý příklad. Signál požaduje 10 jednotek. Oba systémy odešlou příkaz v 10:00:00. Backtest předpokládá úplné plnění v 10:00:01. Paper trading vyplní 4 jednotky v 10:00:01, v 10:00:02 přijme požadavek na zrušení a před potvrzením zrušení v 10:00:03 nahlásí další plnění 2 jednotek. Férové srovnání je 6 vyplněných jednotek oproti 10, přičemž 4 byly zrušeny. Když obě situace zprůměrujeme do jednoho „obchodu“, skryjeme expozici, kterou strategie skutečně nesla.

Potřebuji k tomu kompletní simulátor burzy?

Ne. Backtest může začít s několika výslovnými předpoklady: zda stačí dotyk limitní ceny, jaký objem se musí zobchodovat přes cenu, aby se vyčerpala předpokládaná fronta před vaším příkazem, jak dlouho zůstávají příkazy otevřené a jak funguje zpoždění při rušení. Spusťte strategii s několika věrohodnými nastaveními. Pokud její výkonnost závisí na tom, že se každý limitní příkaz čekající v knize vyplní celý, dozvěděli jste se o modelu něco užitečného.

Ani paper trading není zlatý standard pro kvalitu exekuce. Může používat simulovaná plnění a nezohledňovat skutečnou frontu. Jeho přínos je v tomto případě užší: ukáže, zda se strategie a její správce příkazů shodují v tom, jak při průběžném příchodu událostí evidují čekající množství, zrušení, pozici a opakované pokusy.

Jedna drobná radost této práce: kvalitní protokol příkazů může z jinak matoucího nesouladu udělat nudnou záležitost. „Druhý dílčí příkaz se vyplnil po odeslání požadavku na zrušení“ je lepší než „paper trading se chová divně“. Když se backtest a účet pro paper trading neshodují, projděte nejdřív životní cyklus příkazu a teprve potom upravujte signál.

paper tradingspráva příkazůbacktestingexekucevýzkum strategií
← Všechny články