Backtesting aneb testujeme obchodní strategie II
V našem seriálu dnes udělám malou odbočku, ve které se pokusím obšírněji odpovědět na řadu dotazů, které vyvolal první díl článku. Ten byl mimochodem velmi čtený a je zřejmé, že toto téma je pro řadu komoditních obchodníků velmi aktuální.
Backtesting - ano či ne?
Řada dotazů směrovala k samotnému smyslu backtestingu. Pominu ty, které zpochybňují samotný princip technického obchodování - pokud někdo obchoduje na základě fundamentálních zpráv (analýzou stavu zásob, aktuální produkce, počasí atd.), backtesting patrně nevyužije. Mnoho spekulantů pracuje s tzv. technickými ukazateli nejrůznějšího druhu a nejrůznějších kombinací - ať jde o počet obchodovaných kontraktů, různé průměry, technické formace (patterny), či nejrůznější pokročilé matematické indikátory - vše lze vyjádřit čísly. A jakmile jde něco vyjádřit čísly, lze toto testovat na historických datech. Backtesting na historických datech není samozřejmě žádný zlatý grál, historické výsledky nikdy nejsou zárukou budoucích zisků, ale je to cesta, jak nenechat v trhu své všechny peníze. Nefunguje-li obchodní systém na historických datech, nebude fungovat ani datech aktuálních.
Mimochodem - řada především neúspěšných obchodníků se domnívá, že tzv. obchodní systémy postavené na nějaké konkrétní technické strategii nefungují a "velcí" obchodníci obchodují na základě "intuice". Toto bych si dovolil označit minimálně za velmi pochybné i když samozřejmě existuje nepřeberné množství obchodníků a obchodních přístupů, ale úspěšní obchodníci se vyznačují právě tím, že mají svůj systém konkrétně definovaný a především jej dokáží naprosto precizně dodržovat.
A ještě jedno odbočení - mohou fungovat i tzv. "jednoduché systémy" postavené např. na tak obyčejných záležitostech jako jsou různé jednoduché patterny či klouzavé průměry? Opět naprosto jednoznačná odpověď - ano tyto strategie fungují, ale musí být dotažné po všech stránkách. Především po stránce money-managementu. Mezi zahraničními obchodníky mám několik přátel co obchodují například výhradně na základě strategie klouzavých průměrů. Tito lidé ale přesně vědí kolikadenní průměry používat, jak přesně velký stop-loss aplikovat a mají ještě několik dalších pravidel za jakých podmínek vstupovat do trhu a kdy ne - takovému souboru pravidel se pak říká obchodní systém. Zajímavé je, že pokud by stejná obchodní strategie byla obchodována s jiným stop-lossem, může být ztrátová. Stejně tak mají tito obchodníci otestováno, že strategie funguje v některých typech trhů, v jiných používají např. jinak postavený klouzavý průměr reflektující charakter daného trhu. A právě pro tyto účely přesně slouží backtesting (bez ohledu na používanou strategii - klouzavý průměr byl jen konkrétní příklad) - zejména u pokročilých strategií dokáže backtesting odhalit řadu drobností (např. nejvhodnější strategii na posazení stop-lossu, přidávání pozic atd.), které jiným způsobem odhalit ani nelze.
Před časem jsem například pomáhal jednomu obchodníkovi s jeho opční strategií. Většina jeho opcí expirovala jako zcela bezcenná a tento člověk trvale ztrácel poměrně velké peníze. Není překvapením, že tento obchodník nakupoval opce zcela a pouze na základě "pocitu" - stejně tak jako většina ztrácejících obchodníků. Postupně jsme připravili novou strategii pracující na základě jednoduchého principu historické volatility, tedy něčeho, co lze testovat na historických datech a dnes je tato strategie funkční i po několika letech a trvale hodnotí investice, se kterými tento obchodník obchoduje.
Libovolnou formu backtestingu tak doporučuji zejména začínajícím obchodníkům, kteří mají pocit "že takto to musí fungovat". Nedejte na pocit, že vaše strategie funguje v několika posledních týdnech - vše je nezbytné otestovat ve větším časovém měřítku.
Data, data, data
Další skupina dotazů se týkala dat - kde sehnat historická data komodit k testování? V minulém dílu seriálu jsem zmiňoval Gecko Track'n Trade, které sám používám k "ručnímu" testování různých technických formací. Podobné programy se dodávají s historickými daty a TNT není výjimkou. Potřebujete-li však data pro jiné aplikace nebo chcete-li data testovat např. v Excelu, doporučuji k vaší pozornosti službu Advanced Commodites Services, kterou provozuje společnost Barchart na stránce http://futures.barchart.com/futures.html Zde lze za 20 dolarů měsíčně získat v neomezeném rozsahu historická denní data komoditních trhů a opcí až do roku 1990 - navíc v několika různých formátech, snadno importovatelných do libovolné aplikace. Za 20 dolarů tak můžete získat všechna data, která budete potřebovat. Ukázku dat naleznete na stránce http://www.barchart.com/info/sample/mrifile.html - data obsahují open, close, high, low, volume a open interest - tedy všechny informace potřebné i pro ty nejsofistikovanější výpočty. Není to sice úplně zadarmo, ale částka je velmi přijatelná (mimochodem - znáte-li někdo další dostupné podobné zdroje a chcete-li se podělit s ostatními čtenáři - pošlete mi prosím odkaz na e-mail petr@financnik.cz).
Podobná data lze získat i bezplatně, ale většinou pouze k aktuálním trhům. K dispozici jsou u služeb, které nabízejí komoditní grafy. Příkladem může být například stránka společnosti Britefutures - http://www.britefutures.com/home.asp. Otevřete-li si libovolný graf, je k dispozici také položka DOWNLOAD PRICES, která vám umožní stáhnout data v textové podobě a vložit je do libovolného programu.
Komfortní stahování dat do vašich aplikací či různé streamování dat v reálném čase je na internetu také k dispozici, ale to už vesměs za pravidelný měsíční poplatek.
Kam s daty?
Data jsou samozřejmě základ, ale jde pouze o naprostý začátek. K jejich analýze je třeba nějaký programový nástroj a posléze především vytvoření potřebných algoritmů. To je pochopitelně ta nejtěžší část a proto existuje celá řada specializovaných programů (viz minulý díl seriálu), které vám mohou pomoci. Nicméně jde to pochopitelně i v Excelu, jak ukazují například stránky http://www.ozgrid.com/Services/excel-back-testing-trading.htm popisující vytvoření backtestingové analýzy (zde konkrétně akcií) v programu Microsoft Excel pomocí standardního visual basicu. A existují samozřejmě i další stránky - stačí zadat heslo "backtesting" třeba do google. Chcete-li si backtesting vyzkoušet s nějakým sofistikovanějším nástrojem, doporučuji program Amibroker, který je na stránce http://www.amibroker.com/download.html ke stažení v plně funkční demoverzi (tento program je k dispozici také v české verzi). Výhodou podobných programů je skutečnost, že disponují i speciálním programovacím jazykem, který již zohledňuje řadu obchodních strategií a např. běžné indikátory jsou v programu již zabudovány. S určitou nadsázkou tak lze obchodní systém typu "protnou-li se dva určité klouzavé průměry pak vstoupit do trhu a nastavit SL podle pravidla xy", naprogramovat poměrně snadno.
Závěr
Backtesting může být jednoduchý ale také velmi komplexní a složitý. Je jasné, že začínající obchodník by svoji pozornost NEMĚL upnout k programování obchodních systémů v komplexních programech. Toto řešení je pro uživatele, kteří již mají své strategie hotové a potřebují je ladit - třeba na optimalizaci money-managementu.
Začínající obchodník by měl použít program typu Track'n Trade Pro či bezplatné grafy a testovat si v nich ručně základní strategie, které jsou často stejně účinné jako ty komplikovanější (jen tomu někteří lidé nechtějí věřit). S programem typu Excel lze také pracovat jednoduchým způsobem (dostačující pro drtivou většinu uživatelů) a současně si lze i běžnou kancelářskou agendu optimalizovat třeba s použitím visual basicu. Proto začínáte-li obchodovat, zvolte prosím tu jednodušší cestu... Pokud vám základní strategie fungují a hledáte cestu jak vše optimalizovat, věřím, že vám byl tento článek užitečným pomocníkem na další cestě k vašim ziskům.
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.