Backtesting je historická simulace obchodních nebo rozhodovacích pravidel s výslovně určenými daty, časovým pořadím a předpoklady provedení. Umožňuje kontrolovat chování pravidla v minulém vzorku, ale jeho vypovídací hodnota závisí na návrhu celého testu.
Backtesting přehrává pravidla nad historickými daty a počítá, jaký výsledek by měla za zvolených předpokladů. Bailey a spoluautoři ho popisují jako historickou simulaci algoritmické strategie a zároveň upozorňují na riziko falešných objevů. Vlastní redakční hranice: výsledek patří konkrétní verzi pravidel, dat a modelu provedení. Není dokladem, že někdo tyto obchody skutečně uskutečnil. Reprodukovatelný výpočet může odhalit chybu nebo nevhodný nápad, ale sám nepřevádí minulost na spolehlivou předpověď. [1]
QuantConnect popisuje zkreslení, při němž simulace používá budoucí informace, například účetní údaje ještě před zveřejněním nebo jejich pozdější opravy. Náš vlastní časový kontrakt vyžaduje u každého vstupu okamžik dostupnosti, ne pouze datum období, ke kterému patří. Signál ze zavřené svíčky nesmí bez dalšího předpokladu získat obchod za cenu, kterou už nebylo možné využít. V našem příkladu se předchozí uzavírací ceny používají až pro následující období a model výslovně určuje jeho otevírací plnění. [2]
QuantConnect upozorňuje na testování pouze těch cenných papírů, které přežily do konce období, a na zpětné použití dnešního složení indexu. Vlastní obecnější otázka zní, zda historický soubor zachovává i tehdy dostupné nástroje, které později zmizely. Je třeba zdokumentovat chybějící data, změny metodiky a výběr trhů. Pro bitcoinovou simulaci nelze automaticky pokládat cenu z jediné služby za dosažitelnou cenu na jiné službě. Datová čistota znamená dohledatelnost oprav, nikoli odstranění nepohodlných výsledků. [2]
Dokumentace QuantConnect odděluje signál a pokyn od modelu, který určuje cenu a množství plnění. Upozorňuje i na rozdíl mezi částečným plněním v reálném obchodování a předpokladem úplného plnění v předpřipravených modelech. Vlastní požadavek je popsat, kdy se pokyn smí provést, co se stane při nedostatečné likviditě a jak se zachází s neaktuální cenou. Dotyk cenové úrovně v historických datech sám nedokazuje dostupnou protistranu pro libovolně velký pokyn. Výsledek modelu plnění zůstává předpokladem simulace. [3]
QuantConnect popisuje Slippage jako rozdíl očekávané a skutečné ceny plnění a uvádí vliv zpoždění, spojení a tržních podmínek; odchylka může být příznivá i nepříznivá. Vlastní kontrola nákladů odděluje poplatky, cenu plnění a případné další náklady držení nebo financování. Náklad již zahrnutý do plnicí ceny se nesmí odečíst znovu. Nulová hodnota je konkrétní modelový předpoklad, nikoli důkaz beznákladového trhu. Citlivost na horší náklady pomáhá určit, zda malý historický zisk závisí na optimistickém nastavení. [4]
Dokumentace TimeSeriesSplit vysvětluje časově uspořádané dělení, aby se model netrénoval na budoucnosti a nehodnotil na minulosti. Vlastní metodický požadavek je určit období pro návrh pravidel a období pro jejich následné ověření ještě před pohledem na výsledky. Pokud se po neúspěchu pravidla podle ověřovacího období znovu upraví, toto období už ovlivnilo vývoj. Chronologické rozdělení samo neřeší únik informací z předzpracování, překrývajících se cílů ani opakovaný výběr variant. Postup i hranice dat je nutné popsat. [5]
Bailey a spoluautoři ukazují, že opakované hledání nejlepší konfigurace nad stejnými daty zvyšuje riziko falešných objevů a přizpůsobení minulému šumu. Vlastní pravidlo pro report je uvést historii pokusů, nejen vítěznou křivku. To zahrnuje změny parametrů, období i výběru nástrojů. Výsledek vybraný po mnoha zkouškách nemá stejnou vypovídací hodnotu jako předem stanovené nezměněné pravidlo. Jejich metoda odhadu pravděpodobnosti přeučení není v našem jednoduchém příkladu prováděna ani nahrazena jediným rozdělením dat. [1]
NFA upozorňuje, že hypotetické výsledky nezachycují skutečné obchodování, mohou využívat zpětný pohled a nedokonale modelovat likviditu, skluz či chování při reálné ztrátě. Vlastní report má proto uchovat verzi dat a kódu, pravidla, předpoklady plnění, zahrnuté náklady a úplný seznam simulovaných obchodů. Celkový výnos potřebuje kontext rizika a srovnání za shodných podmínek; vybraný pěkný graf nestačí. Ani bezchybná implementace historického testu nezaručuje proveditelnost nebo výnos v budoucím trhu. [6]
Signál z minulého období, plnění v následujícím
Pro nejúplnější obraz čtěte toto heslo společně s Trading Plan, Trading Journal, Slippage, Overfitting, Walk-forward Analysis. Opačným směrem na něj odkazují také Technical analysis, OHLCV, Timeframe, Candlestick chart.
01Dokazuje ziskový backtest, že strategie bude vydělávat?+
Ne. Výsledek může záviset na konkrétních datech, nákladech, modelu plnění nebo výběru nejlepší varianty. Je třeba ověřit časovou správnost, předpoklady a postup výběru; ani potom nejde o záruku budoucího výnosu.
02Stačí odečíst poplatky až od konečného zisku?+
Jen pokud tento způsob přesně odpovídá modelu a neovlivňuje dostupný kapitál ani další rozhodnutí. Obvykle je potřeba účtovat náklady při příslušných událostech, rozlišit plnicí cenu a poplatky a zabránit dvojímu odečtení.