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
  • Novinky v denících pro backtestování a vyhodnocování parametrů obchodních systémů

    Tabulkový deník, nejčastěji vytvořený v Excelu, je nástroj, který potřebuje každý trader. V rámci uživatelské komunity Finančníka vzniká v této oblasti postupně řada zajímavých projektů, přičemž např. J.A. tester se již přeměnil do skutečně profesionálního software. Hledáte-li deník, se kterým začít analyzovat trhy, tento článek vám může poskytnout zajímavé tipy.

    J.A.tester 3.0

    O programu J.A.tester jsme na Finančníkovi poprvé psali v roce 2006, kdy jej tehdy dva autoři, tradeři Alec a Jacomo, poskytli v první verzi ostatním uživatelům coby vánoční dárek (viz články J.A.tester a později J.A.tester 2.2)

    Program je určen k záznamu, testování a analyzování obchodů s akciemi, indexy, komoditami, měnami atd. a to jak pro intradenní tak poziční obchody. První verze programu byla defacto klasickým deníkem v Excelu s velmi rozšířenými vlastními naprogramovanými funkcemi. Tím, čím byl J.A. tester výjimečný, byla vždy filozofie práce s daty a obchody. Na rozdíl od jiných deníků je J.A. tester postaven na tom, že sám analyzuje skutečná data trhů a uživatel zadává čas vstupu a výstupu svých obchodů. J.A. tester tak umožňuje např. velmi přesně vyhodnocovat dopad posouvání SL, případně aplikování různých výstupů, což je něco, co v jiném podobném produktu k dispozici není.

    Novinkou je nyní verze programu 3.0, která s sebou přináší zejména profesionalizaci produktu - program je nyní plně samostatnou aplikací (nepracuje v prostředí programu Microsoft Office Excel) a obsahuje řadu vylepšení, které vám ve stručnosti představíme níže. Odklon od MS Office byl podle autora programu dán především současnými vyššími výkonnostními možnostmi samotné aplikace a teoreticky téměř žádném omezení z hlediska dalšího rozšiřování.

    Program je koncipován tak, že funkcionalita je rozšiřována pomocí Pluginů a Modulů. Pluginy řeší převážně manipulaci s datovými soubory (program si sám umí naimportovat data z nejběžněji používaných analytických programů). Moduly obsahují hlavní funkcionality programu.

    Aktuální pluginy:
    - Plugin SierraChart – umožňuje číst datové formáty tohoto programu (mnd, scid)
    - Plugin Metatrader – umožňuje číst datové formáty tohoto programu (hst)
    - Plugin NinjaTrader – umožňuje číst datové formáty tohoto programu (txt)
    - Plugin Textové datové soubory – umožňuje univerzální čtení textových datových souborů pomocí vytvářených šablon
    - Plugin Standard – obsahuje základní editory programu (pro Kontrakty, Účty, Obchodní systémy).

    Aktuální moduly:
    - Deník – hlavní modul programu. Slouží pro záznam, uchovávání a výpočet obchodů.
    - Autotest – umožňuje vyhledat výsledky různých kombinací Nastavení obchodu dle zvolených parametrů pomocí opakovaných výpočtů.
    - PS modul – modul pro position-sizing.

    modDenik.gif, 49kB

    Obchody se do J.A. testeru zadávání přes vstupní okno modulu Deník, kde se vkládají tradiční parametry jako pattern, počet kontraktů, long/short a především čas vstupu a výstupu (v programu lze dále nastavit mnoho proměnných jak se má tester chovat, program umožňuje testovat i dílčí výstupy z pozic atd.) Obchody lze do deníku také importovat například z logu programu Bracket Trader. Pro vytvořený seznam obchodů pak stačí přiřadit odkaz na jeden nebo více odpovídajících datových souborů, na kterých lze potom spustit výpočet obchodů. Datový soubor může být libovolného timeframe, včetně tickových dat. V současnosti jsou použitelné pro výpočet obchodů i data linkovaná přímo z programu SierraChart a Metatrader4. Pokud tedy pracujete se soubory v některém z výše uvedených formátů, nemusíte nijak s tímto souborem manipulovat a pouze přiřadíte odkaz, kde se tento soubor ve vašem počítači nachází. V případě, že váš datový soubor není v tomto formátu, lze jej pomocí zabudované funkce překonvertovat (pokud je pro čtení dostupný Plugin). J.A. tester pamatuje i na situace, kdy se pracuje s více kontraktními měsíci – v programu lze přidat odkaz na několik datových souborů a provést tak výpočet obchodů najednou.

    Výsledkem analýzy zapsaných obchodů je velmi přehledný sumář výsledných parametrů systému a také 10 grafů zobrazujících průběh stavu účtu atd.

    Vysledky.jpg

    Program není uzpůsoben pouze pro backtestování, ale jej používat pro průběžný záznam obchodů. Okno umožňuje zapisovat k denním obchodům poznámky k obchodování a online zobrazení výsledků reportů (prozatím pouze z Forexfactory) s možností načítat historické údaje (cca až 2 roky zpět) a tyto údaje pro obchodní dny i uložit.

    AT_sett.gif, 24kB

    Jednou z podstatných funkcí programu je pochopitelně zkoumání dopadu nastavení různých stop-lossů a profit-targetů. Pro to slouží modul Autotest, kde lze nastavit rozsahy jednotlivých parametrů obchodu (včetně velikosti kroku) a spustit výpočet. Tento způsob je v podstatě alternativou nebo spíš náhradou sledování a vyhodnocování hodnot MAE a MFE, protože nejefektivnější nastavení můžete snadno zjistit opakováním výpočtu na reálných datech. Výsledky lze také například vyhodnotit podle maximálního zisku nebo velikosti drawdownu. Vzhledem k tomu, že výpočet probíhá na reálných datech, velmi přesně dokáže zohlednit také parametry posouvání stop-lossu na B/E atd.

    SettMeth.gif, 22kB

    Podstatnou funkcí je v programu modul pro position sizing. Program umožňuje aplikovat jednu z deseti standardních metod pro určení velikostí pozic, včetně několika dalších variant pro dvě z metod. Celkem má tedy uživatel k dispozici 16 způsobů jak navyšovat pozice. Dále v tomto modulu můžete náhodně měnit pořadí obchodů a sledovat jak to ovlivňuje křivku Equity, drawdown a ostatní vypočtené hodnoty (Monte carlo analýza). Program umožňuje také náhodně vynechávat zadaný počet obchodů, protože i v reálném obchodování se vám pravděpodobně může stát, že váš vstupní příkaz nebude vyplněn. Pokud byste chtěli řídit své pozice na základě vývoje křivky Equity v závislosti na poloze klouzavého průměru i tuto možnost vám PS modul nabízí.

    jatester-equity.jpg, 110kB

    Diskuze k předcházejícím verzím programu na našem serveru:
    http://www.financnik.cz/forum/read.php?3,55359,page=1
    http://www.financnik.cz/forum/read.php?23,68110,page=1
    http://www.financnik.cz/forum/read.php?3,121443,121665#msg-121665

    Program od své poslední verze prošel skutečně zásadním vývojem a je vidět, že autor, Aleš Pechočiak, mu věnuje opravdu hodně času. Není proto divu, že změnou prošla i cenová politika – program nyní autor prodává za 2490 Kč / rok. Další informace k programu naleznete na adrese www.jatester.com

    Univerzální backtester

    Pokud vám pro analýzu obchodu stačí běžný obchodník deník, pak velmi sofistikovanou a dopracovanou podobu představuje Univerzální backtester, který v rámci komunity Finančníka vytvořil uživatel s nickem Tomassio.

    backtester.gif, 51kB

    Backtester je k dispozici zdarma, je však určen pouze pro komunitu traderů, kteří diskutují v rámci uzavřeného VIP vklákna absolventů emini kurzu (backtester je určen primárně pro intradenní obchodování). Pokud máte do vlákna přístup, můžete si backtester stáhnout zde:

    http://www.financnik.cz/forum/read.php?14,115176

    Backtest umožňuje testovat libovolný trh (tj. lze v něm nastavovat velikost ticku a dolarovou hodnotu), umožňuje vkládat vlastní patterny a samozřejmě velmi podrobně analyzovat SL, PT a hodnoty MAE a MFE.

    BacktestHelper

    Aby užitečných prográmků pro backtestování nebylo málo, připravil trader Laadiis utilitku BacktestHelper umožňující jednoduše odečítat cenové hodnoty v grafu NinjaTraderu a automaticky je vkládat přímo do Excelového deníku. Program umí z grafu odečítat také hodnoty MAE a MFE, takže výrazně urychluje práci se zanášením dat do Excelu.

    BacktestHelper je k dispozici také zdarma, je však opěn určen pouze pro komunitu traderů, kteří diskutují v rámci uzavřeného VIP vklákna absolventů emini kurzu. Pokud máte do vlákna přístup, můžete si BacktestHelper stáhnout zde:

    http://www.financnik.cz/forum/read.php?14,119624

    BacktestHelper spoluprace například s výše uvedeným „Univerzální backtesterem“:

    backtesthelper.gif, 58kB

    15.4.2009

    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.


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