Jump to content
Co nového? Mé kurzy
Články a tutoriály:
Archiv článků Psychologie obchodování Jak na obchodní plán Mé obchodní strategie
  • 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í:

    amibroker-test1.jpg

    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:

    amibroker-test2b.jpg

    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):

    amibroker-test3b.jpg

    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.

    • Líbí se 7

    Další články na toto téma

    Backtest & obchodní plán za 6 víkendů

    Foto (c)iStockphoto.com/racnus &nbsp  Řadě začínajících traderů trvá až příliš dlouhou, než se "dokopou" do backtestu a stavby obchodního plánu. Přitom oba tyto kroky jsou naprosto základním stavebním kamenem našeho tradingu - bez obojího nemůžeme ani začít s paper-tradingem. Dobrá zpráva však zní - vše je možné připravit za pouhých 6 víkendů, při práci max. 3 hodiny denně. Dnes si ukážeme jak.
    Nutno říci, že obchodník, který se chystá k backtestu a stavbě obchodního plánu, musím již mít ideu, co chce vlastně backtestovat a co by tak chtěl do budoucna obchodovat. Měl by mít tedy jasno alespoň o konceptu, se kterým chce pracovat dále - ať už je to obchodní systém FinWin, poziční obchodování spreadů, nebo cokoliv jiného - záleží jen na tom, který z dostupných nebo vlastních obchodních přístupů si vyberete k seriózní práci vedoucí ideálně až k živému obchodování.
    K backtestu a stavbě obchodního plánu je tedy nezbytné, abyste již měli jasno v konceptu, se kterým chcete pracovat - následně pak už může jít práce poměrně hladce, pokud si jí správně rozvrhneme a budeme se jí po 6 víkendů věnovat, při pouhých 3 hodinách denně.
    Víkend 1: příprava počítače 2x 3 hodiny
    Abychom mohli začít backtestovat a stavět obchodní plán, musíme mít k těmto krokům připravený počítač. Je tedy třeba nainstalovat potřebný software - tj. například SierraCharts, NinjaTrader, Gecko Track ´n´Trade, atd. Záleží na každém, s jakým programem se rozhodne pracovat - v tomto ohledu doporučujeme začít širším přehledem o dostupnosti různých analytických platforem, na našem webu naleznete řadu popisu a specifikací programů, které s Petrem používáme nejčastěji, nebo se kterými máme dobré zkušenosti.
    Následně budete potřebovat program Excel, který budete využívat k zapisování backtestovaných obchodů a jejich pozdějšímu analyzování. Je dobré si předem připravit nějaký jednoduchý backtestový Excel, nebo využít takový, který už je hotový a je k dispozici.
    K instalaci a základnímu seznámení se s těmito nástroji by vám měli stačit dva volné víkendové dny, max. 3-4 hodiny denně. 
    Víkend 2: backtest 2x 3 hodiny
    V pátek před druhým víkendem byste tedy měli již mít zcela zprovozněné a funkční veškeré nástroje a měli byste mít jasný koncept toho, co chcete backtestovat. Týden také využijte k tomu, že si na kus papíru zapíšete základní pravidla pro vstupy a výstupy systému, který chcete testovat - musíte totiž začít backtest již s konkrétními pravidly. K sepsání těchto základních podmínek se nemusíte nějak zvlášť přemáhat, prostě jen cestou do práce a z práce o všem trochu porozmýšlejte a před spaním si zapište konkrétní nápady a postřehy na podobu vašich vstupů a výstupů - resp. vstupních a výstupních pravidel, která budete testovat.
    Během víkendu pak začněte velmi pomalu s prvotním backtestem. Pokud se pouštíte do intradenního obchodování, budete potřebovat testovat alespoň 6 měsíců nazpět. Ideální je 1 rok a více, pokud však s backtestem začínáte, není třeba se do všeho nutit hned od začátku - už 6 měsíců backtestu vám dá základní potřebný přehled.
    Řekněme, že backtest budete dělat realistickým tempem 1 obchodní den za 5 minut. Není důvod, aby vám tempo trvalo déle - 5 minut poměrně bohatě stačí na to, abyste v rámci daného obchodního dne v historii našli potenciální vstupy a výstupy, zapsali takové do obchodního deníku (připraveného v Excelu) a pořídili screenshot daného dne.
    Při 5ti minutách na jeden obchodní den budete potřebovat zhruba 120 x 5 minut = 10 hodin. Občas se možná někde trochu "kousnete", takže s rezervou 12 hodin by mělo bohatě stačit. Pokud si tuto práci rozložíte tak, že během jednoho víkendového dne zbacktestujete zhruba 30 obchodních dnů (velmi realistické), stačí vám dva víkendy při práci max. 3 hodiny denně. Neměl by být tedy problém zvládnout backtest za dva víkendy.
    Víkend 3: backtest 2x 3 hodiny
    Předešlý týden byste měli být schopni realizovat polovinu backtestu. Nic méně, nyní jste si dali celý týden oddych a odstup a docela určitě vás napadly nové myšlenky a nápady. Je tedy možné, že se k některým obchodům ještě vrátíte, svůj původní záměr trochu pozměníte a některé dny budete backtestovat znova. Proto někteří mohou potřebovat na tento v pořadí již třetí víkend trochu více času - řekněme max. 4-5 hodin denně, což je stále realisticky zvládnutelný čas. Nebojte se skutečně využít luxusu týdenního odstupu a přemýšlení o práci z předešlého víkendu a vaše záměry ještě pozměnit a upravit - pokud se případné nové nápady ukážou jako funkční.
    Víkend 4: práce s daty 2x 3 hodiny
    Máte nasbíraná data za půl roku - tj. poměrně solidní vzorek obchodů pro začátek (hovořím zde samozřejmě o intradenním obchodování). Nyní bude třeba s daty dále pracovat - tj. především s analýzou MAE/MFE, úspěšností jednotlivých dnů v týdnu, případně dalšími filtry. Doporučuji využít celý týden před tímto krokem ke studiu například v rámci diskusního fóra na našem serveru a nechat se trochu více inspirovat zkušenějšími v tom, jak s nasbíranými daty pracovat a jak je co nejlépe vyhodnocovat.
    Na tuto práci si dejte dostatek času. Porovnejte různé možnosti nastavení PT a SL, případně otestujte další dodatečné filtry - máte-li takové zahrnuty v základním backtestu. Můžete k širší analýze využít i program MSA. Veškerá nastavení, která shledáte jako vhodná a finální pro první podobu svého finálního obchodního systému, nezapomeňte uložit v podobě screenshotu - budete totiž screenshoty potřebovat ke kompletaci svého obchodního plánu. Výsledkem v pořadí čtvrtého víkendu by měla být řada tabulek, která jasně ukáže, v jaké podobě (konfiguraci) budete chtít se svým obchodním systémem pracovat a co od této podoby čekat (WIN%, P/L, drawdown, profit per month, atd.).
    Víkend 5: sepsání základního obchodního plánu 2x 3 hodiny
    Pátý víkend v pořadí využijte ke kompletizaci první podoby obchodního plánu. Nejprve si ujasněte obsah - ten by měl obsahovat minimálně velmi konkrétní a detailní popis podmínek vstupů a výstupů (včetně ukázek a screenthotů), popis situací, ve kterých neobchodujete (chop), popis základních nastavení systému, včetně statistických závěrů z vašich backtestů. Je dobré přidat do obchodního plánu i něco o vaší motivaci - proč chcete obchodovat, jaké máte dlouhodobé cíle, atd. O obchodním plánu bylo zde již napsáno mnoho - opět tedy doporučuji během týdne prohledat náš server a najít si další informace o tom, jak by finální obchodní plán měl vypadat. Pokud vše půjde dobře, na konci pátého týdne budete mít první finální podobu.
    Víkend 6: dokončení obchodního plánu 2x 3 hodiny
    Poslední týden využijte k tomu, abyste nechali až do víkendu vše ještě trochu uležet. V klidu si ještě jednou vše promyslete, zvažte, případně nasbírejte další nápady, podněty a myšlenky. Teprve pak se vrhněte o víkendu do práce - dodělejte případné změny, nebo rozšíření - zkrátka a dobře vše, co vás během týdne ještě napadne. Nakonec dejte obchodnímu plánu nějakou hezkou podobu, vytiskněte a svažte. Gratulujeme, máte za sebou první backtest a první obchodní plán.
    Závěrem
    Je nutné si uvědomit, že prakticky žádná podoba obchodního plánu není definitivní - obchodní plán je vlastně otevřená platforma, která se neustále modifikuje, dle toho, jak se mění zkušenosti tradera. Je vysoce pravděpodobné, že až se s nově postaveným obchodním plánem pustíte do paper-tradingu, začnete mít nové nápady a myšlenky, takže přijde mnoho dalších srovnávacích backtestů a dalších verzí obchodních plánů. To je zcela v pořádku a patří to k běžné práci tradera. Důležité je však udělat první krůček, bez kterého nemohou následovat ty další. A právě k tomuto účelu slouží tento článek.
    Pokud už máte pár backtestů a obchodních plánů za sebou, nezapomeňte se podělit s ostatními o tom, jak vám práce šla/nešla od ruky, kolik času jste potřebovali a kde nejvíce jste bojovali.

    Backtest

    Backtest je proces, při kterém se obchodní strategie testuje na historických datech s cílem ověřit její efektivitu a výkonnost před tím, než je aplikována v reálném obchodním prostředí. Pomocí backtestu může trader zjistit, jak by se jeho strategie chovala v minulosti, což může poskytnout náznak toho, jak by se mohla chovat v budoucnosti. Ačkoliv výsledky backtestu nejsou garantem budoucího výkonu, mohou poskytnout cennou informaci o potenciálních rizicích a výnosech strategie.
    Backtestování může odhalit slabá místa strategie, jako jsou například vysoké úrovně drawdownu nebo nedostatečná konzistence výnosů. Tímto způsobem může trader optimalizovat svou strategii a zvýšit šance na úspěch v reálném obchodování.
    Příklad: Představte si, že trader vyvinul strategii, která kupuje akcie, když jejich 50denní klouzavý průměr překročí jejich 200denní klouzavý průměr. Provedením backtestu na datech posledních 10 let by trader mohl zjistit, že tato strategie by vygenerovala průměrný roční výnos 8 % s maximálním drawdownem 20 %. Na základě těchto informací by trader mohl upravit strategii nebo se rozhodnout ji implementovat.

    hrubý backtest - začátky

    Ahoj mám dotaz ohledně hrubého backtestu, 
    zde na finančníkovi byl o tom článek: https://www.financnik.cz/komodity/fin_home/jak-spravne-backtestovat-finwin.html
    jsou tam uvedeny tři domácí úkoly, budu velice rád pokud se mi někdo z autorů backtestů ozve, jde o pány: Jan J., Michal G. a Michal Š.
    Jsem ve fázi kdy mám vybraný pattern - trendové 123, trh - E-mini NQ, obchodní hodiny 20:00-22:00, timeframe - 1m, a začal jsem na historických datech zaznamenávat výskyty tohoto patternu. Ihned mi, ale vyskočilo několik otázek při prvním procházení.
    Mockrát děkuji, Libor.
     
×
×
  • Vytvořit...