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í
  • 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

    5.5.2010

    Finančník.cz


    Mohlo by vás dále zajímat

    Bulls 'n Bears obchodní systém pro Gecko Track'n Trade Pro

    Všem uživatelům programu Gecko Track'n Trade Pro patrně neuniklo, že výrobce, společnost Gecko představila nový zásuvný modul určený pro tento program - obchodní systém Bulls'n Bears. Jelikož dostáváme s Tomášem řadu dotazů jaký je náš názor na tento plugin, připravili jsme o tomto novém rozšíření TnT krátký článek. Dopředu však musíme upozornit, že nejde o podrobnou recenzi a ani v článku nezazní jakýkoliv jednoznačný závěr -s tímto obchodním systémem nemáme zatím žádné praktické zkušenosti a jakékoliv závěry by tak byly přinejmenším předčasné.
    Ale vraťme se na začátek k samotnému programu Gecko Track'n Trade Pro. Pro nové čtenáře Finančníka jenom stručně v krátké rekapitulaci: TnT 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, kteří se mohou soustředit na samotné trhy a nikoliv na technické problémy. Program je určen pro komoditní trhy a pracuje s denními daty (tzv. End Of Day), které graficky znázorňuje pomocí denních, týdenních a měsíčních grafů (výrobce nabízí i intradenní verzi pro akciové trhy a forex). TnT je tedy určen pro poziční obchodování (nikoli intradenní) a slouží především pro plánování obchodů pomocí technické analýzy trhů. Výhodou programu je i skutečnost, že se dodává již s více než 25ti letou historií všech hlavních komoditních trhů a je 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ůže i začínající obchodních "den po dnu" projít řadu trhů a v podstatě v reálných podmínkách simulovat, jak by se v dané situaci rozhodoval. Pokud jste o programu dosud neslyšeli, můžete řadu informací načerpat ze seriálu, jehož první díl naleznete na této adrese.
    Klasické nástroje technické analýzy nyní výrobce rozšířil o kompletní obchodní systém nazvaný Bulls 'n Bears. Jde o trendfollowingový obchodní systém, který se svojí vnitřní logikou graficky odlišuje downtrend a uptrend a označuje pásma, kdy jde cena do strany. Výstupy jsou v systému naznačeny pomocí parabolicky umísťovaného stop-lossu.
    Interní logiku obchodního systému výrobce z celkem pochopitelných důvodů nezveřejňuje, jde tedy o určitý "black box", jehož výstup je kreslen do grafů TnT.

    Graficky lze systém nastavit několika způsoby. Informace o stavu trendu je možné zobrazovat buď grafickými symboly mimo cenové bary, nebo změnou barvy cenového grafu tak, jak je zobrazeno na našich screenshotech.
    V pojetí výrobce představuje základní vstupní signál:
    žlutý bar následovaný dvěmi červenými bary pro vstup do short pozice žlubý bar následovaný dvěmi zelenými bary pro vstup do dlouhé pozice Umístění stop-lossu je znázorněno modrými tečkami parabolického indikátoru (podrobnější info o podobné indikátoru Parabolic SAR můžete najít v našem článku Začínáme obchodovat V: PSAR - Parabolic SAR.


    Postřehy Finančníka
    Jak jsem již naznačil v úvodu článku, se systémem nemáme zatím žádnou praktickou zkušenost a tak není možné hodnotit jeho výsledky. Ty navíc budou velmi závislé od toho, jak konkrétně bude systém obchodník aplikovat do trhů. Na přiložených screenshotech nicméně vidíte, že systém poměrně slušně identifikuje hlavní trendy trhů a při použití dalšího potvrzujícího nástroje (např. průlom trendové linky, nějaký jednoduchý indikátor), používaného do směru trendu, zcela jistě může fungovat jako konkrétní obchodní systém.
    Co se výstupů týče, tak použití parabolického indikátorů vytváří zejména po vstupu do pozice podle našeho názoru v komoditních trzích již hodně velký stop-loss a pro řadu obchodníků tak bude zajímavější postavit stop-loss ze začátku blíže - např. do fixní vzdálenosti podle volatility trhu nebo nad S/R úroveň.

    Obrovskou výhodou systému je jednoznačně jeho jednoduchá interpretace. Pomocí barev "semaforu" jak říká jednotlivým barvám výrobce, může i začínající obchodník snadno identifikovat hlavní trend a obchodovat čistě do směru trendu, což výrazně zvyšuje šance na dlouhodobější profity.
    Na sobotním brněnském setkání mi některý z přítomných obchodníků uváděl první pozitivní zkušenosti se systémem a slíbil, že zkusí vkládat poznatky postupně do našeho diskuzního fóra, takže věřím, že se o průběžných zkušenostech se systémem postupně dozvíme více.
    Pokud s tradingem začínáte a ještě jste Gecko TnT nezkoušeli, tak jednoznačně doporučujeme si software stáhnout a vše otestovat - první měsíc budete mít zdarma k dispozici nejen samotný program, ale i tento obchodní systém, který může řadě nováčkům výrazně pomoci s identifikací trendu a formováním konkrétního obchodního systému. Systém Bulls'n Bears funguje v TnT samozřejmě i na historických grafech, takže je možné jej testovat opravdu neomezeně. Jako tip znovu připojuji radu pokusit se systém doplnit např. o vstupy z některého indikátoru nebo o průlomy trendových linek či S/R úrovní do směru trendu zobrazeného systémem. Program si můžete v bezplatné 30ti denní zkušební verzi stáhnout zde.

    Praktický návod jak analyzovat vlastní obchodní výsledky v programu typu MSA - import

    Minulý týden jsme si představili program Market System Analyzer 2.0 sloužící pro analýzy výsledků obchodních systémů a především aplikaci různých typů money-managementu. Dnes si ukážeme, jak vést vlastní obchodník deník tak, abychom jej mohli do programu MSA snadno importovat a jak takový import provést.
    Obchodní deník
    Jak si vést alespoň základní obchodní deník jsme na Finančníkovi ukazovali již několikrát (např. článek Jak si připravit a používat jednoduchý obchodní deník, kapitola Obchodní deník našeho on-line manuálu.
    Informace z každého obchodního deníku lze pochopitelně exportovat tak, aby je bylo možné v MSA analyzovat. Aby to však bylo co nejsnazší, přikládám pro ukázku konkrétní příklad v podobě velmi blízké té, jakou si vedu pro intradenní obchodování já:

    Deník je připraven v Excelu a při obchodování vyplňuji následující položky:
    datum obchodu čas obchodu vstup (cena, za kterou jsem vstoupil do pozice) výstup (cena, za kterou jsem vystoupil z pozice) pozice (-1 pro krátkou pozici, 1 pro dlouhou pozici) LOT (počet obchodovaných kontraktů) Deník mám připraven pro intradenní obchodování, a tak na jednom listu obchoduji stále stejný kontrakt (konkrétně E-mini Russell 2000). Pokud bych obchodoval další kontrakt, založím si jednoduše další list (v poli S2 je třeba nastavit odpovídající velikost plného bodu). Zbylá políčka jsou nastavena tak, že automaticky počítají zisk a ztrátu z konkrétního obchodu. Na stránce je ještě několik automatických sloupců, které zde mám připraveny pro další dílčí výpočty (tyto sloupce již nejsou na screenshotu). Poslední sloupec "Bankroll" (který také není na screenshotu) obsahuje aktuální "stav účtu", tj. průběžně sčítá zisky a ztráty (mínus odpovídající komise, kterou je třeba vložit do políčka S4).
    Deník si můžete v excelovské tabulce stáhnout pro své vlastní potřeby zde (soubor Microsoft Excel). Je to samozřejmě jenom návrh obchodního deníku, který si můžete uzpůsobit zcela podle svých obchodních potřeb.
    Import dat do MSA
    Předmětem dnešního článku je však návod, jak přenést data z obchodního deníku do programu MSA k dalším analýzám a testování různých money-management taktik.
    Pro začátek doporučuji zkusit postup s deníkem, který je přiložen k tomuto článku. Deník již obsahuje poměrně slušnou historii dat, na které si můžete nejen vyzkoušet převod do MSA, ale i základní ovládání programu. Mimochodem - data vložená v deníku jsou obchodní výsledky plně automatizované verze tří let obchodů podle Pavlova obchodního systému "PB systém", který je diskutován v diskuzním vlákně věnovaném e-mini trhům (pro nezasvěcené upřesňuji, že jde o diskréční obchodní systém, který však i v plně mechanické podobě, kterou jsme ve fóru sestavili pro otestování základní robustnosti systému, dává stále poměrně zajímavé výsledky, byť je charakteristika systému výrazně méně profitovější než v případě diskréčního obchodování). Všechna data uložená v našem ukázkovém deníku jsou samozřejmě pouze ilustrační (důvodem pro použití právě dat z PB systému je možnost jejich dalšího testování zejména pro účastníky e-mini diskuze). Data jsou vyexportována z programu TradeStation, datum a čas obchodu je vyplněn pro ilustraci pouze u prvních několika obchodů.
    Krok 1 - uložení dat do CSV souboru
    Předtím, než data můžeme načíst do MSA, je třeba excelovský soubor uložit do textového formátu CSV. Zvolte Soubor > Uložit jako, zadejte příslušný název souboru a z menu Typ Souboru vyberte CSV oddělený středníkem. Pozor - ujistěte se předtím, že jste si uložili poslední aktuální verzi deníku do původního xls souboru pomocí tlačítka Uložit.

    Data v Excelu uložíme jako soubor CSV oddělený středníkem.
    Operaci potvrďte kliknutím na tlačítko OK a následné okno potvrďte kliknutím na tlačítko Ano (Excel upozorňuje, že převodem do jednoduchého souboru CSV se ztratí některé vlastnosti dokumentu).

    Z konce textového souboru vymažeme řádky obsahující pouze středníky, které import komplikují.
    Tip 1: Zeditujte nyní pomocí Poznámkového bloku vytvořený soubor a vymažte poslední řádky obsahující pouze středníky (tyto prázdné řádky dělají programu MSA při převodu problémy).
    Tip2: Změny vytvořené v Poznámkovém bloku můžete uložit až poté, co uzavřete Excelovský dokument.
    Krok 2 - načtení CSV do MSA
    Nyní již můžeme uložený CSV soubor načíst do programu MSA pomocí funkce Trades > Import > General Text File.

    Dialogové okno Import Format programu MSA.
    V zobrazeném dialogovém okně Import Format jako první zaškrtněte políčko Delimiters > Semicolon. Toto políčko programu říká, že jednotlivé sloupce jsou odděleny v textovém souboru středníky.
    Nyní je třeba v MSA označit význam jednotlivých sloupců:

    Kliknutím na záhlaví tabulky se zobrazí dialogové okno Select data label.
    Kliknutím na záhlaví tabulky v okně Import Format se zobrazí malé dialogové okno "Select data label", prostřednictvím kterého musíme jednotlivým sloupcům přiřadit příslušný význam. Sloupcům, které nebudeme v MSA potřebovat, přiřadíme označení SKIP (vynechat).
    Sloupce nastavíme tak, aby původní názvy z Excelové tabulky odpovídaly následujícím pojmům:
    Vstup = Entry Price
    Výstup = Exit Price
    Pozice = Long/Short
    LOT = Size
    Zisk/Ztráta = Profit/Loss
    Tabulka import by pak měla vypadat podobně jako na následujícím screenshotu:

    Jednotlivým sloupcům jsme přiřadili příslušný význam, ostatní sloupce označíme SKIP.
    Poslední operací v rámci okna import je zaškrtnutí volby Skip first 2 lines - programu říkáme, že první dva řádky načítaného souboru neobsahují obchodní výsledky, ale jsou pouze popisné.

    Nyní již stačí kliknout na tlačítko Import a všechny naše obchodní výsledky se přenesou do programu MSA, kde je můžeme dále zpracovávat.
    Krok 3 - základní nastavení programu MSA

    Obrázek obsahuje pouze ilustrační hodnoty.
    Předtím, než začneme v programu své obchodní výsledky analyzovat a zkoušet na ně aplikovat různé money-management techniky, je třeba nastavit základní parametry účtu, aby prováděné operace dávaly smysl. Základní nastavení parametrů se v MSA provádí pomocí volby Analysis > Setup > Account Settings. Zde je třeba nastavit především počáteční kapitál (starting account size - např. 5000 USD), maximální počet obchodovaných kontraktů (trade size limit), margin nutný pro otevření pozice (initial margin per contract), skluz na kontrakt (round turn slippage per contract /zde zadávejte raději co nejvyšší hodnotu podle skluzu, který očekáváte - vše závisí na obchodovaném trhu, použitých příkazech ke vstupu/výstupu, obchodované strategii atd./), výši komise na kontrakt (round turn commission and fees per contract). Nastavení potvrďte kliknutím na tlačítko OK.

    Poté již v programu vidíme parametry našeho systému s aplikovanými všemi nastaveními (tj. včetně komise a slipů) a systém můžeme testovat po stránce jeho robustnosti (např. Monte Carlo analýzou) nebo si zkoušet dopady aplikace různých typů position sizingů (pro některé typy money-managementu je třeba vyplnit ještě další záložky v okně Analysis Setup).
    Závěrem
    Konkrétním tipům jak s programem MSA pracovat se budeme věnovat v dalších částech našeho volného seriálu. Nicméně skutečně doporučuji si program průběžně zkoušet, třeba na datech, která si můžete stáhnout v rámci tohoto článku. Money management je oblast, která je pro trading nesmírně důležitá. A byť třeba ještě zatím nemáte vlastní funkční obchodní systém, může vás již samotné základní pochopení principů money managementu na cestě k úspěšnému tradingu skutečně výrazně posunout dál. Můžete si totiž na vlastní kůži vyzkoušet, že svatý grál nespočívá v nalezení systému s extrémní výkonností nebo úspěšností, ale pro úspěšné obchodování stačí stabilní, rozumně profitující obchodní systém s vhodně zvoleným money managementem.

    GSB – automatizovaná cesta pro zkoumání trhů a vytváření obchodních systémů

    Dnešní trhy vyžadují zejména na nižších timeframe průběžné zkoumání širších souvislostí toho, co v nich funguje a co už nikoliv. Což je dost práce, kterou je dobré maximálně zefektivňovat použitím různých nástrojů. Těch existuje celá řada, ale ne všechny stojí za námahu. Jednou z výjimek, která mě poslední dobou oslovila, je program GSB.
    Co je horší – snažit se slepě obchodovat systémy vytvořené tvrdým dataminingem, nebo mysl zabetonovat používáním starých přístupů? Těžko říci, ale z mé zkušenosti nepovede ani jedna z uvedených cest k dlouhodobým profitům.
    Agresivní dolování dat (datamining), kdy trader neustále prochází stejná historická data, až nalezne systém s parametry, které hledá, vede k obchodování přeoptimalizovaných systémů, které na nových datech nevydělávají. Používání starých a obecně známých přístupů sice může vést k systémům založených na smysluplných a ověřených principech, ovšem ani ty s velkou pravděpodobností nebudou zejména na nižších timeframe dnes již vydělávat. Jednoduše proto, že popisovaná tržní neefektivita z trhů vymizela tím, jak ji v průběhu času obchodovalo velké množství traderů.
    Je potřeba jít určitou střední cestou. Vycházet z ověřitelných a vysvětlitelných myšlenek a na nich se nebát stavět nové a inovované obchodní přístupy.
    Sám rád ve svém obchodování vycházím z „idea first“ přístupu, kdy systémy stavím na pro mě srozumitelné a odůvodnitelné hypotéze, proč by profitabilita daného přístupu měla v trzích vydržet. Současně si ale rád pomáhám automatizovaným prohledáváním ideálního kontextu, ve kterém základní myšlenka dnes funguje nejlépe (viz workflow Fcontext diskutované v AOS kurzu). Podobný přístup mi pomáhá objevit souvislosti, které není možné v rozumném čase otestovat ručně.
    Proto mě velmi potěšilo, že jsem objevil program Genetic System Builder (GSB), jehož autor, trader Peter Zwag, vyvíjí software, který se v řadě ohledech zaměřuje v trzích na řešení podobných problémů, které jsou i pro mě důležité.
    Řekne-li se genetická stavba obchodních systémů, patrně vás, stejně jako mě, napadne tradiční software pro „datamining“. Dnes existuje spousta programů umožňujících procházet historická data a, zjednodušeně řečeno na nich automatizovaně testovat různé kombinace indikátorů a cenových patternů za cílem získat obchodní systém. Jak jsem předeslal, jsem vůči podobným cestám poměrně skeptický. Bohužel často podobné softwary najdou to, co chce obchodník najít. Tedy systém s hezkými historickými výsledky včetně krásných ověření na OOS datech, která se prostě vyberou z tisíců a tisíců možných systémů, které systém vygeneruje.
    Proč se mi pak líbí GSB? Protože přes svůj název není program zaměřen jen na genetické vytváření systémů. Jeho silnou stránkou je analytické zkoumání širšího kontextu toho, co v trhu funguje a co nikoliv. A teprve do tohoto kontextu pak můžeme více či méně automatizovaně vytvořit obchodní systém. Tato filosofie hodně resonuje s tím, co při vývoji systémů sám vnímám za důležité a celkově je na programu vidět, že jej tvoří zkušený trader vycházející z vlastní praxe systematického obchodování (výsledky Petera jsou mj. ověřené například v časopise Futures Truth, kde sledují a porovnávají automaticky obchodované systematické strategie).
    Popsat konkrétní funkcionalitu GSB není úplně jednoduché, protože program toho umí opravdu hodně. A co především – je neustále rozšiřován (opravdu velmi aktivně). Je na něm skutečně znát, že je autorem využíván pro vlastní trading a analýzy trhu. Podrobnější představu o způsobu využití programu můžeme získat z těchto anglických videí (do fóra je nezbytná bezplatná registrace), program je pak možné vyzkoušet ve 14denní plně funkční demoverzi, kterou naleznete zde.
    Co tedy umí GSB ve zkratce?
    Jako kterýkoliv program na automatizované vytváření obchodních systémů umí GSB vzít jako vstup například 30minutová data trhu e-mini S&P 500 (ES) a zkoušet na jejich historii vytvořit obchodní systém složený z různých indikátorů a jejich parametrů. Co se mi líbí na GSB je skutečnost, že už tato část je dotažena nad rámec toho, co se nabízí jinde. Je možné pracovat s pokročilými fitness funkcemi ovlivňujícími výsledek vytvářených systémů, systémy automaticky verifikovat na vybraných dalších trzích a timeframe a následně je verifikovat pomocí WFO. Dále lze automaticky vytvářet systémy s využitím více trhů či timeframe, vybírat použité indikátory, aplikovat různé stop-lossy, výstupy atd.
    Řadu zmíněných funkcí nabízí i jiné podobné programy, byť si myslím, že GSB hezky integruje podstatné funkce, které v této oblasti trader potřebuje.
    V čem GSB z mého pohledu exceluje, je rychlost a výkon. A to je v této oblasti prakticky to nejdůležitější.
    Samotný GSB pracuje svižně. Můžeme jej spouštět jako klasickou desktopovou aplikaci, kde pochopitelně výkon nejvíce záleží na parametrech samotného použitého hardwaru. A ten je vždy omezený, i když zvolíme výkonnější hardware. Jako opravdu dobrý a promyšlený krok tak hodnotím skutečnost, že GSB umí pracovat coby cloudové řešení. V tomto případě nastavujeme testované analýzy v tzv. Managerech, které následně spouští Workery – instance zpracovávající výpočty. Ty mohou být na stejném počítači, na jiných našich počítačích nebo v cloudu – na cizích počítačích.
    Jako cloud přitom mohou sloužit i počítače ostatních uživatelů GSB (lze nastavit, jestli se do cloudu chceme zapojit či nikoliv). Toto provedení mi přijde jako opravdu dobré. Většinou se podobné programy instalují na servery, které běží nonstop (sám si řešení pronajímám, viz popis zde). Spotřeba elektřiny i odpisy hardwaru jsou v takovém případě započteny do ceny nájmu a je úplně jedno, jestli servery běží naprázdno nebo jsou plně vytíženy. V době, kdy doběhnou testy, tak dává naprostý smysl sdílet výkon s ostatními. Jakmile pak sám potřebuji skokový výkon a jsou volné servery ostatních, získávám násobně vyšší výkon, který by mne stál v pronájmu vlastních serverů opravdu hodně peněz. Samozřejmě sdílený výkon se liší v čase a nejvíce závisí na tom, jestli své servery využívá tvůrce programu Peter. Nicméně vesměs získávám s GSB běžně dvoj až trojnásobek výpočetního výkonu, než který mi poskytují vlastní servery. Což je u podobného řešení nezanedbatelná výhoda. V každém případě Peter slibuje, že uživatel vždy získá alespoň jednoho cloudového workera zdarma, což už samo o sobě může pomoci pohnout s výpočty.

    Ukázka prostředí GSB. Vpravo je vidět, že výpočet probíhá na celkem 30 workerech. Přitom jen 5 jich běží na mém vlastním hardwaru. Ostatní jsem v daném okamžiku využil bezplatně, což samozřejmě výrazně zvyšuje efektivitu celého výpočetního procesu.
    Dobré je, že Peter poskytuje k celému řešení bezplatně samostatný software Resource Manager umožňující výkon řídit – můžeme si například nastavit prioritu, se kterou se budou spouštět vlastní workery (a ostatní budou zastaveny). Sdílení výkonu pak probíhá naprosto automaticky.

    V Resource Manager mám nadefinované dvě skupiny – první jsou mí vlastní workeři. Ti mají přednost a běží v momentě, kdy s programem pracuji. V druhém řádku jsou potenciální workeři z cloudu, kteří se spustí v okamžiku, kdy server není vytížen.
    Právě zmíněná cloudová funkcionalita posouvá GSB k možnostem, které jsem jinde nenašel (v dané cenové kategorii). Vysoký dostupný výkon mi coby traderovi poskytuje analytické možnosti zmíněné na začátku článku.
    Efektivně dovoluje zjišťovat, co na daném trhu funguje a co ne. Tak, že vygenerujeme statisticky relevantní počet, například několik desítek tisíc systémů a vyhodnocujeme různé celkové degradace systémů v out of sample datech. Nezaměřujeme se na jeden systém, ale na statistický vzorek. Můžeme například snadno porovnat OOS degradaci 10 000 vytvořených systémů z ověřování na jiném trhu a bez tohoto ověřování. Snadno tak zjistíme, jestli daný prvek ověřování skutečně celkově pomáhá na daném timeframe vytvářet robustnější systémy či to byla jen záležitost u několika málo systémů.
    Jistě, spousta uvedeného lze provádět v jiných softwarech. Ostatně sám jsem některé podobné principy testoval v Amibrokeru s pomocí OLE automatizace. Ale právě s využitím cloudového výkonu je toto opravdu práce na jiné úrovni.
    I díky tomu, že program umožňuje některé chytré analýzy, které jsem zatím v jiných programech neviděl.
    Především způsob definování in-sample a out of sample dat, pomocí kterých je možné sledovat degradaci systému v rámci učení (in-sample data) a testování (out of sample data). Tradičně se dělí data trhu například v poměru 60 % IS a 40 % OOS (nebo podobně, podle osobní preference). Jenže to s sebou nese problém, že daná testovaná období trhu se mohou velmi lišit svým charakterem. Proto se mi velmi líbí myšlenka používat jako OOS data každý druhý den či každý druhý měsíc a podobně. Systémy pak učíme na celém období dat (kdy software vidí například každou druhou úsečku) a testujeme na druhé části úseček. Do vývoje systému pak zahrnujeme všechny zásadní fáze trhu a vyhodnocení na OOS bude mít více vypovídající hodnotu. V GSB lze toto přitom nastavovat velmi flexibilně.

    Silnou stránku GSB vnímám v jeho komplexnosti, která je využitelná v praxi právě i díky cloudovému výkonu. V řadě programů lze provádět například walk forward testování (wf) a GSB není výjimkou. Ale kdo někdy wf prováděl, jistě může potvrdit, že tyto testy vyžadují hodně výkonu a tedy času, pokud vše probíhá na jednom počítači. V GSB lze i walk forward provádět pomocí workerů (tedy v cloudu) a reálně lze propočítat vyšší stovky wf na intradenních systémech za den. Na cloudu lze nechat i automatické ověřování systémů na jiných trzích/timeframe a následně jen ve statistikách sledovat, jak si systém vedl na zvolených trzích/timeframe určených pro validaci. Výsledkem je pak podobný přehled, kde můžeme na jednom místě vidět, jak stabilní jsou výsledky. Lze sledovat stabilitu výsledku na ověřovaných jiných trzích a timeframe, ale i stabilitu výsledků z pohledu použitých parametrů. V tomto ohledu se mi moc líbí Peterův parametr stability umožňující vybírat ty systémy, jejichž parametry se v průběhu času nemění (a existuje tak vyšší šance, že v live tradingu bude systém robustnější).
    Generované systémy lze z GSB rovnou přenášet v hotovém kódu do TradeStation.
    GSB toho skutečně umí hodně, byť je to pochopitelně opět jen software – nástroj, jehož výsledky budou do velké míry záležet na jeho použití. Určitě nejde o software typu „zapni“ a po x minutách získáš systémy připravené k živému obchodování. Naopak. Jde o nástroj poskytující různé analýzy, nad kterými je třeba přemýšlet a trávit čas. A teprve následně výsledek práce použít k vytvoření obchodovaného modelu. Který by ale měl mít vyšší šance na robustní výkonnost v živých trzích.
    V každém případě doporučuji shlédnout Peterova videa popisující metodologii s jakou trhy testuje.  A případně prozkoumat zkušební verzi programu. Už i to může přinést do vašeho vývoje strategií nové podněty a zajímavé inspirace. Té nabízí GSB dost. A byť software stojí 1 500 dolarů, jde z mého pohledu o smysluplné řešení v této silně konkurenční oblasti.
×
×
  • Vytvořit...

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.