597 / 736BT

Backtesting

Zpětné testování strategie

Backtesting simuluje předem popsaná pravidla nad historickými daty. Výsledek závisí na časové dostupnosti informací, výběru dat, modelu plnění a nákladech. Historický zisk není skutečně provedený obchod ani záruka budoucího výnosu.

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]

PříkladPŘÍKLAD · BT

Signál z minulého období, plnění v následujícím

Vlastní smyšlený příklad používá čtyři stejně dlouhá období A, B, C a D. Počáteční hotovost je 1000 USD, žádná otevřená pozice, dluh ani vklady a výběry. Dvě uzavírací ceny před obdobím A jsou [100, 100] USD/BTC. Otevírací ceny období A až D jsou [101, 103, 102, 105] USD/BTC a uzavírací ceny [102, 101, 104, 103] USD/BTC. Předem stanovené pravidlo koupí 1 BTC na začátku období pouze tehdy, když poslední dokončená uzavírací cena převyšuje předchozí dokončenou uzavírací cenu; na konci téhož období vše prodá. Signály jsou proto [0, 1, 0, 1], kde 1 znamená obchod a 0 nečinnost. Model předpokládá úplné plnění přesně za uvedené otevírací a uzavírací ceny, nulový spread a Slippage, bez jiných nákladů kromě poplatku 0.1 USD za každý nákup nebo prodej. V B se nakoupí za 103 USD a prodá za 101 USD, v D za 105 USD a 103 USD. Hrubé výsledky období jsou [0, -2, 0, -2] USD. Čtyři provedené strany obchodů stojí dohromady 0.4 USD a čisté výsledky jsou [0, -2.2, 0, -2.2] USD. Hrubý součet je -4 USD, čistý součet -4.4 USD a konečná hotovost 995.6 USD. Graf ukazuje čisté příspěvky jednotlivých období, nikoli zůstatek účtu nebo pravděpodobnost. Jde o ručně ověřitelnou simulaci časového pořadí a účtování, nikoli o skutečná tržní data, optimalizaci nebo důkaz budoucí výkonnosti.

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í.

DOC · 001Bailey et al. — The Probability of Backtest OverfittingPrimární zdroj DOC · 002QuantConnect — Research GuideDokumentace DOC · 003QuantConnect — Trade Fills: Key ConceptsDokumentace DOC · 004QuantConnect — Slippage: Key ConceptsDokumentace DOC · 005scikit-learn — TimeSeriesSplitDokumentace DOC · 006NFA — Use of Promotional Material Containing Hypothetical Performance ResultsDokumentace
Revidováno: Primární zdroje · Nejde o investiční doporučení