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
  • Breakout první korekce - automatické testování v TradeStation

    Dnes navážu na svůj minulý článek „Studujeme intradenní systémy - breakout první korekce“ a prakticky vám ukážu, jak přibližně složité je vytvořit automatický test strategie, jehož výsledky byly v článku uvedeny.

    S Tomášem skoro na každém našem kurzu diskutujeme na téma, zda-li obchodní strategie programovat či nikoliv. Odpověď je vždy jednoznačná – pokud člověk s tradingem začíná, měl by se z naší zkušenosti programování čehokoliv vyhnout. Je totiž jen velmi nepatrná šance, že začátečník, který má o burze jen minimální povědomí, naprogramuje něco, co by mělo reálnou šanci „samo“ vydělávat peníze. Obzvláště to platí v oblasti intradenního obchodování. Jediné, co může začínajícího tradera posunout vpřed je studium grafů. A začátečníkům, kteří se snaží dívat na trhy skrz mechanické programování, bohužel navždy unikají ty nejzákladnější principy.

    Situace se pochopitelně mění u zkušených obchodníků. Pokud již rozumíte principům obchodování, máte dobře osahané své strategie (nejlépe skrz dlouhodobější živé obchodování), mohou vám různé programové nástroje zvýšit efektivitu nejrůznějšího testování nebo pomoci při nejrůznější automatizaci. Osobně používám programovatelné nástroje pro hledání tendencí nebo problematických období. Jednoduše řečeno jsem si vědom, že nejsem žádný programátor a nejsem schopen naprogramovat veškeré nuance obchodních přístupů, které používám. Většinou si tak vytvořím nějaký jednoduchý kód vystihující z principu určitou myšlenku a mohu chtít mechanicky otestovat její robustnost v čase předtím, než ji začnu jemně testovat ručním backtestem.

    Nástrojů, ve kterých lze testovat mechanické principy existuje obrovské množství. Poměrně dost tipů můžete získat ve starším článku „Jaký software pro backtesting a vytváření vlastních obchodních systémů a indikátorů?“. Osobně dnes používám programy TradeStation a Microsoft Excel.

    Krátce o TradeStation

    TradeStation je brokerská analytická platforma, kombinující skoro vše, co obchodník potřebuje pro technickou analýzu a mechanické programování nejrůznějších algoritmů. Podrobněji viz např. náš seriál „Pracujeme s TradeStation (1)“. Dnes samozřejmě existují i další podobná řešení, já osobně ale upřednostňuji právě TradeStation, kterou ke své spokojenosti používám již velmi dlouho. Mezi hlavní důvody patří snadná práce s daty (v podstatě historická data vůbec neřeším, protože se mi vždy načtou od brokera, byť např. ticková data jsou zde omezená pouze na 6 měsíců), velmi rozsáhlá uživatelská komunita (když potřebuji tak na diskuzním fóru vždy najdu řešení svého problému) a samozřejmě technické možnosti. Jenom pro dokreslení obrázku - platforma je zdarma klientům TradeStation (pokud děláte alespoň skutečné minimum obchodů) nebo se platí cca 100 dolarů měsíčně (plus je třeba vždy platit poplatky burzám za jejich data), komise jsou podobné jako u InteractiveBrokers. TradeStation má pochopitelně také své ALE – vývoj platformy je poměrně dost pomalý a např. až letos do platformy přibyla možnost obchodování rangebars (vteřinové grafy pořád chybí) a pro obchodníky z Evropy je nepříjemné, že prakticky příliš nelze obchodovat evropské trhy.

    Podoba kódu pro testování konceptu proražení první korekce

    Abyste si dokázali udělat představu o náročnosti programování v TradeStation, přikládám svůj kód pro diskutovanou strategii proražení první korekce. Upozorňuji, že nejsem programátor, ale uživatel. Je tak pravděpodobné, že věci jdou dělat efektivněji nebo jinak. Aby byl kód přehledný, uvádím jej jako obrázek, pokud by měl někdo zájem, napište do diskuze a vložím jej v textové podobě:

    breakout-jako-aos.gif, 48kB

    Jak vidíte, kód není příliš dlouhý. Nejprve se definují používané proměnné a vstupní hodnoty.

    Následná zhruba třetina kódu sleduje, kolik uděláme obchodů za den. V této chvíli obchoduje strategie jediný obchod denně, počítání obchodů se děje přes proměnnou numTradesToday a jakmile má tato proměnná hodnotu 1, další obchody bude software „obchodovat“ až následující den.

    Teprve až posledních několik řádků obsahuje kód samotné strategie. Obchodujeme pouze v určité hodiny (zde nastaveno přes proměnné čas 9:33 až 10:00, což je lokální čas obchodování trhu TF, budete-li chtít obchodovat např. trh NQ je třeba nastavit lokální čas o hodinu nižší, neboť TF a NQ se obchodují na jiné burze, v jiném časovém pásmu) a sledujeme, zda-li trh překoná v daném čase první korekci. V takovém případě zkoušíme nastoupit stop příkazem nad high (v případě dlouhé pozice) poslední úsečky.

    Výstupy v tomto kódu definované nejsou, protože používám předpřipravené kódy dostupné v TradeStation. Strategie ani neřeší „premarket“, protože v TradeStation můžeme strategii automaticky aplikovat pouze na data v hlavní obchodní hodiny – v našem případě zvolím „ticker“ @TF.D.

    Shrnutí

    Článkem jsem chtěl ukázat, že pro určité typy situací může být efektivní použít programové prostředky a otestovat si robustnost myšlenky tímto způsobem. Pochopitelně, že vytvoření kódu např. v TradeStation vyžaduje určitou zkušenost, ale můžete mi věřit, že sám ovládám jen minimum příkazů, většinou kód buduji systémem pokus-omyl-diskuze, ale i tak je vytvoření podobného kódu otázka maximálně několika málo hodin práce (a zkušený programátor toto pochopitelně má hotové za pár minut). Zdůrazňuji, že je nutné rozlišovat situace, pro které má mechanické testování smysl dělat, a pro které nikoliv. Pokud však obchodník buduje jednoduché strategie, které plánuje obchodovat čistě mechanicky a tyto lze naprogramovat, tak by se o to myslím mohl pokusit. Jednak proto, že si poté velmi zkrátí čas s hrubým otestováním robustnosti přístupu (aplikováním na roky historie zpět, další trhy atd) a jednak proto, že může kód použít pro zautomatizování exekucí, protože proč nenechat jednoduchou strategii tohoto typu zobchodovat počítač, pokud je vše nadefinováno mechanicky?
    Na závěr připomenu, že sám jsem diskréční typ obchodníka a mechanické přístupy testování používám většinou na vyšší timeframe (většinou denní), navíc za účelem sledování různých základních tendencí a pravděpodobností, nikoliv pro budování AOS. V rámci intradenního obchodování neobchoduji přístup, který by bylo možné naprogramovat, ale na druhou stranu se určitě nezdráhám použít nejvhodnější nástroje v případech, které jsou k tomu vhodné.

    2.12.2009

    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.


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

    Fungují breakouty silných swingů? Otestoval jsem 40 futures trhů a data mluví jasně

    Mnoho obchodníků tráví hodiny hledáním silných supportů a rezistencí s cílem vstupovat do protitrendových obchodů. Sází na to, že se cena od úrovně odrazí a trh se otočí. Když jsem ale otestoval více než 25 let historie na 40 futures trzích, zjistil jsem něco jiného.
    Držet pozici mechanicky ve směru průrazu (breakout) – třeba jen několik hodin po překonání swingu – se ukazuje jako statisticky mnohem zajímavější edge (výhoda) pro stavbu robustního obchodního systému.
    Trendové obchodování je jednou z nejjistějších metod tradingu. Kde ale do rozjetého vlaku nastoupit? Jednou z potenciálně nejsilnějších oblastí je právě průlom swing high/low – místa, kde historicky došlo k výrazné změně nabídky a poptávky.
    1. Co je to vlastně swing a proč na něm záleží?
    Na grafu níže vidíte 120minutový timeframe futures kontraktu zlata (GC) s vyznačenými swingy. Modré body označují swing high (lokální vrcholy), červené body swing low (lokální dna).

    Vyznačení swingů nám dává okamžitou orientační mapu. Cena se v těchto bodech neotočila náhodou. Za každým takovým bodem stála dočasná změna v rozložení sil mezi nakupujícími a prodávajícími. Trh si tyto úrovně "pamatuje".
    Než začneme testovat, musíme swingy přesně definovat. Subjektivní pohled "od oka" v backtestu nestačí. Existuje mnoho metod:
    Fraktály (Bill Williams): Swing high je svíčka s nejvyšším High, obklopená N svíčkami s nižšími Highs. Procentuální retracement: Swing vzniká, pokud se trh vrátí o X % zpět. ATR pohyb: Swing musí mít velikost minimálně N-násobku průměrného denního rozpětí (ATR). Pro tento výzkum jsem se zaměřil na výraznější swingy, které se vykreslují přibližně jednou za den či méně. Použil jsem definici založenou na volatilitě (cca 1 x denní ATR). Pokud použijete podobnou logiku, vaše struktura swingů – a tedy i výsledky testů – budou velmi podobné těm mým. Byť úplně přesnou definici použitého skriptu pro výpočet swingu nebudu prozrazovat, protože na tomto konceptu plánuji stavět vlastní obchodní systém.
    2. Metodika testu: Hledání čisté pravděpodobnosti
    Cílem výzkumu není ukázat hotovou strategii, ale zjistit základní tržní tendenci. Má trh po doteku významného swingu tendenci se odrazit (Mean Reversion), nebo prorazit (Breakout)? Abychom dostali "čistá data", testy jsou prováděny bez poplatků (komisí) a bez skluzů v plnění (slippage).
    Parametry testu
    Data: Kontinuální, zpětně adjustovaná 1minutová data z TradeStation. Rozsah: 40 futures trhů (US indexy, komodity, dluhopisy + DAX). Historie: Od roku 2003 (většina trhů od 2006) do současnosti. Vstup: Stop příkaz přesně na ceně swingu. Každý swing se obchoduje pouze jednou. Money Management: Normalizace na volatilitu. Otevírám takový počet kontraktů, který odpovídá pohybu 25 000 USD při průměrné denní volatilitě.  Poznámka: Toto není doporučený risk pro reálný účet! Je to matematická metoda, jak zajistit, aby levná kukuřice měla v testu stejnou váhu jako drahý akciový index. Výstup: Časový. Testujeme, co se stane po X hodinových úsečkách. Žádný jiný stop-loss ani profit-target. 3. Výsledky testů: Mýtus o odrazech padá
    Pojďme se podívat na tvrdá data. Testoval jsem různé doby držení pozice.
    A) Držení 1 hodinu po průrazu (okamžitá reakce)
    V tomto scénáři vstupujeme na doteku swingu a vystupujeme na konci (Close) následující 60minutové svíčky.
    Zde je vizuální ukázka obchodu na ropě (CL), který by zrovna skončil ztrátou (falešný průraz):

    Ačkoliv ukázka výše nevyšla, statistika z více než 40 000 obchodů hovoří jasně pro breakouty. Pokud byste na všech 40 trzích mechanicky kupovali swing high a prodávali swing low s výstupem po hodině, vaše teoretická equity křivka by  vypadala takto:

    Graf zobrazuje teoretický potenciál (hrubý zisk) samotného principu breakoutu bez aplikace nákladů a řízení rizika.
    Takto vypadají výsledky po jednotlivých testovaných trzích:

    Klíčová zjištění:
    Sharpe Ratio 1.59: To je na "hrubý" systém bez filtrů a SL velmi solidní číslo. Byť nezapomínejme, že nejsou zahrnuty komise a skluzy. Konzistence: Systém funguje stabilně přes 25 let. Symetrie: Vydělávají obě strany – Long i Short:
    Některé trhy mají přitom výsledky doslova ukázkové. Takto vypadá simulace přístupu na zlatu:

    Kde je zajímavé i to, s jakou přesvědčivostí funguje pravděpodobnost do shortu:

    B) Držení 10 hodin (Intradenní trend)
    Zkusme pozici podržet déle. Co se stane, když dáme obchodu prostor dýchat cca 10 hodin:

    Výsledek? Stále výborný.
    Sharpe Ratio: 1.55 (téměř beze změny oproti 1 hodině).  Drawdown: Mírně se zvýšil. Charakteristika: S delším časem začíná Long strana dominovat (díky přirozenému růstu řady trhů), zatímco úspěšnost Shortů mírně klesá, ale stále je zisková.
    4. Kontrolní test: Kde výhoda mizí?
    Každý správný výzkum potřebuje "kontrolní skupinu". Provedl jsem proto test s výstupem za 2 dny. Předpoklad: Krátkodobé momentum po průrazu by mělo vyprchat a výsledek by měl být náhodný nebo kopírovat trh.

    Potvrzeno.
    Sharpe Ratio spadlo na 0.21. Equity křivka je "rozbředlá". Zisk generují pouze Longy na trzích, které měly silné býčí trendy. Shorty jsou v hluboké ztrátě. Tento test je klíčový důkaz, že edge se skrývá v bezprostřední reakci na průraz swingu. Čím déle čekáme, tím více se náš náskok rozplývá v tržním šumu.
    Závěr a další kroky
    Tento výzkum nám dal jasnou odpověď: Trhy mají na úrovni významných denních swingů statisticky měřitelnou tendenci pokračovat v pohybu (breakout), nikoliv se otáčet.
    Tendence vypadá navíc tak silně, že je mým plánem na ní postavit konkrétní obchodní systém. Pochopitelně s propracovanějším řízením risku a výstupy.
    Pokud hledáte způsob, jak intradenně obchodovat trendy, vstupy na průrazu swingů vypadají jako robustní bod, od kterého se odrazit.
    Příště se při zkoumání zaměřím na to, co s výsledky udělá realistický risk management a především aplikace běžných nákladů a skluzů v plnění.
     

    Micro Bitcoin futures: Jak vytěžit volatilitu a zároveň posílit diverzifikaci portfolia

    Micro Bitcoin futures (MBT) kotované na regulované burze CME otevírají traderům elegantní cestu k bitcoinové volatilitě s jemně škálovatelným nominálem 0,1 BTC. V článku si ukážeme, proč tento instrument nenechat ležet ladem, jak funguje jeho vztah ke spotovému trhu a co přinese do portfolia ve srovnání se stejnou strategií na tradičním indexu Nasdaq 100.
    Proč se vůbec zabývat Micro Bitcoin futures
    Bitcoin je sice relativně mladé aktivum, ale za poslední dekádu se stal natolik významným, že cenová dynamika přitahuje každého, kdo v tradingu cíleně hledá volatilitu. Spotové držení BTC však přináší celou řadu operačních potíží – od správy privátních klíčů přes bankroty kryptoburz až po fakt, že otevřít krátkou pozici není zrovna jednoduché.
    Kontrakt MBT tento problém řeší: vypořádává se stejným clearingem jako e-mini S&P 500, obchoduje se na CME Globex a můžete jej – na rozdíl od spotu – bez omezení shortovat i obchodovat na páku pouze přes margin. A navíc jej lze obchodovat ve stejné platformě jako ostatní futures a akcie.
    Co přesně představuje kontrakt MBT
    Micro Bitcoin futures spatřily světlo světa v květnu 2021 jako zmenšená verze „velkého“ bitcoinového futures. Každý kontrakt reprezentuje 0,1 BTC, takže při ceně 100 000 USD kontrolujeme pozici v hodnotě 10 000 USD. Díky cash-settlementu se při expiraci pouze porovná závěrečná referenční cena Bitcoinu s naší vstupní cenou a rozdíl se vyrovná v dolarech – žádné „dodání“ mincí na blockchain.
    Pákový efekt zajišťuje margin: u Interactive Brokers blokuje intradenně zhruba 3 700 USD, u TradeStation cca 700 USD. Nejmenší cenový krok je 5 bodů (tick-size 0,5 USD), takže pozici lze jemně škálovat i na menších účtech.
    Vztah futures vs. spot
    Hodnota MBT se neustále odvíjí od okamžité spotové ceny Bitcoinu. Každý den probíhá tzv. mark-to-market oceňování, které finančně srovná rozdíl mezi včerejší a dnešní cenou. Pokud se futures od spotu výrazně odchýlí, arbitrážní obchodníci jej rychle vyrovnají – buď prodají futures a koupí spot, nebo naopak – takže cena kontraktu přirozeně konverguje ke spotu. Výsledkem je nástroj, který kopíruje bitcoinovou dynamiku, ale přidává snadné shortování, páku a regulované prostředí.
    Výhody MBT vůči spotu a CFD
    Regulace CFTC – kontrakt spadá pod stejná pravidla jako indexové futures. Bezpečí protistrany – clearing CME garantuje vypořádání, odpadá riziko bankrotu kryptoburzy. Jednoduché shorty – stačí prodat futures kontrakt. Jemné škálování pozice – nominál 0,1 BTC dovolí risk-management i malým účtům. Nevýhody MBT
    Hlavním minusem MBT je nižší likvidita, která vede k o něco širšímu spreadu a vyšším slippage. Navíc kvůli malému nominálu je na menších účtech nutné otevírat více kontraktů a na každý platit komisi (u IB 4,04 USD RT). V krátkodobých intradenních strategiích proto náklady rychle naskakují. I tak tvoří poplatky malou část průměrného denního range Bitcoinu, takže při rozumném money-managementu zůstávají únosné – viz video.
    Proč zapojit MBT do portfolia
    Bitcoin se chová jinak než tradiční trhy a je zatížen vysokým podílem retailových účastníků, kteří často reagují emocionálně a používají naivní patterny technické analýzy. Pro systematické obchodníky je tak zdrojem poměrně „čerstvé“ alfy. Současně jde o aktivum s nízkou korelací k indexovým futures, což z něj dělá ideální prvek diverzifikace.
    „Nejdůležitější věc, kterou můžete pro své investice udělat, je diverzifikovat.“
    — Ray Dalio
    MBT v praxi – srovnání výkonnosti stejného systému s trhem Nasdaq 100
    Sám mám za sebou několik set obchodů v trhu MBT a mohu tak výhody/nevýhody využití MBT kontraktu demonstrovat na reálných datech. S využitím stejného nastavení systému intradenního breakoutu (přesně v té podobě, v jaké je sdílený v Trading Room) jsem připravil detailní porovnání strategie obchodované jak na trhu MBT, tak MNQ (micro Nasdaq 100 futures):

    Poznámka: Exekuce příkazů v MBT zobrazená ve videu je prováděna se skriptem popisovaným v článku Ukázka obsloužení intradenní breakout strategie skrz časované příkazy. Všechny backtesty jsou vytvářeny s nastavením systému tak, jak jej sdílím v Trading Room (tj. pokud si provedete stejný backtest, dostanete stejný výsledek). Strategie intradenního breakoutu je v Trading Room sdílena jako otevřený systém (žádný blackbox) a pravidla jsou stále ještě dostupná i pro měsíční předplatné skupiny. 

    BracketTrader v praxi - silný nástroj pro aktuální breakouty

    V Trading Room máme hotový nástroj pro obsloužení sdílené strategie intradenního breakoutu pro obchodování v Interactive Brokers.
    Obchodujeme skrz jednoduchý skript zadávající do trhu bracket příkazy na základě vyvinutého systému, jehož pravidla jsou stále v Trading Rooom k dispozici - viz Trading Room intradenní breakout. Video ukázku nástroje jsem sdílel zde.
    A že trhy aktuálně jedou. Takto vypadaly mé včerejší short pozice v Dow Jones, S&P 500 a micro Bitcoin futures (většina obchodníků na Finančníkovi obchoduje i indexy skrz microfutures):

    Chcete-li obchodovat v aktuálních trzích stejně, stačí se zapojit do Trading Room (pro využití nástrojů obchodujících u Interactive Brokers je třeba roční předplatné).
     
×
×
  • Vytvořit...