Jump to content
Co nového? Mé kurzy
Články a tutoriály:
Hledat v
  • Více možností...
Najít obsah, který ...
Hledat výsledky v ...
Seriály Komoditní Manuál Psychologie obchodování
  • 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í.

    10.12.2004

    Petr Podhajský

    Fulltime obchodník věnující se tradingu více než 15 let. Specializace na systematické strategie obchodované na futures a akciích. Oblíbený styl obchodování - intradenní s využitím orderflow. Poslední roky pak stavba automatizovaných portfolio systémů.


    Mohlo by vás dále zajímat

    Adaptrade Builder - jak může vypadat genetické generování obchodních systémů II?

    Před časem jsem na Finančníkovi psal o programu Adaptrade Builder – software pro automatizované generování obchodních systémů formou genetických algoritmů. Tvůrce programu, Michael Bryant, představil nedávno novou verzi software a jelikož jsem se s programem opět podrobně seznamoval, připravil jsem na Finančníka shrnutí aktuálních novinek.
    Stejně jako v minulém článku bych rád nejprve upozornil, že nejsem trader, který by vydělával v trzích s geneticky generovanými algoritmy. Neobchoduji ani pomocí automatizovaných systémů, ale toto téma mě přijde velmi zajímavé a proto mu věnuji občasné volné chvíle.
    Pro rekapitulaci zopakuji základní info z minulého článku. Co je genetické programování? Pokud shrnu informace z veřejných zdrojů (především wiki), tak jde o metodu programování podobnou biologické evoluci. Systém vytváří celou řadu počítačových programů (tzv. jedinců) a průběžně testuje jejich zdatnost (angl. fitness) – tj. schopnost řešit původně zadanou úlohu (v našem případě vydělávat peníze). Čím vyšší zdatnost, tím pochopitelně lépe. Jedince vytváří v různých „kolech“, v terminologii genetického programování populacích. V rámci jednotlivých generací program vybere nejzdatnější jedince („rodiče“) a z těch generuje další jedince metodami jako je křížení nebo mutace. Místo genů se z od rodičů na potomky předávají pravidla obchodního systému a logika konkrétní strategie. U nových jedinců (potomků) program opět zjišťuje zdatnost a celý proces pokračuje stále dále a dále. Zjednodušeně řečeno tak software vyvíjí stále lepší a lepší jedince. Další informace naleznete např. na stránkách wikipedie.
    Výhodou programu pro genetické programování je to, že program hledá sám v trhu nejrůznější kombinace taktik, které vyhodnocuje a testuje na statistickou robustnost. Tedy v principu to, co dělají běžní tradeři akorát to dělá mnohem efektivněji a nutno říci že i robustněji (díky tomu, že hypotézy jsou v programu hned podrobovány různým statistickým testům). Výsledkem je do určité míry optimalizovaný systém pro dané podmínky trhu, ale díky statistickým testům pro aktuální prostředí dostatečně robustní. Důležité je chápat, že trhy se neustále mění a nelze tak ani v nejmenším doufat, že by tímto způsobem našel člověk nějaký trvalý svatý grál. Nicméně trhy mívají ve svých tendencích určitou setrvačnost a dobře postavené, statisticky robustní, mechanické strategie mají tendenci nějakou dobu vykazovat konzistentní výsledky. Ostatně nemusí jít jen o mechanické strategie generované genetickým algoritmem. Ohromné množství mechanických strategií, jejich výsledky jsem v průběhu času zkoumal (např. na stránkách kde je možné si takové systémy pronajmout atd.) mají podobné tendence. Podle obchodovaného timeframe strategie určitou dobu profituje podobným způsobem jako v testech, aby postupně přišlo období stagnace nebo ztrát. Mé testy s programem typu Builder se proto nyní soustředí na testování několika robustních strategií, které nechám fungovat v simulovaném režimu v portfoliu a podle obchodovaného timeframe budu v průběhu času jednotlivé systémy sledovat a v případě poklesu výkonnosti nahrazovat jinými. Bude to jistě zajímavý experiment, byť trochu dlouhodobější. Budou-li výsledky zajímavé, určitě se se závěry opět podělím na serveru.
    V úvodu článku jsem nastínil, že Michael připravil novou verzi programu. Jde sice jen o desetinový update na verzi 1.1, nicméně aktuální verze se od první liší docela zásadními inovacemi. Dá se říci, že v mnoha ohledech program dozrál.
    Začít můžeme u modulu, který se stará o historická data. Ta jsou nyní dostupná přes srozumitelnou tabulku, ve které lze načíst několik souborů dat a nadefinovat, jaké období bude použito pro vytváření samotné strategie (in-sample) a jaké pro následné testování (out-of-sample). Podporovány jsou nově také ticková data a range bary:

    Podstatně rozšířeny byly vstupní a výstupní podmínky, se kterými Builder pracuje. Jednotlivé podmínky lze individuálně zaškrtnout nebo odškrtnout, čímž se ovlivňuje, které taktiky bude Builder pro vytváření algoritmů používat. Přibyly nové indikátory (DI-/DI+, DMI, Accumulation/distribution, Chaiken, momentum, MACD, FastK, FastD), řada výstupních strategií a jak vidíte na screenshotu, lze nastavovat např. výstup EOD nebo maximální počet vstupů za den.

    V záložce Goals se definují cílové parametry vytvářené strategie. Tj. na které parametry by měl program klást důraz a s jakou váhou, nově lze nastavovat pro jednotlivé metriky i cíle. Zde je jen škoda, že software nepočítá s cizími měnami, takže místo dolarů jsou uvedeny Kč.

    Poslední záložka Build Options umožňuje nastavit parametry budování samotných strategií:

    Po základním nastavení funguje Builder již velmi intuitivně. Program postupně buduje genetické algoritmy a výsledky jsou průběžně uveřejňovány v přehledech ve spodní části pracovní plochy. Oproti první verzi programu, kterou jsem měl naposledy k dispozici, jsou výsledky hned zobrazovány v podobě equity křivky a to i včetně out-of sample výsledků.

    Program samozřejmě vytváří pro strategie kód, určený pro programy TradeStation nebo TS 2000i.
    Na Adaptrade Builderu je příjemná možnost stáhnout si program ve čtrnáctidenní trial verzi, která není jakkoliv funkčně omezená. Pokud pracujete s programem TradeStation a dané téma vás zajímá, můžete si tak program vyzkoušet a během 14 dní vygenerovat hned celou řadu strategií. Čas pro generování jedné strategie záleží na mnoha parametrech – výkon počítače, množství dat, nastavení algoritmu- u jednodušších přístupů jsou výsledky na mém notebooku dostupné v rámci několika hodin. Za 14 dnů může tedy program stihnout spoustu práce.
    Trial verzi si můžete stáhnout zde: http://www.adaptrade.com/Builder/Download.htm
    Co se ceny programu týče, tak ta odpovídá tomu, že jde o profesionální řešení v oblasti finanční trhů. Program se prodává za 2495 dolarů. Pokud již s programem máte zkušenosti, nebo vás osloví na základě zkušební verze, můžete však program získat podstatně levněji. Díky tomu, že Michael má velmi dobrý vztah k Finančníkovi, kde spousta traderů používá jeho program Market Systém Analyzer, poskytl pro české tradery hodně speciální slevový kupón CZBDSC10 snižující cenu programu o 1000 dolarů. Kupón je v tuto chvíli platný do konce roku 2010.

    Adaptrade Builder - jak může vypadat genetické generování obchodních systémů?

    Na Finančníkovi jsme se již velmi dlouho nevěnovali popisu žádného nového software pro obchodování. Důvod je velmi prostý – s Tomášem používáme několik málo, zde dobře známých, programů a v podstatě nemáme důvod v této oblasti zkoušet cokoliv nového. Z několika důvodu se však dnes na nový program podíváme – konkrétně software pro genetické generování obchodních systémů - Adaptrade Builder.
    Důvod, proč jsem se programem začal zabývat je jeho autor - Michael R. Bryant. Michael, se kterým jsme mj. dělali rozhovor do naší poslední knihy Kompletní průvodce úspěšného finančníka, je velmi zkušený obchodník, které své znalosti směřuje především do oblasti money-managementu a budování AOS. Michael je autorem programu Market System Analyzer, který v mém tradingu představuje jeden z nejdůležitějších software hned po Excelu. Své zkušenosti Michael občas publikuje ve svém bezplatném newsletteru, který si vždy rád přečtu – obsahuje totiž hodně tipů z oblasti řízení pozic, money-managementu a poslední dobou i velmi neortodoxní myšlenky pro automatické vstupy. Bylo zřejmé, že Michael se postupně ubírá směrem, který je pro mě naprosto neznámý – trading pomocí genetických algoritmů. Výsledkem jeho práce je software Adaptrade Builder, který generuje strategie pro platformu TradeStation. A jelikož TradeStation sám používám, neodolal jsem možnosti program vyzkoušet.
    V tento okamžik bych rád všechny čtenáře upozornil, že dnešní článek je myšlen jako nahození „tématu“, které je možné na Finančníkovi hlouběji diskutovat, ale rozhodně ne popis nového vlastního směru tradingu. S Tomášem jsme diskréční obchodníci a rozhodně ne odborníci přes genetické programování. Jednoduše řečeno – trading nabízí neskutečné množství oblastí, jak k obchodování přistupovat a pokud je příležitost se alespoň trochu ponořit do práce někoho zkušeného, osobně ji vítám. Neznamená to ale, že bych se oboru musel věnovat nějak dále a hlouběji.
    Co je genetické programování? Pokud shrnu informace z veřejných zdrojů (především wiki), tak jde o metodu programování podobnou biologické evoluci. Systém vytváří celou řadu počítačových programů (tzv. jedinců) a průběžně testuje jejich zdatnost (angl. fitness) – tj. schopnost řešit původně zadanou úlohu (v našem případě vydělávat peníze). Čím vyšší zdatnost, tím pochopitelně lépe. Jedince vytváří v různých „kolech“, v terminologii genetického programování populacích. V rámci jednotlivých generací program vybere nejzdatnější jedince („rodiče“) a z těch generuje další jedince metodami jako je křížení nebo mutace. Místo genů se z od rodičů na potomky předávají pravidla obchodního systému a logika konkrétní strategie.
    U nových jedinců (potomků) program opět zjišťuje zdatnost a celý proces pokračuje stále dále a dále. Zjednodušeně řečeno tak software vyvíjí stále lepší a lepší jedince. Další informace naleznete např. na stránkách wikipedie.
    Genetickým programováním se dnes zabývá celá řada traderů a existuje i několik specializovaných programů, Adaptrade Builder patří nyní mezi ně.
    Práce s programem je poměrně velmi jednoduchá. Builder je přizpůsoben spolupráci s programem TradeStation, ze které čerpá data a pro který vytváří strategie. Jako vstup tak stačí do programu načíst historická data v určitém timeframe a nastavit základní vlastnosti generování. Některá nastavení ovlivňují kvalitu (a délku generování) výsledné strategie – mezi ty patří především velikost populace a počet generací. Dále lze v programu přiřadit váhy různým parametrům, které ovlivňují výslednou podobu strategie – lze např. ovlivnit frekvenci obchodů, max. drawdown, celkovou profitabilitu, komplexnost strategie a další.

    Adaptrade Builder staví strategie s použitím několika základních indikátorů pro práci s trendem (simple moving average, exponential moving average), sílou trendu (ADX, rate of change), oscilátorů (SlowD stochastic, RSI), indikátorů volatility (true range, average true range), výběrů podle dnu v týdnu, hodiny a cenových patternů (highest(price, N), Lowest(price, N), Price[N]). Součástí strategií jsou pochopitelně i výstupy – podle dokumentace má ve své první verzi Builder k dispozici pět typů vstupů a šest různých typů výstupů. Těchto několik prvků Adaptrade Builder kombinuje dohromady právě s pomocí algoritmu genetického programování.
    Raději zopakuji, že pro mne samotného bylo zkoumání programu Adaptrade Builder první příležitost s praktickým seznamováním s genetickým programováním. Sám obchoduji cestou diskréčního obchodování a k „automatům“ jsem spíš skeptický, dokud mě jejich výsledky sami nepřesvědčí o opaku. První otázka, kterou jsem si tak ve spojení s Adaptrade Builderem kladl, bylo – do jaké míry může program nalézt obchodovatelná pravidla, aniž by jeho výsledkem nebyl jen nepoužitelný, přeoptimalizovaný kód?
    Na otázku pochopitelně nemám odpověď, ale je zajímavé přemýšlet o tom, že program v podstatě dělá to, co mnoho obchodníků hledající AOS – zkoumá trhy a snaží se najít kombinace, které fungují. Program to však dělá sám (úspora času), bez chyb (bere skutečně všechny signály atd.), bez předsudků (obchodník může vynechat některé nápady proto, že mu přijdou „nepravděpodobné“) a se zapojením statistických metod pro ověření robustnosti, nezávislosti atd. Díky algoritmu genetického programování nejde navíc o to nalézt „jednu rovnici“, která vystihne historický průběh daného podkladového aktiva. Pochopitelně, že výsledkem žádného programu nebude „svatý grál“ – vzorec, který by fungoval na věky a vždy. Nicméně pokud jsou výsledkem výpočtu strategie s určitou statistickou relevancí, je více než pravděpodobné, že jejich použitelnost bude podstatně vyšší, než většina „plně automatizovaných“ řešení, které nacházejí obchodníci po měsících zkoumání trhů.
    Je důležité zdůraznit, že ani proces genetického hledání algoritmů není nějak extrémně snadný. Trader musí proniknout do problematiky a pochopit alespoň v základu jednotlivé prvky, se kterými se algoritmy v programu tvoří a především rozumět tomu, jak testovat robustnost strategií. Navíc výpočet může být časově náročný, zejména pokud se snažíme analyzovat větší historii intradenních dat. Tím chci říci, že prací s podobným programem se úsilí tradera jen posouvá do jiné oblasti – místo práci na „mikroúrovni“ jde spíš o plánování a přípravu portfolia strategií, které mají sami o sobě všechny předpoklady k fungování a vydělávat peníze budou především jako celek.
    Michael přikládá k Builderu několik hotových strategií, na kterých ukazuje, jak zhruba systém nastavit, aby byly výsledky zajímavé a obchodovatelné. Pochopitelně, že součástí každého podobného přístupu je out-of-data testing (tzn. testování finální strategie na datech, které jsme nepoužili k budování strategie). S ukázkami se můžete seznámit na webu výrobce. Já jsem si rád vyzkoušel program v praxi a vytvořil několik velmi jednoduchých algoritmů. Vycházel jsem ze šablon připravených Michaelem a tak samotná příprava Builderu včetně generování dat z TradeStation byla otázkou přibližně 5 minut, generování jednotlivých strategiích byla na mém notebook záležitost maximálně 30ti minut. Do Builderu jsem nahrál vždy jen data do roku 2009, abych si posléze v TradeStation mohl rychle nechat zanalyzovat, jak by si strategie vedla od roku 2009 do dneška – tedy tzv. out of sample testing s daty, které Builder neměl k dispozici při přípravě strategie. Nutno říct, že výsledky nejsou vůbec špatné.
    Zde je například ukázka strategie na denních datech trhu NQ. Započítané jsou komise ve výši 25 USD/obchod. Strategie byla vytvořena s daty do konce roku 2009, zbytek je "out of sample test":


    Na genetickém programování je zajímavé, že při nepatrné změně strategie dostaneme systém se zcela jinou strukturou zisků a ztrát. Zde je další ukázka systému na denním trhu NQ:


    Musím přiznat, že výsledky dosahované při testování programu mě dost zaujaly. V tuto chvíli dokonce uvažuji, že bych si vytvořil zkušební malé automatizované akciové portfolio obchodované s pomocí geneticky vygenerovaných kódů.
    Co se Adaptrade Builder samotného týče, program se velmi intuitivně ovládá a funguje tak, jak je popsáno na stránkách výrobce. Program není levný, aktuálně se prodává za zaváděcí cenu 1995 USD, ale mezi podobnými programy v dané třídě patří k těm nejlevnějším. Nepředpokládám, že by si program měl koupit někdo, kdo s tradingem začíná a doufat, že „genetika“ pro něj bude svatý grál. Tak to určitě nefunguje. Nicméně pokud se zabýváte vývojem AOS, může být tento směr něco, co stojí za prozkoumání. Začít můžete např. studiem Michaelových newsletterů, které obsahují spoustu myšlenek, které později začlenil právě do programu Adaptrade Builder. Pokračovat pak můžete instalací 14ti denní bezplatné demoverze, kterou si můžete nahrát na webu výrobce, a se kterou můžete mj. vygenerovat řadu zajímavých programových kódů pro podrobné studování.

    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
×

Důležitá informace

Na tomto webu zpracováváme cookies potřebné pro jeho fungování a analytiku, v případě udělení souhlasu také cookies pro účely cílení reklamy.