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
  • Identifikace obchodů různých systémů v Interactive Brokers

    Aktivní obchodování je plné výzev. Zejména, pokud také budete obchodovat často. Jedním z hlavních úkolů je zpětně rozpoznat a analyzovat, které obchody patří do kterého obchodního systému/přístupu. A zde přichází na řadu v Interactive Brokers funkce Order Ref, která má několik svých specifik, se kterými je dobré počítat dopředu.

    Proč obchody identifikovat?

    Každý obchodník ví, jak rychle může být přehled o obchodech ztracen. O to více, pokud budete obchodovat aktivně a provádět například desítky obchodů týdně.

    Sám obchoduji portfolia mechanických obchodních systémů a zpětně je pro mě pochopitelně absolutně klíčové podrobně rekonstruovat, jak se každému ze systémů vedlo v živém obchodování a například porovnat jeho výkonnost s backtestem.

    Stejnou potřebu má více méně každý obchodník, který obchoduje podle nějakého obchodního plánu – ať již systematického nebo diskrečního.

    Úplně každý obchod, který do Interactive Brokers zadáváme, je tak dobré opatřit „štítkem“, který nám poslouží v jeho budoucí identifikaci. Osobně jako štítek používám jméno obchodního systému.

    Interactive Brokers říká takovému štítku „Order Ref“.

    Jedná se o referenční popisek, který můžeme přiřadit každému zadávanému příkazu, což nám zpětně po vyplnění obchodu umožní rychle a snadno identifikovat, k jakému obchodnímu systému obchod patří.

    Bohužel s Order Ref se v Interactive Brokers pojí několik specifik, které mohou začínající obchodníky překvapit. Tím největším je, že Order Ref je v platformě k dispozici prakticky jen sedm dnů! Samozřejmě platforma nabízí různé historické výpisy obchodů, kde můžeme obchody dohledat třeba několik let zpět, ale v těchto výpisech Order Ref není. Výpisy obsahují jen označení obchodovaných trhů, velikost pozice, směr obchodu, ale nikoliv Order Ref.

    To může nemile zaskočit každého, kdo se pustí do obchodování s tím, že analýzy systémů podle Order Ref provede později…

    Důležité

    Order Ref je potřeba nejen vyplňovat, ale také obchody s jejich identifikací průběžně ukládat.

    Pojďme ale popořadě.

    Vyplnění Order Ref

    V Interactive Brokers se Order Ref definuje jako součást obchodního příkazu. A to ať jej zadáváte automatizovaně přes API nebo ručně v TWS.

    Ručně lze zadat obchod v TWS mnoha způsoby. Například lze kliknout na ikonu Order, zadat obchodní příkaz a v sekci „Miscellanous“ vybrat Order Ref.

    Order Ref při zadávání obchodního příkazu v Interactive Brokers

    Jednou použité Order Ref se ukládá do seznamu. Ten se zobrazí po kliknutí na šipku rozbalovacího menu. Určitě je dobré pro jeden systém pracovat se stále stejným Order Ref.

    Pokud zadáváte obchodní příkazy v TWS často ručně, můžete si vytvořit pro každý systém záložku/stránku s tím, že příkazy zadávané v rámci takové stránky budou mít Order Ref předvyplněné. Takto si například vytvořím stránku TEST, kde všechny zadané příkazy budou mít Order Ref „TEST“:

    Order Ref můžeme definovat rovnou na stránce.

    Dobré mi také přijde zobrazovat Order Ref u všech zadaných příkazů. Můžete toho dosáhnout tak, že najedete do záhlaví tabulky, kliknete pravým tlačítkem myši, vyberete „Customize Layout“ a následně do Order Columns přidáte Order Ref (je třeba vyhledat v pravém sloupci v Available Columns):

    Přídání Order Ref coby sloupce do layoutu TWS

     Zobrazení Order Ref

    Nejsnadnější způsob, jak Order Ref u obchodů zobrazit, je podívat se do „Trade History“:

    image.png

    I zde můžeme kliknutím pravým tlačítkem myši do záhlaví tabulky definovat, jaké sloupce zobrazovat a Order Ref určitě chcete mít mezi viditelnými sloupci.

    V záhlaví okna se také volí, jak dlouhou historii obchodů chcete mít zobrazenou. Na screenshotu je „Last 7 Days“ – posledních 7 dnů, což je nejdelší možná historie.

    Delší historii obchodů lze získat už jen ve webové administraci Interactive Brokers v sekci reportů, zde již ale není Order Ref k dispozici.

    Ukládání dat s Order Ref

    Jelikož je identifikace obchodu s využitím Order Ref k dispozici skutečně jen velmi krátkou dobu, maximálně doporučuji tuto informaci průběžně ukládat.

    Ručně lze například jednou týdně exportovat data z výše uvedeného okna „Trades“ pomocí File > Export Displayed Reports, kdy se data uloží do csv. Csv data můžeme načíst do Excelu a zde je následně archivovat a analyzovat.

    Data lze stahovat i skripty.

    Takto například vypadá kompletní Python skript, který stáhne informace o exekucích (tedy i s Order Ref) a uloží je do csv:

    from ib_insync import IB, util
    import pandas as pd
    
    def stahnout_zaznamy_a_ulozit_do_csv():
        # Vytvoříme instanci IB a připojíme se k TWS nebo IB Gateway
        ib = IB()
        ib.connect('127.0.0.1', 7497, clientId=1)  # upravíme hosta a port podle našich potřeb
    
        # Získáme všechny záznamy o dokončených obchodech
        fills = ib.fills()
        
        # Převedeme záznamy na DataFrame
        df = util.df(fills)
        
        # Uložíme DataFrame do souboru CSV
        df.to_csv('fills.csv', index=False)
        
        # Odpojíme se od IB
        ib.disconnect()
        
        print("Záznamy jsme uložili do fills.csv!")
    
    if __name__ == "__main__":
        stahnout_zaznamy_a_ulozit_do_csv()

    Není to nic složitého a přesně takové jednoduché skripty jsou to, co mi v tradingu hodně pomáhá s efektivitou. Pokud hledáte asistenci s rozchozením podobné automatizace, pak doporučuji TechLab, kde se přesně podobným python skriptům věnujeme. Rozhodně to ušetří spoustu času. Nebo si pochopitelně můžete nainstalovat Python a začít se skripty tohoto typu experimentovat sami.

    Závěr

    Historii obchodů z brokerské platformy nezbytně potřebujeme pro průběžné vyhodnocování našeho živého obchodování a hledání cest, jak se posouvat kupředu. Hodně informací můžeme získat z exportů v podobě reportů na interactivebrokers.com. Ovšem tak potřebná informace, jako Order Ref sloužící k identifikaci obchodu v rámci našich systémů, zde zpětně k dispozici není. Je tak klíčové ji ukládat průběžně. Následně můžeme i plně automatizovaně vytvářet ze stažených dat například obchodní deník, ve kterém bude jasně rozlišené, jak se na celkové výkonnosti podílel který systém. Pokud ale tato data nebudeme mít uložená, rozdělení obchodů do jednotlivých systémů už reálně nikdy nedáme dohromady (při jen trochu větším počtu obchodů).

    30.8.2023

    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 3

    Sdílíme, co nám samotným funguje.
    7 výukových lekcí.

    Jak reálně uspět v tradingu?

    Naučte se vydělávat na své sny (naše metody na Finančník.cz)

    Praktický návod, jak v trzích získat šanci vydělávat stovky tisíc až miliony dolarů ročně bez vlastního kapitálu a nutností trávit denně hodiny před počítači (bez práce to ale nepůjde).

    >> Získat kurz zdarma <<

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

    Exekuce opcí v Interactive Brokers pomocí API

    V tomto článku na Finančníkovi popisuji důvody, proč se zajímám o obchodování breakoutů skrz opce. Technicky to přitom není příliš náročné. V dnešním tutoriálu ukazují základní kostru "jak na to".

    Celý tutoriál naleznete v TechLabu zde.

    Sierra Chart a obchodování u Interactive Brokers s daty od IQFeed

    Stále dostávám dotazy, jak používat najednou program Sierra Chart s brokerem Interactive Brokers a daty od IQFeed. Zde je konkrétní, aktualizovaný návod krok za krokem, jehož výsledkem je integrace IQFeed dat a obchodování z grafů do Interactive Brokers.
    Osobně jsem stále větším příznivce programu Sierra Chart pro jeho vysokou flexibilitu, rychlost a robustnost. Pravdou však zůstává, že to vše je vykoupeno na dnešní dobu občas trochu neintuitivním ovládáním, na které si uživatel musí zvyknout. Některé věci se v programu prostě dělají jinak, než byste čekali. Nicméně jakmile objevíte „jak na to“ zjistíte, že v programu lze najednou dělat často mnohem více, než v jiných sw podobné kategorie a navíc za zlomek jejich ceny.
    Jednou takovou kapitolou je současná práce s různými datafeedy a brokery. Standardně se připojení k datafeedu/brokeru nastavuje v programu v okně Global Settings > Data/Trade Service Settings. Ovšem zde je možnost vybrat jen jediného poskytovala dat. Co když však chcete využívat pro zobrazování jiná data, než na kterých budete obchodovat? Například zobrazovat grafy s pomocí dat od IQFeed, ale příkazy posílat k Interactive Brokers?
    Tutoriál pro nastavení současného propojení Sierra Chart s IQFeed a Interactive Brokers
    Řekněme, že budete chtít využívat program Sierra Chart způsobem, jakým s ním pracuji já - budete chtít do programu získávat data z nějakého externího datafeedu (osobně pracuji s IQFeed, někdo může chtít pracovat s bezplatnými daty od nějakého dalšího brokera atd) a obchodovat u brokera Interactive Brokers.
    Krok 1: Instalace dvou kopií Sierra Chart na jednom počítači
    Program Sierra Chart je možné instalovat na počítač v několika současných instalacích, které lze spouštět najednou a různě propojovat. Právě této vlastnosti se používá pro náš úkol. Standardně se Sierra Chart instaluje do adresáře SierraChart na disku C. Budete-li chtít instalovat další kopii programu, spusťte klasicky instalaci a jako cílový adresář zvolte jiný – např. SierraChart2. Po instalaci budete mít na ploše dvě ikony, kde každá spustí jinou instalaci programu. Jednotlivé instalace jsou na sobě nezávislé – tj. je třeba je nezávisle nastavit a taky průběžně upgradovat.
    Jedna instalace programu se v našem případě bude starat o stahování dat (tj. propojení s první datafeedem), druhá bude komunikovat s brokerem (v našem případě Interactive Brokes). Podle potřeb můžete pracovat na jednom počítači s libovolným počtem instalací programu Sierra Chart.
    Krok 2: Nastavení Sierra Chart pro data z IQFeed
    Spusťte první kopii Sierra Chart (dále Sierra Chart A) a nastavte ji pro stahování dat z vašeho datafeedu (u mě to znamená nastavení v Global Settings > Data/Trade Settings zvolení datafeedu DTN IQFeed s tím, že je samozřejmě možné vybrat kterýkoliv jiný z množství datafeedů, které SierraChart podporuje):

    Otevřete v Sierra Chart A grafy, se kterými budete pracovat. Může jít například o akciové indexy ES, FESX a DAX. Jelikož pracujeme s daty od IQFeed, můžeme rovnou načítat kontinuální kontraktní měsíce - tj. symboly @ES#, EX#, XG#.
    V Sierra Chart A nebudeme s grafy pracovat - jde jen o pomocnou instalaci, která se stará o načítání dat z IQFeed. Tj. grafy nemusí být jakkoliv naformátované. Stačí, když jsou zobrazené a aktualizované (tj. Sierra Chart musí být připojena k IQFeed). Jelikož stejnou konstelaci budete pravděpodobně otevírat často, doporučuji grafy uložit jako Chartbook. Chcete-li věci co nejvíce automatizovat, můžete si nastavit, aby se daný Chartbook automaticky otevřel při spuštění Sierra Chart. Konkrétně pro to slouží volba Global Settings > General Settings, kde si daný charbook vyberte mezi Files To Open On Startup:

    Budete-li mít v nastavení datového zdroje (Global Settings > Data/Trade Service Settings)zaškrtnutou volbu Connect on Program Startup, pak jediné co musíte pro spuštění dat z IQFeed udělat, je spustit tuto instalaci Sierra Chart.
    Krok 3: Nastavení Sierra Chart pro obchodování skrz Interactive Brokers
    Spusťte druhou kopii Sierra Chart, ze které chcete obchodovat (dále Sierra Chart B). V Global Settings > Data/Trade Settings nastavte druhý datafeed, v rámci kterého budete exekuovat příkazy (v mém případě Interactive Brokers):

    Propojte grafy mezi Sierra Chart A a B. Provádí se to přes volbu File > Open Remote Chart Data File (v instalaci Sierra Chart B - tj. v té napojené na Interactive Brokers) s tím, že volba otevře okno obsahující výběr trhů spuštěných v Sierra Chart A:

    Po jednom vyberte trhy, které chcete zobrazit v Sierra Chart B.
    Důležité!! Jelikož jednotlivé datafeedy pracují s různými označeními trhů, je nutné vždy ještě vyplnit správný ticker pro datafeed v programu Sierra Chart B (u trhů na kterých budeme obchodovat). Klikněte na graf a zvolte F5 (nebo Chart > Chart Settings). V záložce Main Settings je pak nutné vyplnit správný ticker pro použitý druhý datafeed do políčka Alternate Real-Time Update Symbol:

    Na screenshotu je vidět, že v poli Symbol mám uvedeno @ES# což je ticker pracující s datafeedem IQFeed (toto se automaticky načte z instalace Sierra Chart A). Do pole Alternate Real-Time Update Symbol jsem však musel doplnit ES-201209-GLOBEX, což je ticker pro aktuální kontrakt ES obchodovaný přes Interactive Brokers).
    Pochopitelně, že celé nastavení si poté opět uložíme jako hotový ChartBook a při příštím otevření Sierra Chart bude již vše připraveno.
    Krok 4: Obchodování ze Sierra Chart
    Následně se stačí připojit v Sierra Chart B k druhému datafeedu (F11 nebo File > Connect to Data Feed) a můžeme z programu Sierra Chart zadávat příkazy k danému brokerovi s tím, že data pro zobrazování grafů jsou použita z jiného datafeedu nebo od jiného brokera. Toto nastavení osobně používám z důvodu, že pro některé své studie používám ticková data, která nejsou u IB dostupná (IB poskytuje pouze tzv. snapshot data). Jiné využití může být pro obchodníky, kteří mají účet u několika brokerů a mohou tímto způsobem elegantně kombinovat několik datafeedů. Pochopitelně, že tato funkce je v menší nebo větší míře dostupná i u jiných programů (i když např. v případě NinjaTraderu je třeba ji v případě kombinace různých brokerů zaplatit skrz tzv. multibroker licenci a možnosti nejsou tak rozsáhlé jako u Sierry).
    V praxi tedy pracuji pouze s instalací "Sierra Chart B", ve které si nastavuji grafy a zadávám příkazy. Instalace "Sierra Chart A" běží v pozadí jen jako proces a samozřejmě je zcela minimalizovaná.
    Tutoriál pro obchodování z grafů z programu Sierra Chart naleznete na Finančníkovi v článku Obchodování z grafů v Sierra Chart.

    Praxe – levná směna korun na eura (a opačně) skrz IB

    Mnoho českých obchodníků pravidelně řeší různé směny korun za cizí měny a opačně. V dnešním článku si ukážeme, jak toto udělat velmi levně skrz Interactive Brokers. „Směna“ je on-line a získaný kurz lepší než na klasickém dealingu českých bank (na „běžné“ turistické kurzy nehledě).
    V tutoriálu si ukážeme, jak měnit české koruny na eura. Pochopitelně, že stejným způsobem lze měnit koruny na libovolné jiné měny, případně převádět zahraniční měny zpět na koruny. Směna není využitelná jen pro tradery, kteří si chtějí fundovat své účty a mají kapitál v českých korunách. Lze ji využít při podnikání (když potřebujeme výhodně měnit zahraniční měny) nebo i při různých zahraničních cestách. Úspory na získaném „lepším“ kurzu oproti klasickým směnárnám, ale i dealingům bank mohou být značné (pochopitelně konkrétně závisí na výši měněné částky, kde a jak je měníte). Návod je určen pro klienty brokera Interactive Brokers, u kterého s Tomášem obchodujeme, viz Otevření účtu u Interactive Brokers).
    Převod českých korun k Interactive Brokers
    Začněme tedy tím, že máme české koruny v některé české bance a chceme je převést na eura. Tyto prostředky je třeba levně převést k Interactive Brokers. Ten relativně nově podporuje práci s českými korunami a disponuje účtem v pražské pobočce HSBC. Převod CZK k IB se tedy provádí úplně normálním bankovním převodem v rámci České republiky a je za poplatek, který běžně platíte ve své bance za libovolný platební příkaz (tj. buď zdarma, nebo za několik málo Kč).
    Převod je třeba „nahlásit“ ve webové administraci Interactive Brokers. Konkrétně v záložce Funding > Fund Transfers > Deposit Funds. Zde je třeba vyplnit převáděnou částku a ideálně IBAN odesílající banky, aby broker mohl platbu dobře identifikovat. V currency vybereme „Czech Koruna“. Takto je například vypadá nahlášený převod 200 000 Kč z Raiffeisen banky:

    Interactive Brokers vám následně zobrazí instrukce k převodu částky na korunový účet u HSBC banky. Ve vaší bance stačí zadat běžný bankovní převod. IB standardně zobrazuje instrukce pro převod použitelné spíše pro mezinárodní převod, ale není problém použít například následující informace, které mám odzkoušené:
    Cílový účet: 1535303109/8150 (uvádím jen pro ilustraci, pochopitelně použijte účet, který vám IB zobrazí v instrukcích).
    Variabilní symbol: IB se nezmiňuje, sám používám číselnou část svého účtu (tj. čísla za písmenem „U“)
    Převod v měně: CZK
    Konstantní symbol: není nutné vyplňovat
    Zpráva pro příjemce: For further benefit UCET/JMENO
    Takto například vypadá předpřipravený příkaz k úhradě v Raiffeisen bance:

    Převod korun k Interactive Brokers probíhá v běžné pracovní dny přibližně do 24 hodin. Tj. například prostředky na screenshotu byly odeslány odpoledne, aby byly na finální účet u Interactive Brokers připsány druhý den dopoledne.
    Poplatek spojený s převodem se platí pouze české bance za běžný převod – u Raiffeisen banky jsou to např. 4 Kč, u jiných bank typu Fio je převod zdarma. U Interactive Brokers je připsání peněz bez poplatku (viz http://www.interactivebrokers.com/en/p.php?f=otherFees&p=deposit)
    O stavu převodu se můžeme u IB informovat v on-line managementu účtu. Konkrétně v záložce Funding > Transaction History > Cash Deposits. Takto vypadá informace, že peníze došly na účet:

    Vidíme, že prostředky v tomto případě došly na účet 29. 11. 2012 (IB vám potvrzení přijetí prostředků oznámí i e-mailem). Zároveň je zde uvedeno, že si je můžeme zaslat zpět nejdříve 4. 12. 2012. To znamená, že s českými korunami nyní můžeme pracovat – můžeme je převést na eura, můžeme je použít k obchodování, ale z účtu je můžeme vybrat až za několik dnů. Pochopitelně však, že pokud máte na účtu jiné prostředky a potřebujete si jen „převést koruny na eura“, tak můžete celou transakci provést během jednoho dne. Interactive Brokers vám bude jen jednoduše blokovat částku odpovídající tomuto konkrétnímu převodu (zde tedy 200 000 Kč) na svém účtu do data uvedeného ve sloupci „Available for Withdrawal“.
    Jakmile budete mít částku připsánu na svém účtu, uvidíte ji pochopitelně ve všech svých přehledech o stavu účtu. Tj. například skrz záložku „Account“ z TWS. Zde platforma funguje tak, že všechny souhrnné informace jsou zobrazovány v jedné primární měně, kterou si můžete zvolit ve webové administraci – například USD, EUR, CZK, nebo i další měny. Toto se nastavuje jednorázově skrz Manage Account > Settings > Configure Account > Base Currency.

    Tato volba nikdy nepřevádí žádné finance – pouze řídí, v jaké měně jsou zobrazovány výpisy a různé přehledy. Na účtu tak můžete mít vložené různé částky v různých měnách.
    Takto například bude vypadat výpis v záložce Account v případě, že máme na účtu finance v EUR, USD a nyní v CZK:

    Jednotlivé částky jsou na účtu oddělené s tím, že souhrny jsou uváděné v Base Currency. Tj. například uvidíme na účtu stav financí v CZK (na screenshotu je zaslaných 200 000 Kč), potom stav účtu v euro, dolarech a dalších měnách a pod tím budeme mít například součet Total uvedený v USD (které jsou na tomto účtu nastaveny jako „Base Currency“).
    Co se množství měn týče – v IB stačí mít jednu měnu, ale více měn nemusí být na škodu například z pohledu určité diverzifikace. Každopádně platí, že pokud například budete obchodovat americké akcie a nebudete mít na účtu dostatečné množství USD, IB zablokuje margin z CZK nebo jiné měny.
    V dokončení článku, které vyjde na Finančníkovi příští týden, si ukážeme, jak měny mezi sebou konvertovat. Tj. jak konkrétně převést zaslané CZK na EUR a jak si je poslat zpět na účet. Včetně uvedení všech poplatků, které jsou s podobnou transakcí spojené.
×
×
  • Vytvořit...