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

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

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

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

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

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

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

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

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

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

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

    gsb-wf.jpg

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

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

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

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

    17.3.2019

    Petr Podhajský

    Fulltime obchodník věnující se tradingu více než 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

    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

    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.

    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

    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.


    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.

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

    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í.
    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 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“:

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