NinjaTrader 7 – ideální bezplatný nástroj pro market replay
Program NinjaTrader je již v nejnovější verzi 7 oficiálně ke stažení a přináší celou řadu zásadních novinek. Mezi jednu z nejzajímavějších patří možnost zpětného přehrávání trhů z dat, které si NinjaTrader sám stáhne od výrobce. Traderům tak program nabízí velmi komfortní a bezplatný nástroj pro trénování obchodování.
NinjaTrader 7 (aktuálně stále v beta verzi) si můžete stáhnout na stránkách výrobce. Program se ovládá stejně, jako předchozí verze, tj. v dnešním tutoriálu se budeme věnovat přímo funkci pro přehrávání trhů. Ta funguje ve dvou režimech – obchodník si může jednak data sám nahrávat a později si je přehrát (tj. funkcionalita popisovaná v našem dřívějším video tutoriálu NinjaTrader a obchodování z grafu), nově ale přibyla možnost stáhnout si již „nahraná“ data přímo z webu výrobce. Je tak možné přehrávat i data, která jsme si sami nenahráli. Funkce je dostupná jen pro některé trhy (a výrobce výslovně upozorňuje, že jde o funkcionalitu, která může být později z programu odebrána), ale i tak jde v případě intradenního obchodování o ideální nástroj, jak bez jakýchkoliv nákladů obchodování trénovat.
Stažení dat pro přehrávání
Data pro přehrávání je třeba nejprve stáhnout. Jako první krok je třeba se připojit k External Data Feed připojení, které budete mít v Ninjovi automaticky předvytvořené:
Poté zvolte nabídku File > Utilities > Download Reply Data... :
Zobrazí se dialogové okno Download Replay Data, ve kterém stačí specifikovat, co přesně chcete stáhnout:
NinjaTrader 7 nemá databázi všech trhů, ale jsou k dispozici např. běžně obchodované akciové indexy jako je ES, TF, NQ nebo YM a řada dalších trhů.
Data je bohužel potřeba stahovat po jednom trhu a jednotlivých dnech. To v praxi znamená, že si vyberete den a trh, který potřebujete stáhnout, kliknete na OK a pokud potřebujete další trhy nebo jiné dny, je tento proces opakovat stále dokola.
V nabídce jsou k dispozici dva typy historických dat – L1 a L2. Data Level 1 je to, co běžný trader pro backtest potřebuje. S pomocí těchto dat se vám budou vykreslovat „realtime“ historické ceny v grafu a zobrazovat aktuální cena v DOMu. Data Level 2 obsahují „hloubku trhu“, tj. tuto nabídku využijí obchodníci, kteří potřebují vidět při přehrávání dat plnohodnotný DOM. Pochopitelně, že lze stahovat obě volby bez ohledu na skutečnost, zda-li data aktuálně využijete či nikoliv (L2 můžete využít např. v budoucnu). Nicméně je třeba počítat s tím, že L2 data jsou objemnější než L1 data. Konkrétně například u trhu YM je velikost dat L1 za jeden den kolem 2MB, L2 data pak představují soubor o velikosti cca 6 MB.
Jakmile si stáhnete data, která potřebujete, odpojte se od externího datového zdroje volbou File > Disconnect > External Data Feed.
Přehrávání replay dat
Pro přehrávání stažených dat je třeba se nejprve připojit k datovému zdroji Market Replay Connection:
Jakmile se k popsanému zdroji připojíte, zobrazí se vám na obrazovce ovládání přehrávání:
V tento okamžik si můžete v NinjaTrader zobrazit graf a po kliknutí na tlačítko Play (první tlačítko zleva) by se měl začít graf přehrávat. Pozor! ale na skutečnost, že data jsou stažená včetně noční seance, která neobsahuje přílišnou aktivitu a tak se může zdát, že se v grafu nic neděje. Pro přesun na začátek regulérních obchodních hodin můžete použít posuvník (aktuální datum a čas odpovídající nastavení posuvníku je zobrazeno v záhlaví okna) nebo klikněte pravým tlačítkem myši do oblasti nápisu „From“ a z kontextového menu vyberte položku „Go To ...“
Máte-li na svém počítači nastavenou českou časovou zónu, pak hlavní obchodní hodiny pro akciové indexy začínají v 15:30. Nastavte si tento čas, klikněte na OK a poté na tlačítko Play – grafy by se měly začít pohybovat stejnou rychlostí jako při reálném sledování burzy.
Pochopitelně, že v programu NinjaTrade fungují všechny funkce, jako při běžném provozu. Je možné si například aktivovat Chart Trader a zadávat do grafu obchodní příkazy včetně stop-lossu a profit-targetu, vyhodnocovat následně statistiky výsledků atd. Bezplatná verze NinjaTraderu je zcela plnohodnotná placené verzi, jediné, v čem se verze liší je možnost předávat příkazy na skutečnou burzu (to bezplatná verze neumí).
Význam několika zbylých funkcí v okně Replay jistě brzy zjistíte – pomocí volby Available Data.. lze vyvolat přehledný sumář dostupných dat, přehrávání dat lze zrychlovat tlačítkem se dvěma šipkami.
Smazání, archivování replay dat
Data pro replay jsou ukládána do adresáře Dokumenty, kde má Ninja svůj adresář NinjaTrader7. Jednotlivé soubory pak naleznete v adresáři db, podadresář data.
Se soubory můžete nakládat jako s libovolnými jinými daty – je možné je smazat, zálohovat, nebo do adresáře nahrát (ze zálohy, od jiného tradera).
Shrnutí
Kombinace funkce Market Replay s daty dostupnými přímo z webu výrobce programu představuje podle mého názoru ideální nástroj pro zcela bezplatný trénink obchodování. Opravdu není mnoho jiných cest, jak se dostat k podobné možnosti za takovou „cenu“. Naopak – na trhu najdete řadu software, kde za podobnou funkci zaplatíte nemalý poplatek. Je otázka, jak dlouho funkce v programu vydrží, proto bych určitě neváhal a začal ji využívat.
NinjaTrader – popis parametrů pro nastavení vzhledu grafu
V dnešním článku se podrobně podíváme na možnosti, které nám NinjaTrader poskytuje v oblasti nastavení grafu. Článek je pojat jako reference pro ty obchodníky, kteří neumí dobře anglicky a nedokáží se tak zcela stoprocentně v programu orientovat.
Okno pro podrobné nastavení grafu vyvoláte kliknutím na ikonku Properties v záhlaví každého grafu:
Poté jsou k dispozici následující volby:
Color of axis / Barva horizontální a vertikální osy
Nastavuje barevnost vertikální i horizontální osy.
Color of inactive price markers / Barva neaktivních cenových ukazatelů
Cenové ukazatele / pointery zobrazuje NinjaTrader ve vertikální cenové ose, kde zvýrazňují např. poslední cenu nebo hodnotu indikátoru. Pokud si prohlížíme starší historická data, cenové ukazatele se vztahují k historické zobrazené ceně (nezobrazují aktuální stav) a touto volbou nastavujeme jejich barvu.
Date label format for daily bars / Formát data pro denní grafy
Nastavení formátu zobrazení data na horizontální ose pro denní grafy.
Date label format for monthly bars / Formát data pro měsíční grafy
Nastavení formátu zobrazení data na horizontální ose pro měsíční grafy.
Date label format for yearly bars / Formát data pro roční grafy
Nastavení formátu zobrazení data na horizontální ose pro roční grafy.
Bar width / Šíře svíček, čárek v grafu
Nastavuje šířku zobrazení svíček nebo čárek v grafu. Zobrazení grafu je ještě závislé na měřítku grafu (tj. jak hodně si grafy nezvětšujeme) a v každém měřítku je třeba nastavit jinou hodnotu tohoto parametru aby byly grafy optimální. Tj. s hodnotu je třeba trochu experimentovat.
Candle outline / Kontura svíček
Nastavuje parametry pro zobrazení kontury svíček. V políčku Color se volí barva kontury, v políčku Dash Style typ zobrazení okraje (Solid = pevná čára, Dash = čárkovaný okraj, Dot = tečkovaný okraj, DashDot = čárka - tečka, DashDotDot = čárka – tečka – tečka), Width upravuje šíři kontury.
Color for down bars / Barva klesajících úseček
Barva pro klesající bar / cenovou úsečku (close je nižší než open).
Color for last trade /Barva ukazatele ceny posledního obchodu
Nastavení ukazatele / pointeru, zobrazeného ve vertikální cenové ose, který udává poslední cenu v daném trhu.
Color for up bars / Barva rostoucích úseček
Barva pro rostoucí bar / cenovou úsečku (close je vyšší než open).
Exlude weekend / Vynechat víkendy
Řada trhů se o víkendu neobchoduje, či se obchoduje velmi omezeně a tak lze touto volbou víkendové obchody z grafů vypustit. Využitelné především pokud pracujeme s indikátory využívající ceny minulých dnů.
Chart style / Styl grafu
Styl zobrazení grafu. Candle Stick = klasický svíčkový graf, HiLo = graf pouze z cenových high a low, Line on Close = čára využívající pouze uzavírací ceny, OHLC = klasický čárový graf.
Session begins / Počátek obchodní seance
Čas, od kterého chcete zobrazovat grafy v rámci obchodní dne. Pokud chcete zobrazovat denní i noční seanci, ponechte 0:00. Pokud chcete zobrazovat pouze denní seanci trhu, je třeba zadat čas začátku obchodování. Pozor – NinjaTrader používá vždy lokální čas na PC, takže pro naši časovou zónu a většinu např. akciových indexů zadáváme např. 15:30 (pokud nemáte na PC nastavenou jinou časovou zónu – je třeba se v grafu nejprve podívat na časy odpovídající noční a denní seanci).
Session ends / Konec obchodní seance
Čas ukončující zobrazování denní seance v trhu. Pro většinu akciových indexů 22:15, nicméně platí vše co bylo napsáno v předcházejícím odstavci.
Show unstable period for indicators / Zobrazit nekompletní periody indikátorů
Většina indikátorů potřebuje pro svůj výpočet určitou cenovou historii. Např. CCI s periodou 50 potřebuje pro výpočet 50 cenových úseček, jinak není výpočet kompletní. Pokud je volba nastavena na False (doporučujeme), nejsou nekompletní indikátory zobrazovány. V případě True je vykreslen i nekompletní indikátor.
Horizontal grid line interval / Nastavení intervalu horizontální mřížky
Volba umožňuje definovat vlastní interval pro zobrazování horizontálních vodících linek v grafu. Interval se zadává v ticích. Pokud např. v trhu ER2 zadáme hodnotu 10, bude se horizontální vodící linka vykreslovat v intervalu odpovídající v tomto trhu rozsahu 100 dolarů. Pokud je nastavena hodnota 0 používá program defaultně nastavené automatické rozpětí.
Horizontal grid lines / Nastavení horizontálních vodících linek
Nastavení vzhledu horizontálních vodících linek. V řádku Color se volí barva linky, v řádku Dash Style typ linky (Solid = pevná čára, Dash = čárkovaný okraj, Dot = tečkovaný okraj, DashDot = čárka - tečka, DashDotDot = čárka – tečka – tečka), Width upravuje šíři linky.
Plot horizontal grid lines / Zobrazovat horizontální vodící linky
Vypíná (False) / zapíná (true) zobrazování horizontálních vodících linek.
Plot session break lines / Zobrazovat rozdělovače mezi obchodními seancemi
Vypíná (False) / zapíná (true) zobrazování vertikálních rozdělovacích linek mezi obchodními seancemi.
Plot vertical grid lines / Zobrazovat vertikální vodící linky
Vypíná (False) / zapíná (true) zobrazování vertikálních vodících linek.
Session break line / Nastavení linek oddělující seance
Nastavení vzhledu linek oddělující obchodní seance. V řádku Color se volí barva linky, v řádku Dash Style typ linky (Solid = pevná čára, Dash = čárkovaný okraj, Dot = tečkovaný okraj, DashDot = čárka - tečka, DashDotDot = čárka – tečka – tečka), Width upravuje šíři linky.
Vertical grid lines / Nastavení vertikálních vodících linek
Nastavení vzhledu vertikálních vodících linek. V řádku Color se volí barva linky, v řádku Dash Style typ linky (Solid = pevná čára, Dash = čárkovaný okraj, Dot = tečkovaný okraj, DashDot = čárka - tečka, DashDotDot = čárka – tečka – tečka), Width upravuje šíři linky.
Color for executions – buy / Barva pro exekuce - BUY
Nastavení barvy pro zobrazování nákupních příkazů v trhu.
Color for executions – sell / Barva pro exekuce - SELL
Nastavení barvy pro zobrazování prodejních příkazů v trhu.
NinjaScript strategy position line profitable trade / Linka NinjaScriptu zobrazující profitabilní obchody
Nastavení parametrů linky zobrazující profitabilní obchody (tj. linky spojující vstup a výstup z pozice). Vztahuje se k obchodům naprogramovaných pomocí NinjaScriptu.
NinjaScript strategy position line unprofitable trade / Linka NinjaScriptu zobrazující ztrátové obchody
Nastavení parametrů linky zobrazující ztrátové obchody (tj. linky spojující vstup a výstup z pozice). Vztahuje se k obchodům naprogramovaných pomocí NinjaScriptu.
Plot executions / zobrazovat obchody
Nastavuje styl zobrazování uskutečněných obchodů (také pro ručně zadávané příkazy). Do Not Plot = obchody nejsou v grafu zobrazovány, MarkersOnly = obchody jsou zobrazovány pouze jako šipečky bez popisku, TextandMarker = obchody jsou zobrazovány jako šipečeky včetně popisu (vstupní cena, počet kontraktů).
Color for background / Barevnost pozadí
Nastavení barvy pozadí grafů
Color for crosshair label / Barva ukazatele kříže
Nastavení barvy cenového ukazatele vztahující se k „zaměřovacímu kříži“.
Display update interval (sec) / Časová aktualizace grafu
Nastavení frekvence pro aktualizaci grafu ve vteřinách. Hodnota 0 udává, že se graf bude aktualizovat s každým tickem, což může být pro starší počítače výkonnostně náročné (ale využitelné pro rychlé intradenní grafy).
Label Font / Parametry písma
Nastavení písma, kterým je v programu komentován zobrazený graf (především text v záhlaví grafu a text v rámci horizontální a vertikální osy.).
Right side margin / Šíře pravého okraje grafu
Nastavuje mezeru mezi vertikální cenovou osou a samotným grafem. Show chart trader / Zobrazit chart trader Zapíná (true), vypíná (false) obchodování z grafu. Lze samostatně zapnout také ikonkou Chart Trader přímo z grafu.
Show scrollbar / zobrazit posuvník
Zapíná (true), vypíná (false) zobrazení posuvníku pro zobrazování historických průběhů grafu.
Show toolbar / Zobrazit nástrojovou lištu
Zapíná (true), vypíná (false) zobrazení nástrojové lišty.
Praktické tipy pro zlepšení výkonnosti programu NinjaTrader
NinjaTrader je na svoji cenu velmi dobré řešení pro diskréční obchodování, jeho slabinou jsou vyšší výkonností nároky, které mohou vést občas k pomalému vykreslování grafů i na velmi výkonných počítačích. V článku naleznete proto několik tipů jak si program nastavit, aby byl co nejsvižnější. S popsaným nastavením program sám používám k plné spokojenosti.
Jistě nemusím připomínat, že základem rychlého fungování kteréhokoliv programu je ideálně čistá instalace Windows, žádné programy v pozadí a rozumná hardwarová konfigurace počítače.
Pokud i tak občas pociťujete, že se Ninja „zadrhává“ a není úplně nejsvižnější, vyzkoušejte následující tipy, které se mně osobně velmi osvědčily:
Store real-time bar data
Funkce zapíná/vypíná ukládání příchozích realtime dat do databáze na vašem PC. Ninja ukládá všechna data trhů, které jsou zobrazeny v kterémkoliv grafu nebo v okně Market Analyzer. Hlavní využití funkce je v případě, že poskytovatel dat pouze streamuje realtime data a neumožňuje načítat historii trhů.
Tuto funkci doporučuji na počítači, se kterým obchodujete, vypnout. Funkci naleznete v programu v menu Tools>Options záložka Data. Sám obchoduji na velmi rychlém a vykoném počítači, ale při zapnutí této funkce jsem pozoroval v době vyšší volatility trhů (především okolo otevření) citelné zpomalení vykreslování grafů, které zmizelo poté, co jsem tuto funkci vypnul. Zpomalení přitom nebylo vůbec zanedbatelné a pokud by obchodník zadával v takové situaci své obchodní příkazy, vedlo by to ke zbytečným velkým skluzům v plnění.
Při vypnutí funkce se v případě zobrazování historických grafů načítají historická data od poskytovatele dat. Zde je pak třeba si ověřit, jak kvalitní data jsou a v jakém rozsahu je daná služba/broker poskytuje – např. InteractiveBrokers poskytuje vzdálenější historická data již v poměrně hrubém rozlišení, Zenfire má historická data velmi kvalitní, ale samozřejmě také nejsou poskytována za celou historii trhu (je k dispozici cca rok historie). Řešením jak obchodovat a současně ukládat data může být např. spuštění Ninji na jiném počítači s demo přístupem k Zenfire, kde taková instalace ukládá data, která lze poté přesunout do databáze na hlavním obchodním serveru.
Nicméně určitě bych nepodceňoval citelné zpomalení software při zapnutí této funkce především v případě, že nemáte například možnost si grafy porovnat s jiným poskytovatelem dat.
Run market replay recorder
Opět funkce, která může citelně ovlivnit rychlost zobrazování grafů v programu. Po zaškrtnutí této funkce se všechna data ukládají do speciálního souboru na disk, ze kterého lze pak trhy přehrávat prostřednictvím funkce market replay. Jde tedy o velmi praktickou funkci, kterou je však dobré spouštět opět pouze v případě, že vás 100% netrápí rychlost vykreslován grafů (tj. z grafů neobchodujete).
Nastavení indikátorů
Výkon software ovlivňuje také množství indikátorů v grafech. Nicméně množství indikátorů výkon počítače ovlivňuje pouze v případě, že je v grafech zobrazeno již skutečně hodně indikátorů (navíc ve více grafech najednou) a Ninja je provozován na méně výkonném počítači. Určitě nemá výpočet indikátorů takový vliv na zpomalení grafů, jako nastavení ukládání dat do databáze popsané výše.
Pokud pozorujete výkonnostní problémy Ninjy při vypnutí ukládání dat do databáze doporučuji:
nejprve zkusit vypnout indikátory a sledovat zda-li to mělo vliv na výkon programu;
zkusit u méně důležitých indikátorů nastavit, aby se neaktualizovaly s každým tickem ale pouze na close úsečky:
Volba Calculate on bar close v nastavení každého indikátoru určuje, zda-li se indikátor aktualizuje v průběhu času (tj. s každým tickem), nebo pouze na close úsečky (nastavení True). Nastavení výpočtu pouze na close úsečky znamená, že se indikátor „nehýbe“ v průběhu vykreslování úsečky, ale zaktualizuje se pouze jednou a to v okamžiku, kdy se dokreslí úsečka příslušného timeframe.
Nastavení intervalu pro aktualizaci grafů
Pokud pracujete s větším množstvím grafů, není třeba, aby se vyšší timeframy aktualizovaly „neustále“ stejně, jako ty nejnižší časové rámce. U vyšších timeframe tak v případě potřeby můžeme nastavit vyšší čas pro jejich aktualizaci (volba Display update interval😞
Počet používaných workspace
Rozložení grafů se v Ninja Trader může ukládat do tzv. pracovních prostorů (workspace). Pokud daný workspace nepoužíváte, je třeba jej uzavřít (File > Workspaces > Close Workspace). Pokud jen otevřete nebo vytvoříte nový workspace, zůstane starý workspace „v pozadí“ a zcela zbytečně zatěžuje systém:
Nepoužívaný workspace je třeba vypnout prostřednictvím funkce „Close Workspace“. Vidíte-li v menu několik workspace (v tomto případě Default, test a dax), zbytečně vám nepoužívané grafy konzumují výkon počítače (pozn. workspace „Default“ nelze vypnout – je proto dobré v něm nemít žádné grafy pokud používáte jiný workspace).