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
  • GSB – automatizovaná cesta pro zkoumání trhů a vytváření obchodních systémů

    Dnešní trhy vyžadují zejména na nižších timeframe průběžné zkoumání širších souvislostí toho, co v nich funguje a co už nikoliv. Což je dost práce, kterou je dobré maximálně zefektivňovat použitím různých nástrojů. Těch existuje celá řada, ale ne všechny stojí za námahu. Jednou z výjimek, která mě poslední dobou oslovila, je program GSB.

    Co je horší – snažit se slepě obchodovat systémy vytvořené tvrdým dataminingem, nebo mysl zabetonovat používáním starých přístupů? Těžko říci, ale z mé zkušenosti nepovede ani jedna z uvedených cest k dlouhodobým profitům.

    Agresivní dolování dat (datamining), kdy trader neustále prochází stejná historická data, až nalezne obchodní systém s parametry, které hledá, vede k obchodování přeoptimalizovaných systémů, které na nových datech nevydělávají. Používání starých a obecně známých přístupů sice může vést k systémům založených na smysluplných a ověřených principech, ovšem ani ty s velkou pravděpodobností nebudou zejména na nižších timeframe dnes již vydělávat. Jednoduše proto, že popisovaná tržní neefektivita z trhů vymizela tím, jak ji v průběhu času obchodovalo velké množství traderů.

    Je potřeba jít určitou střední cestou. Vycházet z ověřitelných a vysvětlitelných myšlenek a na nich se nebát stavět nové a inovované obchodní přístupy.

    Sám rád ve svém obchodování vycházím z „idea first“ přístupu, kdy systémy stavím na pro mě srozumitelné a odůvodnitelné hypotéze, proč by profitabilita daného přístupu měla v trzích vydržet. Současně si ale rád pomáhám automatizovaným prohledáváním ideálního kontextu, ve kterém základní myšlenka dnes funguje nejlépe (viz workflow Fcontext diskutované v AOS kurzu). Podobný přístup mi pomáhá objevit souvislosti, které není možné v rozumném čase otestovat ručně.

    Proto mě velmi potěšilo, že jsem objevil program Genetic System Builder (GSB), jehož autor, trader Peter Zwag, vyvíjí software, který se v řadě ohledech zaměřuje v trzích na řešení podobných problémů, které jsou i pro mě důležité.

    Řekne-li se genetická stavba obchodních systémů, patrně vás, stejně jako mě, napadne tradiční software pro „datamining“. Dnes existuje spousta programů umožňujících procházet historická data a, zjednodušeně řečeno na nich automatizovaně testovat různé kombinace indikátorů a cenových patternů za cílem získat obchodní systém (AOS). Jak jsem předeslal, jsem vůči podobným cestám poměrně skeptický. Bohužel často podobné softwary najdou to, co chce obchodník najít. Tedy systém s hezkými historickými výsledky včetně krásných ověření na OOS datech, která se prostě vyberou z tisíců a tisíců možných systémů, které systém vygeneruje.

    Proč se mi pak líbí GSB? Protože přes svůj název není program zaměřen jen na genetické vytváření systémů. Jeho silnou stránkou je analytické zkoumání širšího kontextu toho, co v trhu funguje a co nikoliv. A teprve do tohoto kontextu pak můžeme více či méně automatizovaně vytvořit obchodní systém. Tato filosofie hodně resonuje s tím, co při vývoji systémů sám vnímám za důležité a celkově je na programu vidět, že jej tvoří zkušený trader vycházející z vlastní praxe systematického obchodování (výsledky Petera jsou mj. ověřené například v časopise Futures Truth, kde sledují a porovnávají automaticky obchodované systematické strategie).

    Popsat konkrétní funkcionalitu GSB není úplně jednoduché, protože program toho umí opravdu hodně. A co především – je neustále rozšiřován (opravdu velmi aktivně). Je na něm skutečně znát, že je autorem využíván pro vlastní trading a analýzy trhu. Podrobnější představu o způsobu využití programu můžeme získat z těchto anglických videí (do fóra je nezbytná bezplatná registrace), program je pak možné vyzkoušet ve 14denní plně funkční demoverzi, kterou naleznete zde.

    Co tedy umí GSB ve zkratce?

    Jako kterýkoliv program na automatizované vytváření obchodních systémů umí GSB vzít jako vstup například 30minutová data trhu e-mini S&P 500 (ES) a zkoušet na jejich historii vytvořit obchodní systém složený z různých indikátorů a jejich parametrů. Co se mi líbí na GSB je skutečnost, že už tato část je dotažena nad rámec toho, co se nabízí jinde. Je možné pracovat s pokročilými fitness funkcemi ovlivňujícími výsledek vytvářených systémů, systémy automaticky verifikovat na vybraných dalších trzích a timeframe a následně je verifikovat pomocí WFO. Dále lze automaticky vytvářet systémy s využitím více trhů či timeframe, vybírat použité indikátory, aplikovat různé stop-lossy, výstupy atd.

    Řadu zmíněných funkcí nabízí i jiné podobné programy, byť si myslím, že GSB hezky integruje podstatné funkce, které v této oblasti trader potřebuje.

    V čem GSB z mého pohledu exceluje, je rychlost a výkon. A to je v této oblasti prakticky to nejdůležitější.

    Samotný GSB pracuje svižně. Můžeme jej spouštět jako klasickou desktopovou aplikaci, kde pochopitelně výkon nejvíce záleží na parametrech samotného použitého hardwaru. A ten je vždy omezený, i když zvolíme výkonnější hardware. Jako opravdu dobrý a promyšlený krok tak hodnotím skutečnost, že GSB umí pracovat coby cloudové řešení. V tomto případě nastavujeme testované analýzy v tzv. Managerech, které následně spouští Workery – instance zpracovávající výpočty. Ty mohou být na stejném počítači, na jiných našich počítačích nebo v cloudu – na cizích počítačích.

    Jako cloud přitom mohou sloužit i počítače ostatních uživatelů GSB (lze nastavit, jestli se do cloudu chceme zapojit či nikoliv). Toto provedení mi přijde jako opravdu dobré. Většinou se podobné programy instalují na servery, které běží nonstop (sám si řešení pronajímám, viz popis zde). Spotřeba elektřiny i odpisy hardwaru jsou v takovém případě započteny do ceny nájmu a je úplně jedno, jestli servery běží naprázdno nebo jsou plně vytíženy. V době, kdy doběhnou testy, tak dává naprostý smysl sdílet výkon s ostatními. Jakmile pak sám potřebuji skokový výkon a jsou volné servery ostatních, získávám násobně vyšší výkon, který by mne stál v pronájmu vlastních serverů opravdu hodně peněz. Samozřejmě sdílený výkon se liší v čase a nejvíce závisí na tom, jestli své servery využívá tvůrce programu Peter. Nicméně vesměs získávám s GSB běžně dvoj až trojnásobek výpočetního výkonu, než který mi poskytují vlastní servery. Což je u podobného řešení nezanedbatelná výhoda. V každém případě Peter slibuje, že uživatel vždy získá alespoň jednoho cloudového workera zdarma, což už samo o sobě může pomoci pohnout s výpočty.

    2019-03-01_0-19-12.jpg

    Ukázka prostředí GSB. Vpravo je vidět, že výpočet probíhá na celkem 30 workerech. Přitom jen 5 jich běží na mém vlastním hardwaru. Ostatní jsem v daném okamžiku využil bezplatně, což samozřejmě výrazně zvyšuje efektivitu celého výpočetního procesu.

    Dobré je, že Peter poskytuje k celému řešení bezplatně samostatný software Resource Manager umožňující výkon řídit – můžeme si například nastavit prioritu, se kterou se budou spouštět vlastní workery (a ostatní budou zastaveny). Sdílení výkonu pak probíhá naprosto automaticky.

    2019-03-01_0-31-51.jpg

    V Resource Manager mám nadefinované dvě skupiny první jsou mí vlastní workeři. Ti mají přednost a běží v momentě, kdy s programem pracuji. V druhém řádku jsou potenciální workeři z cloudu, kteří se spustí v okamžiku, kdy server není vytížen.

    Právě zmíněná cloudová funkcionalita posouvá GSB k možnostem, které jsem jinde nenašel (v dané cenové kategorii). Vysoký dostupný výkon mi coby traderovi poskytuje analytické možnosti zmíněné na začátku článku.

    Efektivně dovoluje zjišťovat, co na daném trhu funguje a co ne. Tak, že vygenerujeme statisticky relevantní počet, například několik desítek tisíc systémů a vyhodnocujeme různé celkové degradace systémů v out of sample datech. Nezaměřujeme se na jeden systém, ale na statistický vzorek. Můžeme například snadno porovnat OOS degradaci 10 000 vytvořených systémů z ověřování na jiném trhu a bez tohoto ověřování. Snadno tak zjistíme, jestli daný prvek ověřování skutečně celkově pomáhá na daném timeframe vytvářet robustnější systémy či to byla jen záležitost u několika málo systémů.

    Jistě, spousta uvedeného lze provádět v jiných softwarech. Ostatně sám jsem některé podobné principy testoval v Amibrokeru s pomocí OLE automatizace. Ale právě s využitím cloudového výkonu je toto opravdu práce na jiné úrovni.

    I díky tomu, že program umožňuje některé chytré analýzy, které jsem zatím v jiných programech neviděl.

    Především způsob definování in-sample a out of sample dat, pomocí kterých je možné sledovat degradaci systému v rámci učení (in-sample data) a testování (out of sample data). Tradičně se dělí data trhu například v poměru 60 % IS a 40 % OOS (nebo podobně, podle osobní preference). Jenže to s sebou nese problém, že daná testovaná období trhu se mohou velmi lišit svým charakterem. Proto se mi velmi líbí myšlenka používat jako OOS data každý druhý den či každý druhý měsíc a podobně. Systémy pak učíme na celém období dat (kdy software vidí například každou druhou úsečku) a testujeme na druhé části úseček. Do vývoje systému pak zahrnujeme všechny zásadní fáze trhu a vyhodnocení na OOS bude mít více vypovídající hodnotu. V GSB lze toto přitom nastavovat velmi flexibilně.

    gsb-wf.jpg

    Silnou stránku GSB vnímám v jeho komplexnosti, která je využitelná v praxi právě i díky cloudovému výkonu. V řadě programů lze provádět například walk forward testování (wf) a GSB není výjimkou. Ale kdo někdy wf prováděl, jistě může potvrdit, že tyto testy vyžadují hodně výkonu a tedy času, pokud vše probíhá na jednom počítači. V GSB lze i walk forward provádět pomocí workerů (tedy v cloudu) a reálně lze propočítat vyšší stovky wf na intradenních systémech za den. Na cloudu lze nechat i automatické ověřování systémů na jiných trzích/timeframe a následně jen ve statistikách sledovat, jak si systém vedl na zvolených trzích/timeframe určených pro validaci. Výsledkem je pak podobný přehled, kde můžeme na jednom místě vidět, jak stabilní jsou výsledky. Lze sledovat stabilitu výsledku na ověřovaných jiných trzích a timeframe, ale i stabilitu výsledků z pohledu použitých parametrů. V tomto ohledu se mi moc líbí Peterův parametr stability umožňující vybírat ty systémy, jejichž parametry se v průběhu času nemění (a existuje tak vyšší šance, že v live tradingu bude systém robustnější).

    Generované systémy lze z GSB rovnou přenášet v hotovém kódu do TradeStation.

    GSB toho skutečně umí hodně, byť je to pochopitelně opět jen software – nástroj, jehož výsledky budou do velké míry záležet na jeho použití. Určitě nejde o software typu „zapni“ a po x minutách získáš systémy připravené k živému obchodování. Naopak. Jde o nástroj poskytující různé analýzy, nad kterými je třeba přemýšlet a trávit čas. A teprve následně výsledek práce použít k vytvoření obchodovaného modelu. Který by ale měl mít vyšší šance na robustní výkonnost v živých trzích.

    V každém případě doporučuji shlédnout Peterova videa popisující metodologii s jakou trhy testuje.  A případně prozkoumat zkušební verzi programu. Už i to může přinést do vašeho vývoje strategií nové podněty a zajímavé inspirace. Té nabízí GSB dost. A byť software stojí 1 500 dolarů, jde z mého pohledu o smysluplné řešení v této silně konkurenční oblasti.

    17.3.2019

    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 1

    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

    Track 'n Trade Pro 4.0

    Track 'n Trade Pro 4.0 společnosti Gecko Software je zástupcem klasického software pro technické analýzy komodit a opcí. Silnou devizou programu je jeho přehlednost a intuitivnost, která jej předurčuje pro začínající či mírně pokročilé obchodníky.

    Screenshot obrazovky programu zobrazující graf prosincového kontraktu britské libry. Mj. je na grafu vidět období FND (First Notice Day - zobrazeno modře) a LND (Last Notice Day - zobrazeno červeně), tj. den, kdy se kontrakt přestává obchodovat. Klikněte pro plné rozlišení obrázku.
    Zakladní představení
    Track 'n Trade Pro 4.0 slouží pro grafické znázornění cenového průběhu nejběžněji obchodovaných komodit. Program pracuje s denními daty (tzv. End Of Day market data), které graficky znázorňuje pomocí denních, týdenních a měsíčních grafů. Grafy umí TNT zobrazovat ve všech běžných formách - jako čárový graf (zobrazující Open, High, Low, Close), candlestick i v různých alternativách čárového grafu (zobrazující pouze High, Low Close nebo pouze Close).
    Nástroje pro technickou analýzu
    Silnou stránkou programu je podle našeho názoru především množství dostupných nástrojů současně s velmi přehledným prostředím a intuitivním ovládáním. Nástroje pro technickou analýzu jsou dostupné přes dva dokovatelné panely ikon standardně umístěné nad grafem příslušné komodity.

    Panel "Charting tools" obsahuje všechny běžné základní nástroje technické analýzy jako je například kreslení trendových čar, 1-2-3 formací, formací "head and shoulders", různých kanálů, trojúhelníků atd. Popisu jednotlivých nástrojů se budeme na Finančníkovi věnovat v jiných článcích, protože každý jednotlivý nástroj vydá většinou na dlouhý seriál, ne-li samostatnou publikaci.

    Panel "Advanced Tools" pak obsahuje další sadu technických nástrojů, většinou vnímaných jako "pokročilejší". Jde např. o elliotovy vlny, různé fibonacciho nástroje a další.
    Stručně řečeno - v oblasti nástrojů pro technickou analýzu obsahuje program vše, co může začínající či lehce pokročilý technický obchodník požadovat. Na rozdíl od jiných nástrojů jsou v ceně programu všechny i pokročilé nástroje jako fibonacci time zones aj.
    Používání jednotlivých nástrojů je velmi snadné. Po zvolení nástroje se myší klikne do grafů a podle konkrétního nástroje se například tahem aplikuje konkrétní technická formace, kterou lze později myší upravovat podle potřeb obchodníka. S uložením grafu se pochopitelně uloží i formace a ke grafům se obchodník může kdykoliv v budoucnu vrátit.

    Na grafu je vidět, jak snadno a vizuálně přehledně lze na graf aplikovat jednotlivé technické nástroje.
    Anotační nástroje

    Pomůcky pro technickou analýzu doplňuje paleta anotačních nástrojů. S jejich pomocí lze grafy popisovat, označovat a zvýrazňovat zajímavé části grafů, které by později neměly uniknout naší pozornosti.
    Indikátory
    Žádnému nástroji pro technickou analýzu trhu nemohou chybět indikátory - nástroje vizualizující různé jednoduché i složitější matematické vzorce. Jak píšeme v našem manuálu v kapitole věnující se technické analýze - indikátory mohou být součástí řady obchodních strategií. Indikátorů dnes existuje bezpočet (každý výpočet lze vizualizovat do podoby indikátorů), a tak je dobře, že v TNT jsou obsaženy pouze ty nejzákladnější. Mimochodem - verze 4 byla vylepšena tím, že některé méně používané indikátory byly z programu vypuštěny. To je podle našeho názoru pouze dobře - zejména začínající obchodníci mohou v indikátorech hledat zlatý grál, kterými nejsou. Indikátory představují pouze matematické vzorce a v obchodování je třeba je používat s rozvahou a většinou pouze jako podpůrné nástroje např. potvrzující základní technické formace.

    Graf cukru se zapnutými dvěma indikátory - Donchian Channels zobrazený přímo v grafu a Commodity Channel Index zobrazený v okně pod grafem jehož nákupní a prodejní signály jsou zobrazeny v grafu formou šipiček.
    Indikátory, které naleznete v TNT 4 jsou Moving Averages, MACD, 10x8, 3x3, Williams %R, Fast & Slow Stochastics, Williams Accumulation/Distribution, Momentum, MOMMA, DMI, Commodity Channel Index, Bollinger Bands, Donchian Channels, Parabolic SAR, Historic Volatility, Relative Strength Index, Pivot Points, Volume, and Open Interest. Opět si zde nebudeme vysvětlovat funkce jednotlivých indikátorů, protože jde o standardní výpočty a na stránkách serveru se věnujeme jednotlivým indikátorům samostatně.
    Indikátory se v programu zobrazují v okně pod hlavním grafem. Novinkou čtvrté verze programu je možnost zobrazit libovolnou kombinaci indikátorů najednou. Klouzavé průměry (Moving Averages), Bollinger Bands, Donchian Channels, Parabolic SAR a Pivot Points se zobrazují přímo v grafu konkrétní komodity.
    Indikátory zpravidla fungují tak, že se nákupní/prodejní signál generuje např. překřížením různých křivek či překročením určité prahové hodnoty. Na to začátečníci nemají samozřejmě vycvičené oko a indikátory jim tak mohou přijít zbytečně složité. Zajímavou novinkou v tomto směru je tak funkce vizualizace nákupních/prodejních signálů přímo v grafu komodity různými šipkami.

    Všechny indikátory lze podrobně nastavovat v preferencích. To je velmi důležitá vlastnost - každý by si měl uvědomit, že přednastavené hodnoty nejsou žádné fungující dogma - naopak jde často o údaje, které tam vložil "programátor". A jaké hodnoty konkrétně používat? To je už na každém obchodníkovi, aby si našel kombinaci, která jemu osobně bude nejvíce vyhovovat.
    Finanční kalkulátory

    Dollar Calcular - triviální, ale velmi užitečná funkce umožňující i nezkušenému obchodníku přesně interpretovat finanční dolarové hodnoty pohybů. Šipičky na grafu jsou opět generovány indexem Commodity Channel Index, čáry představují klouzavé průměry Donchian Channels
    Na první pohled naprosto banální funkce, které však potěší každého začínajícího obchodníka. Finanční kalkulátory snadno spočítají rozdíl mezi dvěmi body grafu - funkce, která není obvyklá ani ve výrazně dražších programech. V programu je dále implementovaná funkce Risk/Reward Calculator umožňující vizuálně kalkulovat potenciální zisk.
    Data
    Samotný program se dodává již s 25ti letou historií všech hlavních komoditních trhů a tedy ideálním nástrojem pro trénink vlastních obchodních strategií. TNT je po této stránce dobře navržené - v programu existuje nástroj i pro "krokování" trhů po jednotlivých dnech. Během jednoho odpoledne si tak můžete "den po dnu" projít řadu trhů a v podstatě v reálných podmínkách simulovat, jak byste se v dané situaci rozhodovali.
    Pluginy
    Funkčnost TNT lze rozšířit několika hodně zajímavými pluginy, kterým se budeme na našich stránkách věnovat podrobně v budoucnu. Ve stručnosti jde o:
    Accounting & Trade Simulation Plug-in umožňující simulované obchodování v trzích. Uživatel může do programu zadávat různé typy nákupních a prodejních příkazů a "papírově" si zkoušet, zda-li v obchodování uspěje. Ideální nástroj v kombinaci s možností trénování na historických datech. COT Plug-in vizualizující tzv. Commitment of Traders - data poskytovaná burzami informující o obchodních náladách velkých profesionálních obchodníků, hedgerů a malých spekulantů. Jde spíše o doplňkový plugin, stejná data lze nalézt i v řadě bezplatných grafů. Options Plug-in. Nový plugin sloužící k obchodování opcí. Uživatel získá historická i aktuální data cen opcí a nástroj pro simulované obchodování tohoto instrumentu. Historická data opcí jsou sice často hodně aproximovaná či různě dopočítávána (jinak by objem dat byl naprosto neúnosný), přesto jde o hodně zajímavý nástroj pro trénink opčních obchodních strategií. Seasonals Plug-in sloužící k zobrazení sezónních trendů včetně historických průměrných cen. Jde o zajímavý podpůrný nástroj pro obchodníky, pracující v dlouhodobém časovém horizontu. Nástroj může "napovědět"jak se cena komodity obchodovala "v průměru" minulých x let. Spreads Plug-in nezbytný pro simulování spreadových obchodů, kterým se na Finančníkovi hodně věnujeme. S pomocí tohoto nástroje lze zobrazovat cenové vývoje spreadů a také simulovat jejich obchodování. Cena
    Atraktivnost programu podtrhuje i jeho cena, která je na běžné poměry hodně příznivá. Samotný program lze na webu výrobce získat za 197 USD, pro průběžné aktualizace je nutné zakoupit "data" - jejich měsíční cena činí 19,95 USD/měsíc (případně 199,50 USD/rok). Ceny jednotlivých pluginů se pohybují od 100 do 200 USD.
    Naše shrnutí
    Track 'n Trade Pro 4.0 je zajímavý především svým propracovaným a intuitivním prostředím. Nováček se v programu hodně rychle zorientuje a v podstatě okamžitě jej může začít používat. Za základní cenu 197 dolarů získá silný nástroj s 25ti letou historií dat, který zejména pro trénování základních technických formací a získávání "pocitu" pro pohyb trhů patří rozhodně mezi nejlepší nástroje co se poměru cena/výkon týče. Promyšlené jsou v tomto ohledu zejména nástroje umožňující "krokovat" historické trhy. Pokročilejší obchodník postupně narazí na řadu omezení. Jak již bylo řečeno, program pracuje pouze s EOD daty (denními) a není možné si zobrazit intradenní průběh obchodů. Pro začátečníky pochopitelně nepotřebné, pro jemné pilování např. vstupních strategií pokročilými obchodníky jsou však intradenní data nezbytná. Také je škoda, že EOD data je nutné odebírat pouze od výrobce programu. Program neumí zpracovávat data z různých bezplatných ani z komerčních zdrojů třetích stran. Pokročilejším obchodníkům pak nezbude, než platit taková data 2x, pokud si současně například platí data pro intradenní obchodování.
    Track 'n Trade Pro 4.0 se od jiných produktů tohoto typu neliší množstvím funkcí ani celkovými možnostmi, ale zejména stylem ovládání a celkovou intuitivností. Program doporučujeme především začínajícím obchodníkům, kteří potřebují koncentrovat svoji pozornost na základní technické analýzy trhů - a to jak aktuálních, tak zejména historických. Program je na stránce výrobce k dispozici v 30 denní zkušební verzi (obsahující také denní aktualizace dat a všechny pluginy), kterou určitě doporučujeme k vyzkoušení.

    Propojení Excelu a IB - načítání historických dat

    V minulém článku jsme si vysvětlili, jak funguje základní komunikace mezi aplikací MS Excel a obchodní platformou TWS od Interactive Brokers za pomocí DDE rozhraní. Také jsme si vytvořili ukázkový Excel obsahující jednoduchý VBA kód, který umí načítat real-time data z TWS. V dnešním článku si předvedeme, jak z TWS načítat data historická.
    Ještě než začneme, rád bych upozornil na jednu věc - pokud chcete historická data z TWS smysluplně využívat, budete potřebovat u IB reálný účet. Demo verze je omezená na jeden týden historických dat a i tak mi připadlo, že data byla vymyšlená. Takže demo účet je dobrý tak na otestování, že věci opravdu fungují, ale to je tak všechno. Pokud máte reálný účet u IB, můžete si samozřejmě zažádat o „papírový“ účet a na tom si všechno testovat. Celkový limit na historická data v TWS je 1 rok. Pokud potřebujete data starší, budete se muset podívat po jiném zdroji dat.
    Základní stavební kámen nám opět poskytne vzorový XLS od Interactive Brokers, ve kterém mají načítání historických dat také implementováno. Opět si to ale zjednodušíme, jak jen to je možné. Pro začátek si vytvoříme jednoduchý Excel, který umí načítat historická data pro jeden akciový titul. Na tom by měl být velice dobře pochopitelný princip, jak to celé vlastně funguje. A pak si vytvoříme Excel druhý, který umí pro dané akciové tituly načíst historická i real-time data.
    Vytvoření požadavku na historická data
    Minule jsme si ukázali, že načtení real-time dat z TWS do Excelu je záležitostí dvou kroků. V prvním kroku si vytvoříme tzv. control link a v druhém kroku si vytvoříme již odkaz přímo na konkrétní data, která nás zajímají. K načtení dat historických budeme potřebovat kroky tři. V prvním kroku si opět vytvoříme control link, v druhém kroku si počkáme na to, až TWS data připraví (chvilku to trvá) a načteme si je, a konečně ve třetím kroku si historická data vypíšeme do Excelu.
    Jako první věc tedy musíme vyřešit, jak vlastně má vypadat control link. Tady opět přichází na řadu vzorový XLS od IB, konkrétně list „Historical Data“:

    klikněte pro celý obrázek
    Když vyplníme nějaký titul a zmáčkneme tlačítko „Request Historical Data“, tak se vytvoří nový list a historická data se vloží do něj. Pokud se přepneme zpět a označíme si control link (sloupec „Ctrl“), tak v řádku formule opět vidíme, jak má control link vypadat (viz obrázek). Ještě než si jednotlivé části vysvětlíme podrobněji, chtěl bych poukázat na to, že control link pro historická data vrací i určité hodnoty (na rozdíl od control linku pro real-time data, který má vždy hodnotu 0) - viz hodnota „FINISHED“ na obrázku. Tyto hodnoty reflektují status, ve kterém se právě TWS při zpracovávání požadavku na historická data nachází. Po odeslání požadavku se status nastaví na „PROCESSING“ – TWS připravuje požadovaná historická data. Jakmile jsou data připravena, status se změní na „RECEIVED“ - TWS platforma obdržela data z IB serveru. A jakmile si data pomocí DDE požadavku načteme a TWS nám je tímto předá, status se změní na „FINISHED“ - operace dokončena. Tyto hodnoty jsou pro nás důležité, protože jakmile se změní status na „RECEIVED“, je to signál, abychom si historická data vyzvedli.
    Vraťme se teď k samotnému control linku a jeho obsahu. První část je víceméně stejná jako u control linku na real-time data. Také tam musí být jméno účtu, ke kterému se připojujeme (DDE server), unikátní ID, „req“ definující, že po serveru něco požadujeme a základní popis finančního nástroje, jehož historická data požadujeme. Hlavní rozdíl je zde v druhé hodnotě (DDE topic), která obsahuje „hist“ místo „tik“ (hodnota „hist“ říká TWS, že chceme pracovat s částí aplikace zaměřenou na historická data). Potom je tam druhá část, kde jsou všechny ty hodnoty oddělené slovy „singleSpace“ a „singleColon“ a tato část je specifická pro požadavky na historická data. Hesla „singleSpace“ a „singleColon“ znamenají přesně to, co znamenají v angličtině - tedy jedna mezera a jedna dvojtečka. DDE příkaz nesmí obsahovat mezery a dvojtečky a toto je způsob, jak mezery a dvojtečky v příkazu použít (TWS těmto slovům rozumí a překládá si je na mezery a dvojtečky). Dále budu používat „přeložené“ hodnoty, ať je to trochu čitelnější.
    První hodnota je v našem případě „20100428 08:00:00 GMT“ a udává datum a čas, od kterého chceme jít do historie (většinou je to dnešní datum, protože chceme co nejbližší historii). Dále tam máme „5 D“ - tím definujeme, jak hluboko chceme jít do historie. 5 D v našem případě znamená 5 dní, „30 S“ by bylo 30 sekund, „3 W“ by byly 3 týdny atd. Dále je v linku hodnota definující časovou velikost úsečky (timeframe), v našem případě je to „11“ a to znamená, že chceme denní data. Např. 3-minutový graf má hodnotu 16, 5ti minutový má hodnotu 7 a hodinový má hodnotu 10. Další hodnota specifikuje, jaká chceme data - většinou chceme „Trades“, neboli Last hodnoty (hodnoty posledních spárovaných obchodů). Můžeme si ale nechat vygenerovat i například Bid nebo Ask data. Pak tam máme hodnotu „RTH Only“ (RTH jako Regular Trading Hours) a zde můžeme zadat 0 pro všechna data nebo 1 pro data pouze z regulérních obchodních hodin. A poslední hodnota definuje, v jakém formátu má TWS vracet datum a čas u jednotlivých úseček. Hodnota 1 znamená formát čitelný pro lidi, hodnota 0 je užitečná pro programátory (počet sekund od 1. ledna 1970).
    Všechny tyto hodnoty jsou velice dobře vysvětleny v dokumentu „DdeForExcelApiGettingStarted.pdf“, který by měl být součástí archívu, ve kterém si stáhnete vzorové XLS od IB. Takže pokud umíte aspoň trochu anglicky, podívejte se tam na kapitolu 16.
    Jakmile control link vytvoříme a vložíme jej do jakékoliv buňky v Excelu, dáváme TWS příkaz, aby nám poskylo požadovaná historická data.
    Načítání historických dat do Excelu
    Nyní víme, jak dát TWS příkaz, aby nám poskytlo historická data a také víme, že historická data budou připravena, jakmile se změní hodnota control linku na „RECEIVED“. Poslední věc, kterou potřebujeme vědět, je, že TWS nám historická data vrátí v podobě dvourozměrného pole, což si můžeme představit jako jeden list v Excelu - každá buňka (neboli hodnota pole) má svou unikátní adresu, která se skládá ze dvou hodnot (pořadí v první dimenzi a pořadí v druhé dimenzi - první dimenzi si můžeme představit třeba jako řádky, druhou jako sloupce). Protože je to datová struktura, která sama o sobě zabere minimálně několik buňek, nemůžeme použít stejný postup jako u real-time dat, kdy do určité buňky vložíme DDE příkaz a ten nám pak do té samé buňky vrátí požadovanou hodnotu. Budeme si muset pole načíst přímo pomocí DDE příkazů v programu a pak jednotlivé hodnoty pole vypsat do Excelu.
    Nyní už víme všechno, co potřebujeme, abychom si mohli naprogramovat jednoduchý XLS, který nám načte historická data pro jeden titul. Program bude mít 3 vstupní parametry - uživatelské jméno TWS, jméno akciového symbolu a hloubku historie dat. Budeme předpokládat, že historii chceme ode dneška a budeme chtít denní timeframe. V jedné části programu si vytvoříme control link a v druhé části budeme monitorovat jeho hodnotu a jakmile se změní na „RECEIVED“, načteme si data z TWS a vypíšeme si je do Excelu.
    XLS bude vypadat takto:

    Do nového modulu ve VBA si vložíme funkci, která se spustí po stisknutí tlačítka a vytvoří control link. Také si tam vytvoříme pomocnou funkci, kterou budeme z control linku extrahovat ID, to budeme potřebovat později:

    klikněte pro celý obrázek
    A k listu, do kterého vkládáme control link (v mém případě první list - Sheet1) si vložíme obsluhu události, která bude sledovat změnu v buňkách na základě výpočtu formule a pokud se naše buňka změní na „RECEIVED“, načteme a zobrazíme historická data:

    klikněte pro celý obrázek
    Nyní už si pouze přiřadíme makro „PripravaControlLinku“ k našemu tlačítku, vyplníme uživatelské jméno, akciový symbol a hloubku historie, a po stisknutí tlačítka nám program načte do Excelu požadovaná historická data. TWS samozřejmě musí běžet pod uživatelským jménem, pod kterým se z Excelu připojujeme.
    Tento Excel si můžete stáhnout zde.
    Načítání historických a real-time dat pro více akciových párů
    Právě jsme si ukázali, jak vytvořit jednoduchý Excel, který nám načte historická data z TWS. Nyní si nové poznatky spojíme s tím, co jsme se naučili minule. Vytvoříme si Excel nový, který nám načte jak historická, tak i real-time data pro symboly, které uvedeme v Excelu. Opět budeme pro jednoduchost pracovat s akciovými tituly. V každém řádku bude v prvním sloupci uvedený jeden akciový titul, pro který si stáhneme historická data na základě zadané hloubky historie a na konec řádku přidáme i real-time hodnotu. Excel bude vypadat takto:

    Program se bude opět skládat ze dvou částí. První část bude makro přiřazené k tlačítku. Toto makro nám v cyklu projede všechny řádky, kde je uvedený symbol a vytvoří control linky pro historická (Ctrl1) a real-time (Ctrl2) data. Druhá část programu bude opět obsluha události Worksheet_Calculate(), která bude monitorovat všechny control linky pro historická data a pokud se hodnota změní na „RECEIVED“, tak historická data načte, zobrazí historické Close ceny do jednotlivých sloupců a na konec ještě přidá odkaz na real-time data. První část programu si opět vložíme do nového Modulu:

    klikněte pro celý obrázek
    Na screenshotu není úplně zobrazena funkce „Pause“, ale je to naprosto stejná funkce, kterou jsme použili v minulém článku při načítání real-time dat. Opět ji používáme z důvodu, abychom dali TWS trochu prostoru mezi zpracováváním jednotlivých příkazů. Druhá část kódu musí být opět přiřazena k listu, ve kterém chceme control linky monitorovat. V mém případě je to opět „Sheet1“:

    klikněte pro celý obrázek
    Nyní si pouze přiřadíme makro „PripravaControlLinku“ k našemu tlačítku, vyplníme uživatelské jméno, hloubku historie a akciové tituly, a po stisknutí tlačítka nám program do řádků načte požadovaná historická data a doplní je o real-time Last cenu.
    Tento Excel si můžete stáhnout zde.
    Závěrem
    Ani můj dnešní článek neměl za cíl naprogramovat 100% robustní „blbuvzdorný“ program, který má ošetřeny všechny věci, které uživatel může udělat špatně. Cílem bylo poskytnout vysvětlení a co nejjednodušší praktickou ukázku toho, jak to vlastně celé funguje pod pokličkou. Dnešní kód už je trošku komplikovanější než ten minulý, ale opět jsem ho pořádně okomentoval, takže by neměl být problém ho pochopit. Hodně štěstí při experimentování!
    Autor: Petr alias gizmo

    Několik tipů pro začínající v Gecko TnT

    S Tomášem dostáváme na setkání řadu dotazů, týkající se práce v programu Gecko TnT. V dnešním článku jsme pro vás připravili odpovědi na čtyři nejčastěji pokládané dotazy, určené především začínajícím obchodníkům, kteří se snaží v programu zorientovat.
    Pokud zatím o programu Gecko TnT nic nevíte, přečtěte si tento článek.
    Vytváření a sledování portfolia trhů
    V Gecko TnT lze sledovat vývoj všech běžně obchodovaných amerických futures trhů. Které trhy se v programu aktualizují, je třeba nejprve nastavit pomocí funkce Commodity Chooser. Tu vyvoláme přes ikonku nebo pomocí menu View Commodity Chooser...

    Podle svých preferencí si zde můžete vybrat komodity, které vás zajímají, případně omezit jejich historii na určitý počet let. Pokud máte rychlou linku a velký disk, patrně není důvod se příliš omezovat, aktualizace všech dat trvá i na pomalejším připojení pouze několik minut. Máte-li k dispozici modul pro práci s opcemi, můžete si nechat stahovat také data opcí. Sloupec Fraction (zlomek) udává, v jakém formátu se mají data stahovat. Je-li políčko zaškrtnuto, budou se data stahovat ve formátu zlomku (např. 9 1/2), v opačném případě bude použit desetinný tvar (např. 9,5).
    Poznámka: řada komoditních trhů je v tabulce uvedena několikrát - vždy si však všímejte údaje v závorce. Open Outcry specifikuje data z pitového trhu (tzn. pouze v rámci denních seancí), Combined jsou data jak z pitového, tak elektronického obchodování. Electronic jsou čistě elektronické trhy. Většina klasických surovinových trhů má k dispozici pouze data typu Open Outcry nebo Combined. Je to proto, že čistě elektronické trhy nemají dostatečnou likviditu a běžně se neobchodují. To se postupně mění a předpokládáme tak, že postupně budou v Gecko TnT k dispozici také data pro čistě elektronické surovinové trhy. Vysvětlení rozdílu mezi elektronickým a pitovým trhem naleznete mj. v článku Jaký trh si vybrat pro obchodování?
    Jakmile máte vybrané trhy k aktualizaci, je třeba pravidelně stahovat aktuální data - to se provede pomocí ikony Data Update .
    Samotné vkládání příslušných trhů do portfolia probíhá jednoduše zvolením daného trhu a příslušného kontraktního měsíce:

    Máte-li navolené své portfolio trhů, je třeba jej uložit, abyste s ním příště mohli dál pracovat. Ukládání probíhá klasicky přes menu File -> Save nebo přes ikonu Safe. Soubory se ukládají ve speciálním formátu .tnt a při ukládání souboru poprvé je třeba vybrat jak příslušný adresář tak jméno, pod kterým soubor příště naleznete.
    Co je velmi důležité - chcete-li při příštím přihlášení pracovat se stále stejným portfoliem, zaškrtněte v menu File položku Remember Last Book:

    Máte-li tuto položku zaškrtnutou, budete mít při dalším spuštění programu k dispozici stejné grafy, jako při jeho uzavření. Pomocí programu si můžete vést samozřejmě několik "portfolií" - nejrychlejší cesta jak spouštět různé soubory, je přes výběr nejnovějších souborů, které se zobrazují dole v menu pod nabídkou File. Alternativně lze pochopitelně použít příkaz Open a vybrat příslušnou složku na disku. Při ukončování programu nesmíte zapomenout poslední nastavení uložit (File -> Save) nebo přes ikonu Safe, ale program by se měl sám připomenout pokud jej budete ukončovat bez uložení posledních změn a aktualizací.
    Práce s paletkami
    Občas dostáváme dotazy na "zmizelé paletky". Problém může mít v zásadě dvě příčiny - pokud vám doběhla zkušební verze programu, pak řada paletek zmizí a objeví se až poté, co si program u výrobce zaplatíte. Pokud používáte plnohodnotný program, pak jste si patrně některé paletky skryli. Paletky s ikonami jsou v programu modulární - lze je přesouvat či skrývat. Pokud kliknete levým tlačítkem myši na svislou čárku na levém konci paletky, lze - při stále stisknutém tlačítku - paletu přesouvat na libovolné jiné místo v rámci programu. Kliknete-li na paletku levým tlačítkem myši 2x, paletka "vyskočí" z programu a lze ji umístit libovolně mimo program nebo úplně zavřít.
    Paleta klasicky umístěná v rámci Gecko TnT:

    Pokud na paletku 2x klikneme levým tlačítkem myší, paleta se přemístí do samostatného okna. Pokud okno uzavřete, paleta z programu úplně zmizí:

    Chcete-li paletu opět dostat do prostředí Gecko TnT, popotáhněte ji myší na místo, kde jsou ostatní paletky a ona se do programu zpátky "vrátí".
    Pokud vám paletka v programu chybí, můžete ji znovu zobrazit přes menu View:

    Skryté palety jsou v menu zobrazeny bez ikony "zatržítka".
    Likvidita
    Jeden z nejdůležitějších faktorů pro výběr trhu k obchodování je tzv. likvidita. Likvidní trh je takový, ve kterém se čile obchoduje. Jeden konkrétní obchod tak nemá příliš vysoký vliv na změnu ceny. Dostatečně likvidní trh také znamená, že obchodník může pozici otevřít i uzavřít v podstatě v libovolné situaci. Je-li trh málo likvidní, může se stát, že pozici sice uzavřít lze, ale za výrazně horší cenu, než bychom si přáli. Jinými slovy - pokud se na trhu denně zobchoduje třeba několik desítek tisíc kontraktů (jako např. v kukuřici), pak si můžeme být jisti, že v podstatě v libovolný okamžik můžeme kontrakt uzavřít/otevřít za cenu hodně podobnou té, kterou vidíme na obrazovce (máme-li k dispozici živá data). Takový trh je vysoce likvidní. Vysoce likvidní bývají především aktuálně obchodované (tzv. front) měsíce většiny běžných komodit. Konkrétně se likvidita pozná podle hodnoty Volume, což je ukazatel, vyjadřující celkové množství kontraktů zobchodovaných v rámci specifického časového úseku (podrobně viz článek "Co je to Volume").
    V Gecko TnT se likvidita zvoleného měsíce zjistí velmi snadno. Nejsnáze to jde přímo v grafu se zvoleným indikátorem Volume.
    Volume indikátor se zapne kliknutím na tlačítko V/OI Výsledkem je graf podobný tomuto:

    Na uvedeném screenshotu je vidět grafický vývoj volume v jednotlivých dnech. Tento údaj lze snadno interpretovat vizuálně (tj. pohledem zjistíme, jestli se volume zvyšuje či snižuje), pro přesnou interpretaci je však třeba se podívat na volume příslušného dne. Stačí najet myší na daný cenový bar a volume se zobrazí dole v okénku, které jsem zvýraznil červeně. Mimochodem - chcete-li v Gecko TnT svisle zvýraznit určitý den jako na našem screenshotu, stačí při projíždění grafu stisknout klávesu SHIFT.
    Osobně sleduji v Gecko TnT volume také přes praktickou záložku Data zobrazující jednotlivé hodnoty v číselné podobě.

    Tabulka Data je sama o sobě velmi praktickou pomůckou a umožňuje zobrazování i číselných hodnot nejrůznějších výpočtů (indikátorů, Commitments of Traders, ceny opcí atd.). Sloupce, které chcete v tabulce zobrazit můžete navolit přes tlačítko Customize.... Zobrazené hodnoty lze i snadno přenášet např. do Excelu pro další výpočty - stačí do tabulky kliknout, zvolit všechna data (Ctrl A) a následně data zkopírovat přes schránku (nejprve Ctrl C v programu Gecko TnT, a poté Ctrl V např. v Excelu).
    Pozn.: u pitových obchodů zveřejňují burzy informaci o volume s určitým zpožděním, proto je v Gecko TnT tato informace dostupná až následující den. Hodnotu volume za předchozí den můžete zjistit např. na stránkách burzy, kde je uveřejněno tzv. předběžné volume, které se může ještě v průběhu dne nepatrně měnit.
    Zobrazování LTD, FND
    Hodnoty FND a LTD jsou pro poziční obchodníky velmi zásadní. FND (First notice day) představuje upozornění, že se daný kontrakt přestane brzy obchodovat. V praxi FND znamená, že většina brokerů bude požadovat, aby klienti k tomuto datu uzavřeli v daném trhu své pozice. LTD (Last trading day) představuje zcela poslední den, kdy se daný trh obchoduje. Po LTD se daný kontrakt přestává obchodovat a začíná proces tzv. vypořádání - fyzického dodání dané komodity.
    Hodnoty FND a LTD je velmi důležité sledovat, především ve fázi plánování (ve fázi ostrého obchodování vás málokterý broker nechá v obchodu přes FND). Gecko TnT umí obě data sledovat několika způsoby:
    V první řadě je datum FND a LTD k dispozici v záložce Key:

    Datum je pochopitelně udáváno v americkém formátu - tzn. měsíc/den/rok.
    Velmi praktická je pak možnost nechat si zobrazovat hodnoty LTD a FND přímo do grafů. To je třeba nejprve nastavit přes preference programu. Klikněte na ikonu Program Options (alternativně lze zvolit View -> Program Options...) a v okně Program Options rozbalte složku My Default Settings a vyberte volbu Appearance (vzhled):

    V okně zaškrtněte okénko u voleb Last Trading Date a First Notice Day, případně si zde můžete nastavit barvu, kterou budete chtít dané datum v grafu zobrazovat. Pozor! Chcete-li aplikovat nastavení na již zobrazené grafy, musíte nyní kliknout na tlačítko Apply to active charts (aplikovat na aktivní grafy), a poté vše potvrdit OK. Pokud kliknete pouze na tlačítko OK, nastavení se projeví až u nově otevíraných grafů a nikoliv těch, které již máte v programu aktuálně zobrazené.
    Výsledný graf se zobrazenými daty FND a LTD pak vypadá např. takto:

    Žlutá oblast je oblast "v rámci FND", červeně je označen LTD.
×
×
  • Vytvořit...