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.
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.
-
1