Pracujeme s TradeStation (3)
V minulém díle našeho seriálu jsme si ukázali, jak v programu TradeStation připravit triviální testovací "obchodní systém". Dnes náš připravený kód aplikujeme na data a podíváme se jak v TradeStation zkoumat výsledky našich automatizovaných backtestů.
Máme-li napsaný kód obchodní strategie (viz minulý díl), je třeba ještě poslední krok, před nasazením na data kód ověřit. Ověření se provádí kliknutím na tlačítko Verify v horní nástrojové liště editoru EasyLanguage (tlačítko se zeleným zaškrtávátkem). V rámci této operace TradeStation zkontroluje, zda-li je kód po programátorské stránce v pořádku a případně upozorní na nesrovnalosti, které je třeba opravit.
Jakmile máme kód ověřený, již nic nebrání jej zkusit aplikovat na realtime nebo historická data.
Otevření grafu, výběr timeframe
Nový graf v TradeStation otevřeme kliknutím na ikonu Chart Analysis:
Otevře se graf obsahující symbol a timeframe, se kterým bylo v programu pracováno naposledy. Změnit symbol a timeframe lze přes volbu hlavního menu Format > Format Symbol (volba je dostupná také přes kontextové menu, které se vyvolá kliknutím pravého tlačítka myši do grafu).
TIP: TradeStation lze nastavit také tak, aby se okno s formátem symbolu zobrazilo vždy po kliknutí na tlačítko Chart Analysis. Volbu lze nastavit přes hlavní menu, položka View > Chart Analysis Preferences. Zde v záložce General zaškrtněte volbu Promt for format when creating new Chart Analysis windows.
V okně Format Symbol lze nastavit vše, co se volby zobrazovaného trhu týče. Nejvíce se pracuje se záložkou Settings (nastavení). Do pole Symbol je třeba vložit příslušný symbol trhu (který lze vyhledat přes tlačítko Lookup). Tip: Symbol začínající zavináčem (@) představuje tzv. kontinuální kontrakt - tedy nekonečný kontrakt pospojovaný z jednotlivých kontraktních měsíců. Takový kontrakt je nezbytný pro automatizovaný backtesting, ale zejména při pozičním obchodování je třeba se problematice věnovat trochu blíže a pochopit, jak je kontrakt poskládán, jaká rizika a náklady představuje přerolování atd. Zkratka @ER2 tak představuje kontinuální graf našeho oblíbeného trhu emini Russell 2000. V rámci definování symbolu umožňuje TradeStation ještě další upřesnění formátu dat. Symbol můžeme zakončit tečkou a některým z definovaných aliasů. Např. ".D" znamená zobrazování pouze denních elektronických dat (např. @ES.D zobrazí kontinuální graf denních cen trhu mini S&P, @ER2.D kontinuální graf trhu denních cen trhu emini Russell 2000 atd.) To může být zajímavé pro testování různých intradenních strategií, při kterých s nočními daty nepracujeme. Další alias je např. ".P", který zajistí zobrazení pouze cen pitového trhu.
V našem příkladu zadáme do pole "Symbol" @ES.D - testovací strategii aplikujeme na trh mini S&P, přičemž máme zájem pouze o denní data.
Dále je třeba vybrat:
Select Interval - příslušný timeframe (v nabídce jsou tickové, volume grafy, intradenní grafy atd.). Pro náš test zvolíme intradenní graf (intra-day) s periodou 60 minut (do pole Interval Setting/Minute Bar vložíme 60).
Dále musíme v položce Range specifikovat interval, za který se mají zobrazit historická data. Pozn.: TradeStation funguje tak, že data jsou dostupná ze serveru výrobce a po stažení se pro další použití ukládají na lokální disk. První stažení dat tak může trvat déle (hodně záleží, kolik dat si ze serveru vyžádáme). V našem příkladu máme vybráno zobrazení posledních 200 dnů historie.
To jsou všechny základní parametry, které pro zobrazení našeho grafu potřebujeme. Podle potřeb je možné nastavit i další parametry (např. barevnost grafu, práci s měřítkem nebo přesné definování obchodních hodin trhu).
Po kliknutí na OK se zobrazí graf trhu mini S&P s nastaveným timeframe 60 minut.
Přiřazení studie do grafu
Nyní musíme do grafu přiřadit vytvořený obchodní systém = studii. To lze provést přes hlavní menu, položka Insert > Strategy (nástroj je dostupný také z kontextového menu, které se zobrazí po kliknutí pravým tlačítkem myši do grafu).
V rámci okna Insert Strategy zvolte vytvořenou studii a klikněte na OK. Otevře se okno "Format Analysis Techniques & Strategies", nabízející přehled všech strategií, které jsou v rámci daného grafu aplikovány:
V přehledu (který lze jinak vyvolat přes menu Format > Strategies) vidíme aktuální parametry nastavení systému (číslo 20 je hodnota naší jediné použité konstanty CCIperioda - kliknutím na číslo jej lze snadno změnit). Ve sloupci Status je zobrazeno, zda-li je příslušná strategie aktivní (ON) nebo neaktivní (OFF) - toto lze přepínat tlačítkem Status. Poslední čtyři sloupce udávají, jaké vstupní a výstupní mechanismy strategie obsahuje - v našem případě je vidět, že strategie obsahuje pouze vstup do krátké pozice. Kliknutím na Close okno zavřeme.
V tuto chvíli máme v našem grafu aplikovánu strategii, kterou jsme si vytvořili v minulém díle seriálu. V grafu se však nevytvořily žádné prodejní signály. Proč? Protože naše jednoduchá testovací strategie neobsahuje žádné ukončení otevřené pozice, obsahuje pouze podmínku pro vstup do krátké pozice.
Strategii je tak třeba buď rozšířit o další kód pro uzavření otevřených pozic, nebo použít další strategii, která bude pozice uzavírat. Taková strategie je v TradeStation připravená a pro testování jednodušších systémů je velmi snadno použitelná - jmenuje se "_Stop & Targets". Strategii vložíme do grafu stejným způsobem, jako již bylo popsáno výše - tedy přes Insert > Strategy. Okno "Format Analysis Techniques & Strategies" pak bude vypada následovně:
Strategie "_Stop & Targets" obsahuje již připravený kód pro práci s profit targety a stop-lossy. Je však třeba nejprve nastavit potřebné konstanty:
Kliknutím na jméno strategie "_Stop & Targets" v okně "Format Analysis Techniques & Strategies" (vyvoláme přes menu Format > Strategies) se otevře panel, ve kterém můžeme nadefinovat obsah jednotlivých konstant. Do políčka ProfitTargetAmt můžeme zadat dolarový profit target, do políčka StopLossAmt dolarovou hodnotu stop-lossu, BreakevenFloorAmt reprezentuje dolarovou hodnotu otevřeného zisku, po jehož dosažení je stop-loss posunut na vstup. Strategie obsahuje dále předefinované funkce na posouvání stop-lossu a funkci ExitOnClose - tuto nastavme na "true", což znamená, že pozice bude ukončena na konci obchodního dne (nebudeme držet pozici přes noc). Mimochodem - pokročilejší strategie budou samozřejmě zahrnovat podobné podmínky (patrně i v sofistikovanější podobě) ve vlastním kódu obchodníka - v rámci EasyLanguage není jejich programování příliš složité. Pokud se chcete podívat jak je strategie "_Stop & Targets" naprogramovaná a kód použít pro vlastní práci, je možné se do kódu snadno podívat. Strategii otevřeme kliknutím na ikonu EasyLanguage > Open EasyLanguage Document a výběrem strategie "_Stop & Targets" z nabídky dostupných strategií.
V rámci okna "Format Analysis Techniques & Strategies" je pro backtesting důležité ještě nastavit některé parametry obchodování. To se provádí přes tlačítko Properties... Ve vlastnostech strategie můžete nastavit např. skluz v plnění, komise a především je důležité zapnout funkci Back-testing resolution. Tato funkce zajistí, že se program "dívá" i na průběh "uvnitř" jednotlivých úseček (na úrovni tickových nebo minutových dat - vše lze v okně navolit). Zejména při vyšším timeframe (jako např. v našem případě) tato funkce zajistí, že TradeStation dokáže správně identifikovat, co se děje v rámci každého 60 minutového baru a správně tak pracovat např. s posouváním stop-lossu a uzavírání pozice na stop-lossu nebo profittargetu.
Po uzavření okna "Format Analysis Techniques & Strategies" by již graf měl obsahovat také graficky zobrazené vstupy a výstupy naší strategie aplikované na celou zvolenou historii dat:
Vstupy a výstupy si samozřejmě můžeme prohlížet v rámci grafu (patrně si budeme chtít do grafu přidat také CCI indikátor - to provedeme přes hlavní menu Insert > Indicator a výběr CCI indikátoru. Pozor - nezapomeňte pak v okně "Format Analysis Techniques & Strategies" nastavit v záložce Analysis Techniques správnou periodu indikátoru - vše již funguje stejně, jako bylo popsáno u nastavení parametrů strategie) ale zcela jistě budeme chtít vidět souhrnné výsledky - základ analýzy každého obchodního systému.
Celkovou analýzu výsledků aplikovaného systému získáme přes volbu View > Strategy Performance Report (Alt + Shift + P). Tato volba nám poskytne komplexní informace o výkonnosti daného systému vč. grafů equity křivek a dalších:
Nyní máme prostor dál naši strategii efektivně zkoumat, případně rozvíjet do plně automatizovaného obchodního systému (který lze z TradeStation pochopitelně rovnou obchodovat). Připomeňme, že pomocí optimalizace můžeme např. zkoumat dopad změny výstupních parametrů, testovat různé přístupy práce se stop-lossem, sledovat změnu/robustnost systému s různým natavením periody indikátoru atd. atd. Příprava obchodní strategie je pochopitelně velmi dlouhodobý proces, který vyžaduje nejen znalosti ovládání programu, ale samozřejmě i obchodování a především nekonvenční myšlení. Prezentovaný systém - jak jsme již psali na začátku seriálu - byl uveden jen jako čistě ilustrační tak, aby byl kód co nejjednodušší a pochopitelný pro začínající uživatele programu. Jak si ale dokážete představit, také pro obchodníky, kteří nedokáží postavit plně automatizovaný systém, může i různé dílčí testování částí jejich obchodních systémů přinést opravdu cenné informace. Příště se v našem seriálu podíváme na trochu složitější kód a další "vychytávky" TradeStation.
Díly seriálu:
Pracujeme s TradeStation (1)
Pracujeme s TradeStation (2)
Pracujeme s TradeStation (3)
Petr Podhajský
Fulltime obchodník věnující se tradingu více než 20 let. Specializace na systematické strategie obchodované na futures a akciích. Oblíbený styl obchodování: stavba automatizovaných portfolio systémů, které využívá i při správě většího externího kapitálu.
- 1