Využití časovaných příkazů v Interactive Brokers pro jednoduchou automatizaci
Časované příkazy v platformě Interactive Brokers (IB) představují velmi užitečný nástroj pro všechny, kteří chtějí provádět komplexnější systematické obchody, ale nechtějí, nebo nemohou mít neustále zapnutou obchodní platformu. Místo toho můžete příkazy zadat tak, aby byly spravovány přímo na serverech Interactive Brokers. Tím podstatně snižujete riziko technických výpadků a zároveň si můžete definovat přesné podmínky a časy, kdy se mají pozice otevřít nebo zavřít.
V tomto článku si představíme několik nejběžnějších typů tzv. „časovaných příkazů“ (timed orders), které sami na Finančníkovi používáme a které vám pomohou např. vstoupit na trh přesně po otevření, uzavřít všechny pozice na konci seance nebo obsluhovat strategii, která pracuje pouze v určitém čase během dne. Společně se podíváme na to, jak tyto příkazy používat a jak je prakticky využít i v pokročilejších strategiích typu intradenní breakout.
Obsah
Ukázka obsloužení intradenní breakout strategie skrz časované příkazy
Good After Time/Date (GAT)
Good Til Canceled (GTC)
Good Til Date/Time (GTD)
OPG – Market-on-Open (MOO) a Limit-on-Open (LOO)
MOC – Market on Close
LOC – Limit on Close
Bracket Orders a OCO/OCA
Využití časovaných příkazů k automatizaci obchodování
Ukázka obsloužení intradenní breakout strategie skrz časované příkazy
Začněme netradičně od konce. Popis jednotlivých typů příkazů může znít nudně až do chvíle, než si člověk uvědomí možnosti praktické aplikace.
Časované příkazy s příslušnými OCO a OCA vazbami lze reálně dobře použít pro obsloužení i kompletních intradenních strategií. Sám tuto funkcionalitu používám při obchodování Trading Room intradenního breakoutu.
Takovou strategii lze obchodovat manuálně s tím, že po otevření trhů stačí vytvořit příslušný komplexní příkaz z níže popsaných příkazů a jsem pro daný den hotový. Ručně lze obchodovat jeden trh - v případě intradenního breakoutu můžete pozornost zaměřit na futures Bitcoinu, který není tak efektivní jako ostatní trhy. Viz MBT futures coby jeden z nejlepších intradenních trhů pro malé účty?
Pokud začnete obchodovat více trhů najednou, jako to děláme v rámci tradingu na Finančníkovi, může ale takové zadávání být zbytečně časově náročné. A jako vždy, i zde si můžeme věci výrazně zjednodušit.
V rámci ročního předplatného Trading Room jsem nyní pro všechny členy nasdílel svůj skript, který na začátku dne vytvoří komplexní časované breakout příkazy zcela sám. V praxi takový skript dobře demonstruje, jak je možné efektivně časované příkazy v Interactive Brokers skládat dohromady. Podívejte se, jak to vypadá v praxi:
A nyní podrobně k samostatný použitým typům příkazů:
Good After Time/Date (GAT)
Co je GAT?
Good After Time (nebo Good After Date) je příkaz, který se stane aktivním až po určitém nadefinovaném čase a datu. Dokud tento okamžik nenastane, příkaz na serverech Interactive Brokers existuje, ale je v neaktivním (čekajícím) stavu. Ve chvíli, kdy dojde k danému okamžiku, se příkaz přepne do aktivního režimu a začne se chovat standardně podle typu (Limit, Market, Stop, Stop-Limit atd.).
Kdy GAT využít?
Intraday logika: Pokud například chcete vstoupit do obchodu až v 15:00 místního času, můžete zadat příkaz v klidu ráno s parametrem GAT, nastavit ho třeba na 14:59:59 a veškerou odpovědnost už nechat na serveru IB.
Výstup v určitý čas: GAT příkaz je také vhodný pro výstupy z pozic. Ty lze zadávat jako podmíněné příkazy (aktivní jen v momentě, kdy se vyplnil vstupní příkaz) s časováním například na konci dne. Můžeme nastavit GAT například pro příkaz typu MKT (market). Takový automaticky uzavře pozici v trhu v nastavený čas.
Good Til Canceled (GTC)
Co je GTC?
Good Til Canceled označuje příkaz, který zůstává v platnosti do okamžiku, než ho sami aktivně zrušíte. Na rozdíl od běžného denního příkazu (DAY), který na konci obchodní seance expiruje, GTC příkaz přetrvá i přes noc a je aktivní teoreticky neomezeně dlouho. Obvykle má Interactive Brokers nastavenou maximální platnost GTC kolem 90 dnů (může se mírně lišit dle regulací a typu produktu), ale obecně se jedná o „dlouhodobý“ příkaz.
Kdy GTC využít?
Dlouhodobé pozice: Pokud například chcete umístit nákupní limitní příkaz na akcii a čekat na vyplnění ceny, která může přijít až za několik týdnů, GTC vám zaručí, že příkaz zůstane aktivní i po zavření trhu každý den.
Stop-Lossy a Profit Targety: V systematickém obchodování je velmi běžné zadat GTC příkaz jako ochranný Stop-Loss nebo Profit Target. Nemusíte se starat o to, aby příkaz „přežil“ přes noc a bylo by třeba jej další den zadávat znovu.
Good Til Date/Time (GTD)
Co je GTD?
Good Til Date/Time je příkaz velmi podobný GTC, ovšem s tím rozdílem, že příkaz je platný pouze do konkrétního data či času, který si sami určíte. Pokud do daného okamžiku nedojde k vyplnění příkazu, příkaz automaticky expiruje a stornuje se.
Kdy GTD využít?
Chcete mít kontrolu nad platností: Pokud víte, že máte strategii, která má smysl jen například během dvou dnů, a potom se trh posune jinam, je GTD ideální.
Časování intradenních vstupů: GTD se dá dobře použít pro intradenní strategie. Pokud obchodujete například breakouty, patrně budete chtít vstupovat jen určitou dobu po otevření trhu. To přesně lze nastavit skrz GTD. Příkaz můžeme použít například tak, že se zruší, pokud ke vstupu nedojde do hodiny po otevření trhů.
OPG – Market-on-Open (MOO) a Limit-on-Open (LOO)
Co je OPG?
OPG (z anglického „Open Price Guarantee“ či obecněji „At the Open“) je typ příkazu, který je určen výhradně k provedení na otevření trhu. S OPG příkazem IB sdělujete, že chcete vstoupit nebo vystoupit hned na začátku obchodní seance.
MOO (Market-on-Open): Příkaz, který se exekvuje na tržní otevření za otevírací cenu. Jde de facto o časování MKT příkazu po otevření trhů. Jelikož ve většině trhů na americké burze neexistuje otevírací aukce, je jeho použití prakticky shodné s posláním MKT příkazu omezeného jen na hlavní seanci (takový příkaz bude také automaticky exekvován u Interactive Brokers až po otevření trhů).
LOO (Limit-on-Open): Obdoba s Limitní cenou – příkaz se provede na otevření, ovšem pouze pokud lze dodržet zadanou limitní cenu (či lepší).
Kdy OPG využít?
Strategie založené na otevírací ceně: Pokud vaše strategie říká, že vstupujete přesně na open (např. proto, že backtest ukázal na nejlepší parametry vstupu), MOO/LOO je jasná volba.
Pro nastavení v TWS zvolíte u typu příkazu „MKT“ (nebo „LMT“) a jako „Time in Force“ zvolíte OPG. Pokud chcete limitní cenu, zadáte ji do pole LMT Price a ponecháte Time in Force = OPG.
MOC – Market on Close
Co je MOC?
MOC (Market on Close) je obdoba Market on Open, ale pro konec obchodní seance. Pomocí MOC příkazu IB ví, že chcete svou pozici uzavřít (nebo otevřít, ale standardně se MOC používá spíše k uzavírání) právě za závěrečnou cenu daného trhu.
MOC příkazy dávají velký smysl při obchodování například akcií, kde existují uzavírací aukce. Reálně tak získáme plnění shodné s hodnotou, kterou vidíme jako uzavírací cenu na denních grafech.
Kdy MOC využít?
Zajištění uzavření pozic před koncem seance: Obchodníci, kteří přes noc nechtějí držet otevřené pozice, ale zároveň nemají kapacitu sledovat trh až do close, použijí MOC.
LOC – Limit on Close
Co je LOC?
LOC (Limit on Close) funguje velmi podobně jako MOC, ale přidáváte limitní cenu. Znamená to, že pokud není možné při zavření trhu tuto limitní cenu (nebo lepší) dosáhnout, příkaz se exekvovat nebude. V praxi to často znamená, že pokud je limitní cena příliš mimo závěrečnou cenu, příkaz se neuskuteční.
Kdy LOC využít?
Přesněji definované výstupy: MOC se provede, i pokud závěrečná cena bude horší, než jste čekali. Pokud chcete mít kontrolu nad tím, že prodáte jenom nad určitou cenou (nebo nakoupíte jen pod určitou cenou), je LOC vhodnější.
Bracket Orders a OCO/OCA
Co jsou Bracket Orders?
Všechny příkazy, i ty s časováním, lze u Interactive Brokers kombinovat do „sad příkazů“, kterým se říká bracket. V rámci bracket příkazu lze pak nastavovat závislosti – například že se Stop-Loss aktivuje až po vyplnění vstupního příkazu, že se Profit Target zruší po zasažení Stop-Lossu a podobně.
Typicky bracket příkaz představuje sadu tří příkazů:
Vstupní příkaz – může být typu Market, Limit, Stop atd.
Profit Target – typicky Limit, který se aktivuje automaticky po vyplnění vstupního příkazu.
Stop-Loss – ochranný příkaz, který se taktéž aktivuje po vyplnění vstupního příkazu.
Aby bracket příkazy fungovaly jak mají, lze mezi příkazy definovat vazby:
OCO (One Cancels the Other): Příkazy ve skupině OCO se vzájemně ruší. Typické využití je právě pro Profit Target a Stop-Loss – jakmile jeden z nich dojde k naplnění, druhý se ruší.
OCA (One Cancels All): Podobný koncept, ale může se jednat o skupinu více příkazů najednou.
Kdy tyto příkazy využít?
Komplexní řízení pozice: Pokud máme přesně daný vstup, Profit Target a Stop-Loss, je užitečné mít vše nastavené dopředu a nečekat na manuální zadávání. Jde tedy o praktickou formu „poloviční automatizace“ – zadáme veškeré podmínky najednou a zbytek řeší Interactive Brokers samo (dokonce i přes noc a v době, kdy máme platformu vypnutou).
Využití časovaných příkazů k automatizaci obchodování
Všechny výše uvedené typy příkazů lze kombinovat a vytvářet tak opravdu sofistikované scénáře. Jelikož jsou všechny zmíněné příkazy a vazby uloženy přímo na serverech Interactive Brokers, není nutné, abychom po zadání příkazů měli zapnutý počítač nebo platformu Interactive Brokers. To přináší obrovské výhody:
Eliminace technických problémů: Pokud během dne spadne internet, počítač či VPS server, příkazy zadané jako GAT, GTC, GTD, OCO, OCA, OPG, MOC nebo LOC zůstávají „v bezpečí“ na serverech IB.
Možnost definovat časové strategie bez nutnosti běžících skriptů: Dopředu můžeme nastavit logiku typu „v 9:30 (open) vstoupím do pozice, v 10:15 chci aktivovat Stop-Loss, a pokud se do 15:00 pozice nedostane do zisku, vystupuji MOC“.
Jednoduché obsloužení více trhů najednou: Při obchodování více trhů může být manuální sledování a zadávání příkazů náročné. S časovanými příkazy to lze zvládnout mnohem přehledněji a s menší chybovostí.
Závěr
Časované příkazy v Interactive Brokers (GAT, GTC, GTD, OCO, Bracket Orders, OPG, MOC, LOC a jejich různé kombinace) umožňují velmi efektivně a přitom poměrně jednoduše automatizovat i pokročilejší obchodní strategie. Jejich hlavní přínos je v tom, že jakmile příkaz jednou odešlete na server IB, není nutné udržovat stabilní připojení nebo mít neustále puštěnou obchodní platformu. To je klíčové pro každého, kdo si chce s klidnou hlavou nastavit své obchodní příkazy předem a poté se spolehnout, že obchod proběhne podle plánu.
Jízda na dlouhém chvostu
Některé strategie mají vysokou úspěšnost, jiné profitují z tzv. dlouhých chvostů. Oba typy dokáží solidně vydělávat, ale nesmíme jim stát v cestě.
Obsah:
Co je to dlouhý chvost?
Příklad strategie s dlouhým chvostem
Jízda na dlouhém chvostu je výdělečná, ale psychicky náročná
Odstřižení dlouhého chvostu
Systematičnost je u obchodů na chvostu základem
100 % zhodnocení za rok z jízdy na chvostu?
Co je to dlouhý chvost?
Dlouhý chvost (někdy také dlouhý ocas z anglického termínu "long tail") se v kontextu tradingu vztahuje k situacím, kde méně běžné, ale potenciálně velmi ziskové obchodní příležitosti tvoří značný díl celkového zisku. Tento termín, odvozený z teorie pravděpodobnosti, odkazuje na "dlouhé chvosty" distribucí pravděpodobnosti, kde extrémní, i když málo pravděpodobné hodnoty, mohou mít významný dopad na celkové výsledky.
Strategie využívající dlouhé chvosty vyžadují trpělivost a striktní risk management. Obchodníci musí být připraveni na delší období ztrátových obchodů s menšími ztrátami, které jsou kompenzovány občasnými výraznějšími zisky. Typickou strategií s takovýmto rizikovým profilem je trend following. Trendoví obchodníci se snaží zachytit mnoho potenciálních trendů, avšak většina z nich končí stop-lossem, aniž by se trh skutečně rozjel. Klíčové je v těchto situacích vytrvat v obchodu co nejdéle, pokud se trh skutečně rozjede. Psychická odolnost je zde nezbytná, protože po sérii ztrát mají méně zkušení obchodníci tendenci zisky vybírat předčasně, což může přeměnit ziskovou strategii na ztrátovou.
Příklad strategie s dlouhým chvostem
Konkrétním příkladem strategie s dlouhým chvostem, kterou obchodujeme na Finančníkovi, je intradenní breakout. Strategie je popsána například zde: Intradenní breakout model.
Risk management strategie je poměrně jednoduchý. Základní model publikovaný v Trading Room (kód je zde) říká: při průrazu příslušné breakout úrovně vstup do směru průlomu. Riskuj 300 dolarů, drž pozici do konce obchodního dne.
Při aplikaci sdíleného kódu na trhy QQQ a SPY (bez jakýchkoliv úprav ) vypadá výkonnostní křivka strategie následovně (komise jsou započítány):
Strategie má historicky tendenci hezky vydělávat, co ale není patrné na první pohled, je způsob distribuce profitů a ztrát. Ta vypadá následovně:
Vidíme, že velké množství obchodů končí na stop-lossu 300 dolarů. Některé obchody mají ještě nepatrně větší ztrátu (jde o otázku zaokrouhlení kontraktů a skluzu v plnění). Řada obchodů pak končí v rozmezí cca -250 dolarů až 500 dolarů. Pak je zde ale několik obchodů, které vytvořily výrazný profit. Právě to jsou ty tzv. „long tail“ obchody. Obchody na dlouhém chvostu.
Jízda na dlouhém chvostu je výdělečná, ale psychicky náročná
Jak si ukážeme dále, výjimečně ziskové obchody jsou pro strategii klíčové. Jejich zobchodování může být ale zejména pro začínající obchodníky psychicky náročné a frustrující.
Pokud chceme, aby byl obchod výjimečně ziskový, musíme chytnout potřebný pohyb v trhu v jeho zárodku a do obchodu nezasahovat. To současně znamená, že budeme čelit mnoha situacím, kdy se obchod rozjede, my máme otevřený pěkný profit, abychom jej před finálním výstupem na konci dne např. celý odevzdali zpět do trhu.
Toto se ale nedá obejít. Chceme-li obchody z oblasti dlouhého chvostu inkasovat, musíme dát obchodu prostor. Ziskové obchody skutečně potřebují čas. Takto vypadá distribuce zisků a ztrát z našeho intradenního systému v závislosti na čase v obchodu:
Graf ukazuje, že nejziskovější obchody patří mezi ty, které byly otevřeny nejdéle.
Odstřižení dlouhého chvostu
Přirozenou tendencí obchodníků limitovat psychologickou nepohodu z příliš velkého otevřeného profitu může být aplikování různých pravidel vedoucích k předčasnému vybírání zisků. Například agresivnější posouvání stop-lossu nebo vybírání zisků na profit targetech. Velmi často ale mohou podobné úpravy strategii spíše výrazně uškodit, než ji vylepšit. Samozřejmě nelze hovořit univerzálně a konkrétní dopady je dobré vždy ověřit na vlastních backtestech.
Zde je ukázka dopadu odstřižení dlouhého chvostu na diskutovaném intradenním breakoutu. Ten v Trading Room obchodujeme na různých trzích, protože trhy typu QQQ a SPY nejsou běžně dostupné na EU retailových účtech.
Jedním ze způsobu konkrétní exekuce jsou 0TDE opce, které lze bez omezení obchodovat i na malých účtech – viz Day trading breakoutů s 0TDE opcemi – extra páka s limitovaným riskem. U 0TDE opcí pracujeme s debetními strategiemi a o to větší pohyb v breakoutu potřebujeme.
Takto vypadá hrubý opční backtest se započítanými realistickými komisemi a skluzy v plnění v případě, že opce je otevírána na breakoutu a pozice držena až do finálního výstupu:
Jde o portfolio složené z trhů QQQ a SPY. Backtest indikuje zhodnocení 120 % ročně při drawdownu -16,8 %. Risk 3 % účtu na opci.
Jak hodně jsou opční výsledky závislé na několika málo výjimečných profitech? Můžeme udělat backtest, kdy ziskové pozice uzavíráme na 200 % profitu:
Byť by se mohlo zdát, že takový přístup bude dávat smysl, backtest hovoří opačně. Naše průměrné zhodnocení kleslo na polovinu.
Systematičnost je u obchodů na chvostu základem
Strategie zachytávající v trzích momentum budou mít vždy charakteristiku popisovanou v dnešním článku. Budeme mít množství ztrát, které nám ale bohatě zaplatí občasné větší profity. Klíčovým faktorem pro profitabilitu v podobných strategií je tak systematičnost. To nejhorší, co se nám může stát je, že vynecháme jeden obchodní den, který by nám zrovna nadělil ten největší zisk za poslední měsíce.
Osobně tak podobné strategie automatizuji. Obchodování skrz skripty výrazně snižuje šanci, že mi nějaký výrazný obchod uteče. A také se hodně snižuje psychická náročnost obchodování v období ztrát.
100% zhodnocení za rok z jízdy na chvostu?
Mimochodem – je vlastně realistické zhodnocení přes 100 %, které v 0TDE opcích indikuje výše uvedený backtest? Upřímně zatím netuším, ale rozhodně mě výsledky testování v rámci Trading Room motivovaly na tolik, abych do podobné strategie vložil své peníze.
Strategii jsem pustil v polovině května a zatím nebyla v trhu příležitost pro žádný skutečně mimořádný zisk. Inkasuji tak zisky v kategorii RRR (risk:reward) maximálně kolem cca 1:2.5. Přesto mám za cca 2,5 měsíce na účtu zhodnocení +12,5 %. Takto vypadá stav mého živého účtu, který mám pro strategii vyčleněný:
Takže ano, zatím vnímám, že hodně nadstandardní zhodnocení je reálné. Risk je ve strategii naprosto jednoznačně definován (nemohu ztratit více, než za kolik debetní pozici otevřu) a zisk je neomezen. Je ale důležité neodstřihávat obchody na chvostu a číhat s autotraderem v trzích na příležitost každý den.
Chcete získávat s automatizovaným 0TDE systémem také vlastní zkušenosti z jízdy na dlouhém chvostu?
Zapojte se do Trading Room a využijte následující odkazy:
Výuka systematické obchodování opcí
Hotový opční autotrader (ve zcela otevřené podobě, určený pro Interactive Brokers) včetně výše backtestované strategie.