Jak překonat nejistý backtest?
Hodně začínajících obchodníků naráží na tvrdou realitu. I precizně otestované systémy vykazují po živém nasazení často dost odlišné parametry, než nám vyšly v backtestu. Můžeme například chytnout hned několik ztrát, které jsou výrazně větší, než průměrná ztráta vycházejí v backtestu. Jak podobné informace interpretovat – jde jen o smůlu, nebo byl systém špatně postavený a nefunguje?
Pro úspěch v obchodování je potřeba přijmout fakt, že historické backtesty jsou skutečně pouze orientační. Mohou nám pomoci potvrdit, že obchodovaná metoda pracuje s dostatečně robustní výhodou a existuje vysoká šance, že s ní vyděláme i do budoucna. Je ale třeba chápat, že mnoho detailů backtestu bylo ovlivněno konkrétními událostmi v minulosti, které se prostě nebudou opakovat.
Proto je velmi naivní snažit se například hledat takové parametry systému, které v minulosti produkují krásně rostoucí equity křivky. Výsledkem podobné snahy jsou jen přeoptimalizované systémy, které v budoucnosti mají jen malou šanci uspět.
Když stavím obchodní systém, tak vesměs nesleduji jediný možný průběh historie, ale snažím se do strategie zanášet různé „náhody“ a sledovat, do jaké míry budou výsledky stále obchodovatelné. Základem mého zkoumání je tvz. Monte carlo simulace, kdy systém promíchá historické obchody, občas nějaký vynechá a jiný duplikuje a já mohu vyhodnocovat, s jakou pravděpodobností mohu očekávat různý drawdown a výdělek.
Podobnou simulaci používám i v jiných situacích.
Například při vývoji intradenního systému Finwin 2021, který jsem krok za krokem vyvíjel prostřednictvím Youtube videí a dnes ho otevřeně obchoduji včetně publikování obchodů v reálném čase na Twitteru (podrobnosti popisuji na finwin.cz).
Finwin ve zkratce funguje následovně (podrobně je obchodní plán popsán v tomto videu ).
- Každý den je připraveno až 50 signálů pro long a 50 signálů pro shortování akcií obchodovaných v indexu Russell 3000. Jde o signály v akciích, které předchozí den vytvořily výrazný pohyb a systém je připraven jít proti tomuto pohybu (jde o mean reversion strategii).
- Po otevření burzy je systém připraven zobchodovat maximálně 5 long a 5 short pozic. Příkazy jsou zadány do vzdálenosti násobku běžného ATR od otevírací ceny.
- Systém zobchoduje ty trhy, které k limitnímu příkazu dorazí nejdříve. Otevírá se tím vyšší šance využití kapitálu a potenciálně vyššího profitu.
Systém jsem testoval na velké historii dat (podrobně backtest popisuji ve zmíněném videu). Nicméně pro testy jsem použil pouze denní data. Na nich ovšem nemohu ověřit, které trhy dorazily ke vstupní ceně první, přičemž ale konkrétní pořadí plnění obchodný každý konkrétní den ovlivňuje výsledné hodnoty backtestu.
Rádi byste i v aktuálním kontextu obchodovali stabilně a bez emocí?
Určitě si přečtěte novou knihu Od myšlenky k reálným obchodům
Implementujte již od samotného začátku své praxe důležité systematické procesy a správné myšlení, které výrazně zvyšuje šance na stabilně profitabilní obchodování.
Inspirujte se, jak trading dělat jinak a lépe.
Samozřejmě bych mohl investovat pár tisíc dolarů do tickových dat, udělat mnohem komplikovanější backtest a přesně v historii nasimulovat, jak by plnění vypadalo. Ale i když odhlédnu od časových a finančních nároků, zbývá zde otázka, jestli přesná historická posloupnost otevíraných příkazů přináší nějakou zásadní hodnotu. Podle mě nikoliv.
Pro ověření funkčnosti backtestu jsem raději použil svůj tradiční přístup v podobě pravděpodobnostních modelů.
Postavím systém tak, aby obchodoval daný den trhy ve zcela náhodném pořadí. Každý backtest tak bude trochu jiný. Odpověď na mé otázky mi ale poskytuje pohled na výsledky jako celek. Řekněme, že vytvořím 500 backtestů Finwinu, kde denní pořadí exekucí je náhodné. V tom případě mě zajímá, kolik backtestů bylo ztrátových, kolik ziskových atd.
Zde je ukázka, jak konkrétně vypadá výstup podobné simulace, kde jsem provedl 500 backtestů systému od roku 2015 do současnosti:
Na horizontální ose je číslo testu, na vertikální průměrné roční zhodnocení. To se pochopitelně liší, podstatné ale je, že žádný test neskončil ve ztrátě a i ty nejhorší testy měly roční zhodnocení nad 25 %.
Podobné simulace mně osobně pomáhají nejistotu z backtestu překonat. Vnímám, že i když do procesu vnesu hodně prvku náhody, systém stále vydělával. A takové systémy se nebojím nasadit naživo. Stejně, jako jsem to udělal s Finwinem přímo před zraky tisíců z vás. A takto se zatím výkonnost sytému vyvíjí po cca 1,5 měsíci obchodování a první stovce uskutečněných obchodů:
Equity křivka představuje výsledky živých obchodů po odečtení komisí od 28.1.2021, kdy byl zobchodován první obchod. Všechny živé obchody jsou (v tuto chvíli) v reálném čase publikovány na finwin.cz a průběžně je komentuji v Youtube videích, kde jsou zobrazeny i v brokerské platformě. Obchodní plán v otevřené podobě diskutuji v tomto videu).
Téma dnešního článku jsem zpracoval i do videa, které je pro vás připravené zde:
https://www.youtube.com/watch?v=GIlooGsGTtk&ab_channel=PetrPodhajský-trader
Úspěšné obchody všem!
Petr Podhajský
Fulltime obchodník věnující se tradingu více než 20 let. Specializace na systematické strategie obchodované na futures a akciích. Oblíbený styl obchodování: stavba automatizovaných portfolio systémů, které využívá i při správě většího externího kapitálu.