Backtesting aneb testujeme obchodní strategie I
Jednou z úžasných předností komoditního obchodování je možnost papírového testování zvolených strategií - tedy "zkoušení" obchodování pouze na papíře bez jakéhokoliv rizika. Třebaže tzv. papertrading má řadu nevýhod (především nezohledňuje psychlogickou stránku obchodování, která jak víme tvoří nakonec podstatnou složku úspěšných obchodů), je pro obchodování nenahraditelný - každý obchodní systém by měla nejprve fungovat na papíře a teprve poté je možné uvažovat o jejím vyzkoušení v reálném obchodování. Nepřináší-li obchodní strategie přiměřené profity ani v období jejího papírového testování, zcela jistě se její výkonnost nezlepší při obchodování se skutečnými penězi.
Klasický "papertrading" probíhá většinou v "reálném čase" - obchodník si své obchody plánuje ve stejný čas, jako kdyby připravoval příkazy pro svého brokera. To je patrně největší slabina tohoto přístupu - je velmi časově náročný. Zejména při pozičním obchodování je třeba mnoho týdnů, někdy ale i měsíců k dostatečnému otestování zvolené strategie.
Naštěstí k testování obchodních strategií existuje alternativní přístup - jde o testování na historických datech, pro což se v angličtině používá výstižný pojem backtesting (volně přeloženo jako historické testování). Backtesting odbourává zásadní omezení papírového trénování - čas. Obchodník má všechna data již k dispozici a podle zvoleného přístupu může ve velmi krátkém okamžiku otestovat svoji obchodní strategii třeba na všech komoditních trzích dvacet let zpátky. Na Finančníkovi se budeme backtestingu věnovat hned v celé sérii článků. Backtesting lze totiž provádět řadou nástrojů. Z principu lze backtesting rozdělit na testování:
1) Ruční. Obchodník má k dispozici historická data a zkouší na nich "ručně" aplikovat stejná pravidla, jako kdyby šlo o obchodování v reálném čase.
2) Automatizované. Obchodník svoji obchodní strategii přemění ve vzorec, který se aplikuje na zvolená historická data. Vzorec často obsahuje i nákupní příkazy, stop-loss, výstupní příkazy a výsledkem automatické analýzy je často okamžité shrnutí dané strategie (obchodník získá informace typu největší ztráta, celkový profit/ztráta, počet obchodů atd.)
V tomto článku se budeme věnovat ručnímu historickému testování a automatizované si necháme na příště. Netřeba jistě zdůrazňovat, že automatické testování je sice výrazně časově efektivnější, ale také mnohem komplikovanější na přípravu, která již spadá více do roviny programování než obchodování.
Ale zpět k ručnímu historickému testování. To v zásadě probíhá stejným způsobem jako běžné papírové obchodování, ale s pomocí historických dat. Obchodník tak nemusí čekat "na další den" a během jednoho odpoledne může zkusit aplikovat své strategie hned na řadu kontraktních měsíců třeba i několika různých komodit.
Pro tento způsob historického testování lze použít libovolné grafy zobrazující historické cenové průběhy (odkazy na vybrané stránky s daty zdarma naleznete v článku Data a grafy zdarma). Nicméně klasické grafy zobrazené na internetu jsou pro pravidelnou práci dost těžkopádné. Jako ideální nástroj si proto dovolíme doporučit Gecko Track'n Trade Pro, který pro tento účel používáme již roky a upřímně neznáme jiný program, který by ve stejné kategorii dokázal při vysokém uživatelském komfortu poskytovat stejné funkce historického testování. Pokud máte dobré zkušenosti s jiným programem, dejte nám prosím vědět na e-mail info@financnik.cz - rádi jej také na těchto stránkách zrecenzujeme.
Backtesting a Track'n Trade Pro
Track'n Trade Pro se dodává již s 25letými historickými daty, které je možné zobrazovat v denním, týdenním či měsíčním časovém měřítku. Z hlediska uživatelského komfortu historického testování jsou podstatné funkce sdružené do palety Play Control.
Zde si uživatel může zvolit čtyři režimy zobrazování grafů důležité pro historický backtesting:
Lock Charts to Date. Tato funkce "uzamkne" zobrazení všech grafů k datu, ke kterému je zobrazen aktuální graf.
Play to End: Never. Funkce otevře již prohlédnuté grafy k datu, ke kterému byly uloženy a nové grafy nebudou zobrazeny s žádnými údaji.
Play to End: New Charts. Tato volba otevře již prohlédnuté grafy k datu, ke kterému byly uloženy a nově otevřené grafy zobrazí "celé" - k poslednímu datu, které má program k dispozici.
Play to End: All Charts. Všechny grafy budou zobrazeny k poslednímu datu, který má program k dispozici.
Jak vidíte na screenshotu, k ovládání grafů má uživatel k dispozici prvky podobné ovládání kazetového magnetofonu. S jejich pomocí lze grafy "krokovat" a tak simulovat průběh obchodování na historických datech.
Pokud si nastavíte program na volbu "Play to End: Never" máte k dispozici zajímavý nástroj pro zpětné testování trhů. Šipkou "vpřed" si můžete procházet libovolné trhy a testovat si své obchodní strategie. Samozřejmě, že k dispozici jsou všechny nástroje technické analýzy (klouzavé průměry, nejrůznější indikátory atd - základní popis Track'n Trade Pro naleznete v naší recenzi). Testování sice není tak rychlé jako v případě automatického backtestingu, ale na druhou stranu pomáhá "naslouchat" pocitům obchodníka.
Zajímavým doplňkem určeným pro historické testování a simulování v Track'n Trade Pro je Simulator Plug-In umožňující zadávat do trhu nákupní a prodejní příkazy.
Plugin umožňuje zadávat všechny běžné příkazy typu Market, Limit, Stop, MIT, MOO, MOC a příkazy mohou být zadávány jako denní či GTC (Good Till Canceled - dokud nebudou zrušeny).
Smyslem modulu je vést evidenci o úspěšných a neúspěšných obchodech. Vše přitom probíhá podobně jako u brokera - na začátku je třeba na virtuální účet vložit libovolný obnos (doporučujeme podobnou sumu, s jakou obchodujete nebo plánujete obchodovat v reálném světě), následně zadat prodejní či nákupní příkaz a systém nejen zaznamenává výsledky uskutečněných obchodů, ale blokuje také marginy (v reálné výši podle obchodované komodity) a počítá s komisemi (jejichž výši lze nastavit). Omezením systému je, že obchody probíhají pouze na denních grafech - tj. historické testování může probíhat pouze "v hrubém režimu" a jemné dopracování například vstupních strategií či posouvání stop-loss příkazů je třeba doladit např. pomocí historických pětiminutových grafů.
TNT vede o jednotlivých obchodech přesnou evidenci, na základě které lze snadno porovnat úspěšnosti jednotlivých obchodních strategií.
Historické výsledky samozřejmě nejsou žádnou zárukou budoucích zisků - to co může fungovat v minulosti, nemusí přinášet profit v budoucnosti. Nicméně tato věta platí zejména pro automatizovaný backtesting, při kterém se programátoři snaží najít vzorec, který s pomocí historických dat konkrétního grafu vydělá co nejvíce. Výsledkem bývá křivka optimalizovaná na konkrétní historická data, jejíž životnost nebývá dlouhá.
Ruční backtesting - například výše uvedeným způsobem - představuje dobrou cestu jak si vyzkoušet, zda-li váš základní přístup k trhům funguje a zda-li se svými strategie dokážete vydělat $$$ alespoň v simulátoru programu. Pokud ne, pak nemá smysl se do reálného obchodování pouštět a je třeba si najít strategii, která vám více sedne.
Podrobné informace o programu Track'n Trade Pro naleznete v naší recenzi, 30denní plně funkční recenzi programu (včetně aktuálních dat a pluginu pro simulování obchodů) si můžete stáhnout na této stránce a popisované historické testování si tak dopodrobna vyzkoušet na svém počítači.
Přibližně za týden se můžete těšit na další článek, popisující tentokrát hned několik programů pro automatizovaný backtesting.
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 v alternativním fondu, který spravuje.