Jak na první backtest
Úspěšné profitování na trzích je skutečně jen a pouze o dlouhodobém a systematickém vytěžování drobnějších pravděpodobností ve spojení s důslednou kontrolou risku. Nezbytným minimem je tak ověření, že obchodované pravděpodobnosti fungují. Bohužel v trzích nebudeme mít nikdy jistotu, jak se budou věci vyvíjet do budoucnosti. Můžeme si však ověřit, jakým způsobem vše fungovalo v minulosti. A věřit, že testované pravděpodobnosti se budou alespoň částečně opakovat i v budoucnu.
Základem profitabilního obchodování je proto tzv. historický backtest. Při něm aplikujeme sledované principy na historická data a vyhodnocujeme nejrůznější metriky testované strategie.
Když jsem s testováním trhů začínal, backtestoval jsem strategie ručně. Jednoduše jsem si zobrazil historický graf, procházel jej úsečku za úsečkou a hledal předem definované vstupní a výstupní situace. To ale bylo před několika desítkami let (neskutečné, jak čas letí). Ruční backtest je samozřejmě možný i dnes, ale maximálně jej nedoporučuji. Především je časově velmi náročný. Vesměs tak budeme backtestovat méně historie a určitě méně trhů. Ruční backtest bývá také velmi nepřesný. Naše mysl se bude zaměřovat hlavně na nejvíce viditelné ziskové situace a přehlédne mnoho ztrátových situací.
V dnešní době jednoznačně doporučuji backtestovat pomocí specializovaných programů. Do těch nadefinujeme parametry strategie a velmi rychle máme k dispozici podrobné historické statistiky.
Mnoho začínajících obchodníků se počítačovým backtestům brání. Odrazuje je nutnost pochopit pro ně nové principy ovládání příslušných programů, což určitě vyžaduje určitý nezbytný čas a samostudium. Současně také bývají po prvních počítačových backtestech rozmrzelí ze získaných výsledků. Testy jim často ukáží, že testované přístupy nejsou na historických datech výdělečné nebo vydělávají málo. A obchodníci mívají pocit, že ručně by dokázali situace zobchodovat mnohem lépe. Což je vesměs velmi naivní. Zejména pokud s obchodováním začínáte.
Časovou investici do studia počítačového backtestu jednoznačně doporučuji. Budete z ní těžit celou svoji obchodní kariéru. A pochopitelně to neznamená, že byste museli obchodovat automatizovaně. Počítačový backtest můžete použít i k získání jen základních dlouhodobě fungujících pravděpodobností, které následně můžete obchodovat ručně s využitím vlastního zvážení obchodovaných situací. A co je nejdůležitější. Jakmile se jednou pustíte do plně systematických backtestů s použitím počítačů, budou se časem vaše výsledky jen zlepšovat tak, jak se budete posouvat ve znalosti používaných nástrojů.
Jaký software pro backtest používat? Zde neexistuje jedna správná odpověď. Řešení dnes existuje opravdu hodně a vybere si každý. Doporučuji zvolit hlavně takový software, který má aktivní komunitu uživatelů, je hodně univerzální a není příliš drahý. Sám dnes používám nejvíce programy TradeStation (pro intradenní obchodování), Amibroker (pro swingové a portfolio systémy) a bezplatný programovací jazyk Python.
Začnete-li s Amibrokerem, myslím, že nesáhnete vedle. Program sice není zdarma, ale je velmi flexibilní. S vašimi rostoucími nároky na testované funkce budete objevovat stále další a další možnosti tohoto softwaru, který je opravdu dobře postavený. Ale pochopitelně není to svatý grál. Jako žádný software. Z počátku je určitě dobré vyzkoušet i další programy, abyste sami poznali, který vám bude vyhovovat nejvíce.
Pojďme si ukázat, jak na první backtest s Amibrokerem, abyste měli konkrétní návod, od kterého se odrazit.
Program je možné instalovat ve zkušební verzi z adresy https://www.amibroker.com/download.html. Pro základní backtest je program plně funkční, hlavním omezením je skutečnost, že data nejdou ukládat do databáze.
Po prvním spuštění se v programu zobrazí graf akcie AA, jejíž data jsou spolu s několika dalšími v programu k dispozici k testování:
Na této akcii si můžeme ukázat, že programový backtest není vůbec komplikovaný.
Zvolte v horním menu File > New > Formula a zobrazí se tzv. AFL Formula Editor. AFL je zkratka pro skriptovací jazyk, ve kterém se v Amibrokeru popisují testované situace.
Řekněme, že se rozhodneme otestovat edge popisovaný v rámci seriálu. Tedy držení pozice přes noc. Například budeme chtít otevřít pozici na klesajícím dnu (tedy uzavírací cena trhu je nižší než otevírací) a vstoupit následující den při otevření trhu.
V Amibrokeru pro to můžeme použít následující kód:
Buy = C<O; BuyPrice = Close; Sell = False; SellPrice = Open; ApplyStop( stopTypeNBar, stopModeBars, 1 );
Funkce Buy definuje podmínku, při které pozici otevíráme (zde klesající úsečku). BuyPrice pak vstupní cenu (zde uzavírací cena trhu). Sell definuje podmínku výstupu. V naší ukázce nemáme tuto podmínku aktivovanou, protože pro výstup používáme tzv. časový stop-loss – výstup za určitý počet úseček. V našem případě druhý den, kdy pozici ukončujeme na otevírací ceně. Tu máme definovanou pomocí proměnné SellPrice.
Následně v editoru klikněte na tlačítko Analysis:
Kód se přenese do hlavního okna, kde se ujistěte, že budete backtestovat vybraný trh (Apply to nastavené na Current). A následně klikněte na tlačítko Backtest (1):
Jakmile test dojede, můžete si výsledky backtestu zobrazit kliknutím na ikonku Report (2).
Okamžitě byste měli mít k dispozici statistiky této testované situace na několika stech obchodech. A současně hotový první backtest. Gratuluji!
Vidíte, že systematický backtest s pomocí softwaru není nic nepřekonatelného. Nejdůležitější je nezastavit se před první překážkou a po kouskách se snažit posouvat dále. Co vám na začátku bude připadat nepochopitelné, budete za pár měsíců vnímat jako velmi triviální.
Velkým pomocníkem vám bude manuál Amibrokeru, ve kterém jsou na adrese https://www.amibroker.com/guide/ popsány všechny funkce, se kterými lze v programu pracovat. Chcete-li na začátku asistenci s ovládnutím programu pomocí konkrétních tutoriálů v češtině, pak na Finančníkovi nepřehlédněte kurz základů práce s Amibrokerem na adrese financnik.cz/go/amibroker.
A skutečně – není podstatné s jakým programem budete pracovat a kde se jej naučíte ovládat. Důležité je zejména začít a každý den se snažit posunout kupředu. V našem seriálu už jsme si ukázali několik zajímavých situací, které doporučuji, abyste si sami zkusili programově otestovat. Budete u toho muset vyřešit spoustu drobných úkolů a výzev, ale to je právě to, co vás bude jednoznačně posouvat kupředu k systematickým profitům.
A pokud si nebudete vědět rady, zkuste napsat na petr@financnik.cz a bude-li na téma více podobných dotazů, pokusím se odpovědi zpracovat do některého z dalších článků.
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.
- 7