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í
  • Jak na software pro obchodování – souhrn a přehled návodů

    V rámci Finančníka jsme publikovali již ohromné množství tipů, návodů a videotutoriálů na téma, jak si vybrat a jak používat software pro obchodování. Aby byly informace dobře dostupné, připravili jsme pro vás v rámci našeho volného seriálu o software malý rozcestník a přehled.

    Univerzální software pro všechny typy obchodníků

    Než se podíváme na specializované nástroje, pojďme se na chvíli zastavit u programu, který je z našeho pohledu nejdůležitější pro jakýkoliv trading – je jím tabulkový procesor. Na platformě Windows jde nejčastěji program Microsoft Excel nebo bezplatnou alternativu OpenOffice Calc.

    Mám-li být zcela upřímný, Excel je jediný nástroj, bez kterého si trading nedokážu vůbec představit. Tabulkový procesor lze dnes využít k řešení ohromnému množství úkolů. Mj. existují různé pluginy, které umožňují v Excelu zobrazovat grafy trhů, aplikovat na ně indikátory, nechávat si vypočítávat nejrůznější simulace atd. Většina traderů však bude Excel používat k jednodušším činnostem – k analýzám svých obchodů, ať již z backtestů, papertradingu či reálného obchodování. V praxi tak mám například vytvořený pro všechny své obchody (ať již spreadové, opční či intradenní) excelové deníky, ve kterých si zapisuji úplně každý obchod, který jsem zkoumal na historických grafech (backtest) nebo obchodoval v reálném čase. K obchodu si zapisuji řadu dalších údajů (jako alternativní výstupy, obchody se snažím různě kategorizovat), čímž získávám nesmírně důležitou databázi, jejíž průběžná analýza mě pomáhá k lepším výsledkům.

    Excelu se zatím na Finančníkovi věnujeme spíše v rámci jeho celkové aplikace. Přehlédnout byste neměli tato témata:
    Využití Excelu pro trading
    Aktuální data trhů v obchodním deníku v MS Excelu
    Novinky v denících pro backtestování a vyhodnocování parametrů obchodních systémů
    Diskuze: EXCEL - rady a tipy

    Software pro poziční obchodování

    Nároky na software v oblasti pozičního a spreadového obchodování se budou výrazně lišit obchodník od obchodníka a budou vycházet z nástrojů, které pro své strategie každý používá.
    Je dobré si uvědomit, že poziční obchodování je zde již od vzniku burz. Žádné počítače dříve nebyly k dispozici, a přesto existovala spousta úspěšných obchodníků. Dnes je již opravdu zbytečně obchodovat bez počítače s ručně zakreslovanými grafy, ale především v začátcích je dobrá maximální zdrženlivost, co se nákupů software týče. Sami brzy poznáte, že pozičně obchodovat lze i se zcela bezplatnými řešeními.
    Abyste se dokázali od začátku v oblasti co nejrychleji zorientovat, připravili jsme pro vás tipy na několik různých řešení. Rozdíly mezi nástroji si tak popíšeme prakticky na konkrétních příkladech, které sami využíváme. Nicméně výčet programů samozřejmě není konečný, existuje tisíce dalších software, které se nabízejí k prodeji.

    Brokerské platformy

    Skutečně pryč jsou doby, kdy dobré analytické programy poskytovaly pouze specializované softwarové společnosti a aplikace brokerů byly dobré tak maximálně pro zadávání obchodních příkazů. Řada brokerských domů pochopila potřeby svých zákazníků a postupně jim připravila řešení, která jsou často minimálně srovnatelná s klasickým analytickými programy. Programy poskytují brokerské společnosti často zdarma a včetně dat, která bývají pro neklienty zpožděná o 15 minut, což však pro testování strategií pozičního obchodování není vůbec podstatné.

    Programů je v této kategorii opravdu velká spousta, finální výběr tak bude záležet na každém obchodníkovi. S Tomášem sami používáme v této kategorii software ThinkorSwim, který je k dispozici všem na internetu zcela zdarma. Program byl dřív určen především pro obchodování opcí, nicméně je neustále vyvíjen a dnes jej lze bez problémů používat jako bezplatnou analytickou platformu (což je důvod proč zde program zmiňujeme – je na každém, jakého brokera si následně zvolí, předmětem tohoto textu není žádné konkrétní doporučení či hodnocení brokerských služeb). Obchodník zde má k dispozici data jak akciových, tak komoditních i forexových trhů, komfort práce s platformou je přitom již opravdu vysoký. Samozřejmostí je nastavení libovolných indikátorů (např. šablony FinWinu), používání více grafů současně, používání nástrojů technické analýzy atd.

    prehled-tos1.gif, 74kB

    Bezplatnou platformu ThinkorSwim jde dnes použít i coby samostatný analytický nástroj. Na obrázku zobrazen trh komoditního kontraktu kukuřice se šablonou obchodního systému FinWin. Na horním grafu je zobrazen denní graf, na spodním týdenní.

    Linky:
    Platformě ThinkorSwim se na Finančníkovi věnujeme především z pohledu opčního obchodování, protože práce s grafy je v programu velmi intuitivní:
    Seriál o platformě Think or Swim

    Analytické platformy

    Rozdíly mezi programy poskytovanými brokery a „nezávislými“ analytickými programy se stírají čím dál více. Většina dříve samostatných programů se postupně strategicky „napojila“ na brokery a svým způsobem dnes často slouží současně jako jejich obchodní platformy (a jsou i tak nabízeny). Jediným poznávacím znamením tak patrně zůstává skutečnost, že jde o programy, za které musí trader samostatně platit. Proč platit, když jsme si výše ukázali, že velmi dobrá a kompletní řešení jsou již od brokerů často zdarma? Protože specializovaný software může nabídnout řadu funkcí, které u brokerské platformy stále nejsou samozřejmostí.

    Z analytických software bych doporučil vyzkoušet program NinjaTrader, na kterém se můžete seznámit s tím, jak podobné programy fungují. Pokud přes program nebudeme přímo obchodovat (tj. nebudete potřebovat přímé propojení s brokerem pro odesílání příkazů na burzu), je tento program ve zcela plnohodnotné verzi k dispozici zdarma. Současně nabízí všechny potřebné nástroje k tomu, abyste mohli v klidu analyzovat historické i současné grafy například prostřednictvím systému FinWin. Jako ideální řešení se program jeví pro poziční obchodování akcií. NinjaTrader lze napojit na bezplatný zdroj dat od Yahoo, odkud lze čerpat jak aktuální, tak historická data. Trader tak získává zcela bezplatné a přitom vyspělé řešení pro backtest svých strategií a analýzu aktuálních trhů. V případě dat z komoditních trhů je třeba napojit pro získávání dat program na některého podporovaného brokera nebo si data zaplatit.

    Linky:
    Velmi podrobný seriál s řadou videotutoriálů pro ovládání programu NinjaTrader.

    Důvodem pro používání specializovaných analytických programů může být také jejich zaměření na užší segment obchodních taktik. Do této kategorie spadá i spreadové obchodování. Zobrazovat spready umí řada programů, ostatně vždyť graf spreadu není nic jiného, než rozdíl cen dvou trhů nebo dvou kontraktních měsíců. Nicméně komfortní práce se spready je skutečně doménou buď specializovaných programů, nebo i těch univerzálnějších, ale spadající do dražší cenové hladiny. Sami pro práci se spready používáme program Gecko Track’n Trade Futures. Program by se dal označit spíše za jednodušší a intuitivnější, ale pro práci se spready má více funkcí, než programy pokročilé.

    Linky:
    Seriál o programu Gecko TnT

    Poziční obchodník může samozřejmě sáhnout i po dražších a sofistikovaných řešení. Mezi dvě patrně nejpoužívanější řešení patří programy TradeStation a GenesisTrade Navigator. Tyto programy pak lze pochopitelně používat pro všechny typy analýz. Sám jsem spokojeným uživatelem platformy TradeStation, nicméně jde již o dost komplexní a dražší software.

    Linky:
    Seriál pracujeme s TradeStation

    Software pro intradenní obchodování

    Intradenní obchodník potřebuje pro úspěšné obchodování především software, který je intuitivní, stabilní, nabízí potřebné funkce a timeframy, disponuje intradenními daty a v ideálním případě lze propojit s používaným brokerem (aby se přímo z něj daly rychle zadávat obchodní příkazy). Tato kritéria opět splňuje celá řada sofware a výběr hodně záleží na preferencí každého tradera.
    Pochopitelně, že lze používat stejné programy, které jsme si představili v předcházející sekci pozičního obchodování (kromě Gecko T’n T, které je určeno výhradně pro poziční obchodování). A samozřejmě, pokud se stanete tradery, kteří budou aplikovat různé obchodní styly, budete jistě chtít používat jeden software pro všechny své analýzy, tudíž sáhnete po univerzálnějším řešení.

    Pokud však zůstaneme u začínajících traderů a měli bychom vám představit řešení, se kterými je možné začít kvalitně a současně co nejlevněji objevovat svět intradenního obchodování, pak jsou naše tipy následující:

    Program, který v této kategorii stojí za pozornost, je bez diskuze opět NinjaTrader, a to především z důvodu, že pro backtestování či papertrading jde o řešení zcela bezplatné a přitom velmi kvalitní. Sám tento program používám pro reálné obchodování v napojení na InteractiveBrokers (v případě živého obchodování je třeba program již platit). Do programu lze získávat i velmi kvalitní data od zen-fire.com (viz níže), která jsou v rámci zkušební verze zdarma. S kompletem si tak lze intradenní obchodování osahat bez jakýchkoliv investic do dat či software a vyzkoušet, co člověku vyhovuje a co vlastně hledá.

    Linky:
    Velmi podrobný seriál s řadou videotutoriálů pro ovládání programu NinjaTrader.
    TIP: Videotutoriál - zprovoznění živých a historických dat v programu krok za krokem

    Dalším velmi oblíbeným programem intradenních obchodníků je program SierraChart. Jde opět o program nabízející vše, co si intradenní obchodník může přát. Obchodník si může nechat data vykreslovat v libovolném timeframe, může používat více grafů najednou, program disponuje obrovskou škálou indikátorů, které si může obchodník i sám upravovat.
    Na rozdíl od NinjaTrader není tento program zdarma – je třeba si jej pronajímat, ale cena je velmi lidová. Konkurenční výhodou programu je jeho výraznější technologická vyspělost a nižší nároky na výkon počítače. Dalším plusem programu může být, že si obchodník může koupit levná data přímo od výrobce programu – za jeden poplatek tak získává „kompletní produkt“. Data však lze do programu samozřejmě získávat také od komerčních poskytovatelů dat, nebo od brokerů.

    Linky:
    Velký seriál s videotutoriálu věnovaný programu SierraChart
    Sierra a data: Sierra Chart – realtime data a playback

    Software pro opce

    V případě opčního obchodování je situace v oblasti software výrazně jiná než při obchodování komodit nebo akcií. Opční obchodníci pracují více s čísly než s grafy - část z nich navíc nepotřebujeme v podstatě žádný software, jiní potřebují pro své analýzy spíše opční risk grafy vyhodnocující nejrůznější pravděpodobnosti. Nabídka software pro obchodování opcí je tak velmi roztříštěná – na jedné straně jsou k dispozici různé aplikace postavené na Excelu (a řadu z nich je možné si stáhnout zdarma), na druhé straně je dnes patrně hlavní opční software OptionVue, který však dost usnul na vavřínech a jeho poměr cena/výkon je při srovnání s ostatními řešení skutečně hodně nevyvážený.
    Řešení, které je dnes pro opční obchodníky patrně nejatraktivnější, je již zmíněná platforma ThinkorSwim. Výrobce postupně integroval do programu funkce, které byly dřív k dispozici právě jen v nejdražších programech a dnes tak tento bezplatný program nabízí vše, co opční obchodník potřebuje – od dat opcí, přes risk grafy, pravděpodobnostní analýzy, grafy až po backtestování opcí. ThinkorSwim je pochopitelně nabízen především pro klienty této brokerské společnosti, nicméně i bez založení účtu je možné program používat ve zcela neomezené verzi (pouze data jsou o 15 minut zpožděná, což v případě opcí nevadí často ani pro živé obchodování). Mnoho obchodníků tak používá program ThinkorSwim jako bezplatnou analytickou platformu bez ohledu na to, u jakého brokera poté obchody provádějí.

    Linky:
    Seriál o platformě Think or Swim
    Opce - seriál obchodování opcí, ve kterém se pravidelně věnujeme také platformě Think or Swim

    Speciální software

    Kromě analytických programů se pro trading mohou hodit některé specializované programy. Sami v této kategorii používáme program Market System Analyzer, spadající do oblasti money managementu. Program nám pomáhá analyzovat výsledky našich backtestů či reálných záznamů, simulujeme v něm position sizing a obecně zkoumáme parametry a robustnost našich obchodních systémů. Program určitě doporučujeme k vyzkoušení.

    Linky:
    Seriál o programu Market System Analyzer

    13.5.2009

    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.