Jump to content
Co nového? Mé kurzy
Články a tutoriály:
Archiv článků Psychologie obchodování Jak na obchodní plán Mé obchodní strategie
  • Pracujeme s TradeStation (1)

    Komunita traderů okolo Finančníka se za poslední rok velmi rozrostla a na setkání obchodníků je znát, že se vytvářejí skupinky traderů diskutující práci v různých pokročilých specializovaných obchodních programech.

    Řada z vás patrně ví, že s Tomášem považujeme za nejsilnější analytický nástroj pro tradery MS Excel, nicméně jelikož jsme strávili několik let intenzivní prací s dalšími programy, rozhodli jsme se připravit seriály, které by měly ulehčit začátky všem, kteří se rozhodnou tyto programy používat. Přestože půjde o specializované informace určené pouze těm traderům, kteří se rozhodli používat daný software, věříme na druhou stranu, že naše zkušenosti mohou ostatním pomoci výrazně se posunout dále a přeskočit mnoho měsíců studia, které jsme museli problematice věnovat my.

    V tomto seriálu se budeme věnovat programu TradeStation. Seriál bude pojat hodně prakticky. Dnes začneme obecnějším úvodem, v dalších lekcích si ale probereme použití různých funkcí na praktických příkladech. Řadu přístupů si ukážeme na konkrétním programování některé ze strategie WoodiesCCI. Cílem celého seriálu je samozřejmě technické know-how týkající se programování TradeStation a nikoliv vytváření konkrétního finálního mechanického obchodního systému, pokusím se ale do textu zapracovat konstrukce, které je jinak v manuálu k TradeStation těžké objevit (ukázky money-managementu, časový stop-loss, omezování obchodování v průběhu dne atd.).

    Co je TradeStation

    Jako v každém prvním dílu delšího seriálu si nejprve nástroj, se kterým budeme pracovat, pojďme alespoň ve stručnosti představit. Program TradeStation byl dlouhou dobu patrně nejrozšířenější analytický software pro technické obchodníky. V zásadě jde o velmi univerzální platformu umožňující obchodování, zobrazování grafů, zakreslování technických formací a především programování skutečně všeho možného - od vlastních indikátorů, funkcí až po kompletní mechanické obchodní systémy. TradeStation je velmi flexibilní díky vlastnímu programovacímu jazyku EasyLangauge. Podrobnější představení programu naleznete v našem článku Backtesting: TradeStation.
    Dnes již existuje na trhu celá řada programů, které nabízejí více či méně podobné funkce jako TradeStation (velmi kompletní přehled naleznete v článcích Jaký software pro backtesting a vytváření vlastních obchodních systémů a indikátorů? a Jaký software pro backtesting a vytváření vlastních obchodních systémů a indikátorů? (2) a řada obchodníků od TradeStation přešla k jiným programovým řešením, přesto je dnes TradeStation stále jeden z nejvyhledávanějších programů v této oblasti.

    V Evropě Tradestation působí pod značkou TradeStation Global a své brokerské služby nabízí coby tzv. introducing broker pro Interactive Brokers. Tedy klientské účty jsou otevírány u brokera Interactive Brokers, TradeStation Global pak klientům poskytuje dodatečnou podporu a také svůj kompletní software TradeStation. Ten je postaven na stejném základu jako americký originál, ale je napojen na služby a data Interactive Brokers. Podrobnosti viz zde.

    Základy EasyLanguage

    Výhodou specializovaného obchodního jazyka je samozřejmě jeho připravenost pro prostředí tradingu. Trader nemusí řešit programování základních indikátorů, obchodních příkazů, práci s grafy - vše je připraveno a stačí pospojovat dohromady. Obrovskou výhodou TradeStation je také práce s historickými daty - je-li počítač s TradeStation připojen on-line k Internetu (což je předpokládám u většiny obchodníků), jsou přes dataserver výrobce v programu k dispozici všechna historická data trhů, které má obchodník k dispozici (myšleno klasická minutová data a výše, ticková data poskytuje TradeStation cca za půl roku zpět) - tj. stačí zvolit příslušný symbol a data se automaticky stáhnou z Internetu.

    Data pak lze v EasyLanguage volat velmi snadno. V rámci programového kódu se nejčastěji data referují následovně:

    Datové slovo Zkratka Popis
    Open O Otevírací cena daného baru
    High H Nejvyšší cena daného baru
    Low L Nejnižší cena daného baru
    Close C Uzavírací cena daného baru
    Volume V Celkové volume v rámci baru
    OpenInt I Open interest v rámci baru

    V EasyLanguage lze používat jak celá programová datová slova, tak příslušné zkratky.

    Úplně jednoduchý pokyn v rámci EasyLanguage tak může například znít:

    if Close>100 then ......
    což můžeme také napsat jako
    if C>100 then ....

    Výše uvedená konstrukce představuje základní programovou podmínku, říkající: pokud (příkaz if, ke kterému se dostaneme podrobněji v některém z příštích dílů seriálu) bude cena na close úsečky vyšší než 100 pak se provedou další příkazy (např. otevření pozice atd.).
    Jak bude program vědět, ke které úsečce, je ono "Close" myšleno? Které Close máme na mysli? Toto programu specifikujeme později tím, že vytvořený kód (indikátor, strategie atd.) aplikujeme na nějaký konkrétní graf s konkrétním timeframe. Pokud kód aplikujeme na graf s timeframe 5 minut (tj. jedna úsečka bude představovat změnu cenu příslušného trhu v průběhu 5 minut), pak se close bude vztahovat na uzavírací cenu pětiminutového baru.

    Vytvořený kód lze samozřejmě aplikovat jak na grafy zobrazované v reálném čase - tak jak přicházejí data z burzy, tak na historická data. V případě aktuálně zobrazovaných grafů bude TradeStation podmínku aplikovat na každou poslední úsečku daného grafu, v případě historického backtestu TradeStation "projede" zvolený graf "čárku po čárce" a zvolenou strategii tak aplikuje na všechny bary v grafu a u každého baru bude testovat, zda-li je Close vyšší než 100 a pokud ano, tak provede zbytek kódu.

    Tímto poměrně velmi jednoduchým způsobem lze vytvářet komplexnější a složitější podmínky a systémy, které mohou sloužit mj. k zobrazování různých formací v realtime grafech, backtestování našich podmínek na historických datech, k vytváření automatizovaných obchodních systémů atd. V příštím díle seriálu si ukážeme, jak si v TradeStation vytvořit již komplexnější (byť stále jednoduchý) obchodní systém a aplikovat jej na aktuální nebo historická data.

    Díly seriálu:
    Pracujeme s TradeStation (1)
    Pracujeme s TradeStation (2)
    Pracujeme s TradeStation (3)

    13.12.2006

    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 v alternativním fondu, který spravuje.


    Zaměřte se na to, co přináší reálné výsledky.

    Nakopněte své obchodování
    k systematickým profitům

    (program pro začínající obchodníky, kteří se chtějí dostat ke stabilnímu obchodování bez časové náročnosti)

    Začínáme 30. 1. 2024.

    Nově s vytvořením a popisem všech pravidel mechanické obchodní strategie, ve které mám sám aktuálně otevřený profit +224 121 Kč!

    >> Workshop profitabilního obchodování od A do Z

    Další články na toto téma

    TradeStation

    TradeStation je robustní obchodní platforma známá svými kvalitními daty, programovatelností a rychlými exekucemi, což ji činí vhodnou volbou pro aktivní systematické obchodníky. Ačkoli byla založena v roce 1982 a tradičně se zaměřovala na zkušené obchodníky s vyššími účty, v posledních letech se snaží přilákat i méně zkušené investory. Nedávno společnost například zrušila minimální požadavky na založení účtu, zavedla kryptoměny a zrušila poplatky za používání platformy, pokud obchodník aktivně neobchoduje.
    TradeStation nabízí bezproblémové obchodování s akciemi, ETF, opcemi a futures. Kromě toho nabízí bezplatná tržní data a žádné měsíční poplatky za platformu.
    V květnu 2022 představila TradeStation své vylepšené API, přes které je možné obchodovat skrz nejrůznější skripty, ale získávat i data, která jsou v platformě k dispozici.
    Poplatky za obchodování jsou popsány zde: https://www.tradestation.com/pricing/#et_pb_tab_1. Pro tradery v USA nabízí TradeStation obchodování bez poplatků, obchodníci mimo USA platí komise. U akcií je minimální komise 5 USD, což službu dělá pro menší účty výrazně dražší než Interactive Brokers. Velmi konkurenční komise ale společnost nabízí u Futures, kde jsou ceny podobné jako u Interactive Brokers.
    TradeStation je zajímavou volbou zejména pro automatizaci obchodování. Skrz jazyk EasyLanguage lze v platformě programovat jak pokročilé skenery, tak automatizované systémy, které mohou běžet na serverech společnosti. K dispozici je i funkční paper účet, na kterém lze automatizované obchodování simulovat. Základní představu o práci s platformou můžete získat v našem seriálu Pracujeme s TradeStation.

    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)

    Pracujeme s TradeStation (2)

    V dnešním díle našeho seriálu postoupíme od teoretického úvodu k praxi. Ukážeme si konkrétně jak v programu TradeStation naprogramovat triviální "obchodní strategii" a jak porozumět jednotlivým položkám kódu.
    Pojďme se rovnou pustit do práce s přípravou kódu našeho jednoduchého systému. Ten bude spočívat ve vstupu do krátké pozice v případě, že se indikátor CCI překříží s nulovou linkou. Věřím, že nemusím zdůrazňovat, že dnešní triviální příklad zde vytváříme čistě pro demonstraci a nejde o kompletní obchodní systém, který by byl připraven pro aplikování do trhu - přípravu takového si naznačíme v některém budoucím díle seriálu.
    Pravidla pro automatizovaný obchodní systém (nebo jeho dílčí část) se v rámci TradeStation nazývají strategie a vytvářejí se v okně strategy. To se vyvolá nejsnadněji přes ikonku EasyLanguage v tzv. shortcut liště - svislé liště s ikonkami, která se nejčastěji zobrazuje na levé straně programu. Pokud lištu s ikonkami nemáte v TradeStation zobrazenou, vyvoláte ji přes hlavní horní menu View > Shortcut Bar (Ctrl + Shift + S).

    Kliknutím na ikonku EasyLanguage se rozbalí kontextové menu, ve kterém v případě založení nové strategie zvolte New EasyLanguage Document > Strategy. Mimochodem - na uvedeném seznamu je vidět, jaké množství nejrůznějších typů kódu lze v TradeStation vytvářet.

    V druhém kroku nás TradeStation vybídne k založení nové strategie. TIP: všechny strategie se ukládají na disk do jednoho adresáře a je proto dobré, připravit si nějakou vlastní konvenci řazení strategií v rámci adresáře. Zejména v testovacím období se vám jinak stane, že se v nejrůznějších strategiích přestanete orientovat. Osobně si např. testovací strategie vytvářím s tečkou na začátku, takže se mi řadí na začátek výpisu v adresáři.
    V rámci založení nové strategie máme možnost vybrat si také šablonu, která nám do dokumentu vloží určitou základní pomocnou osnovu, jak by strategie měla vypadat a základní příkazy, které by měla obsahovat. V tuto chvíli si pojďme vybrat strategii se šablonou (template) None a začít "s prázdným papírem".
    Každá základní strategie by v TradeStation měla obsahovat několik prvků. Ne všechny jsou povinné, ale většina těchto prvků je natolik praktická, že je dobré se je naučit v kódu používat od začátku.
    Aby byl náš tutoriál co nepraktičtější, pojďme si strukturu celého našeho dnešního příkladu ukázat rovnou na kódu:

    V kódu si všimněte, že různé příkazy, nebo chcete-li slova, mají různou barvu. Světle modře jsou automaticky vyznačeny systémové příkazy - tj. takové, které v rámci programovacího jazyka EasyLanguage mají předem definovaný význam a které je třeba se naučit používat. Fialově jsou zobrazeny existující funkce (na screenshortu je fialově zobrazeno slovo CCI. Tj. jde o odkazy na existující kódy, zajišťující příslušnou funkcionalitu. Nejčastějším příkladem funkce jsou nejrůznější indikátory - ty jsou pochopitelně v programu již naprogramovány a obchodník se tak může na danou funkci pouze odkázat. Např. tím, že napíše CCI, čímž vyvoláme funkci provádějící aktuální výpočet indikátoru CCI. Zeleně jsou zobrazována slova, která nemají žádný programový význam a vesměs slouží pro orientaci uživatele.
    Jako první řádek našeho jednoduchého obchodního systému vidíme:
    Inputs: CCIperioda(20);
    Jde o definovaní vstupních konstant a příkaz Inputs: naleznete v kódech drtivé většiny obchodníků pracujících s TradeStation. Je to velmi jednoduchý způsob jak definovat konstanty, které budeme v kódu používat a potřebujeme jim přiřadit určitou hodnotu. Jako řada programovacích jazyků, také EasyLanguage potřebuje dopředu znát jména konstant, se kterými budeme v rámci kódu pracovat. Není třeba nastavovat žádný jejich typ, stačí je pouze programu představit - napsat jejich jméno a do závorky výchozí hodnotu. Inputs: CCIperioda(20); znamená, že budeme v kódu používat naši konstantu se jménem CCIperioda a tato konstanta bude mít hodnotu 20. Proč vkládáme hodnotu 20 "složitě" přes konstantu a nepoužijeme v kódu přímo dané číslo? To má dva základní důvody:
    ve složitějších kódech se můžeme na konstantu odkazovat na řadě míst kódu. V takovém případě už by bylo mnohem složitější případnou číselnou konstantu změnit (změnu bychom museli složitě provádět na mnoha místech dokumentu, takto stačí změnit číslo pouze v definici konstanty). TradeStation s hodnotami konstant dále pracuje a tyto hodnoty je možné později měnit v nastavení strategií, případně indikátorů atd., přes přehledný panel bez nutnosti zásahu do programového kódu. A především je možné přes konstanty velmi snadno provádět tzv. optimalizaci - nechat TradeStation projít řadu možných parametrů dané konstanty (tj. v našem případě např. CCI v rozsahu 9-50) a sledovat, jaké dopady to bude na danou strategií mít. Tzn. definování konstant pomocí příkazů Inputs je velmi praktické a používané. Konstant můžeme definovat samozřejmě více než jednu - v takovém případě je oddělujeme čárkami. Za poslední konstantou je třeba vložit středník. Středníkem vždy ukončujeme každý příkaz v rámci EasyLanguage.
    Příklad definování 3 konstant najednou:
    Inputs: CCIperioda(20), mujstoploss(120), mujprofittarget(300);
    Takto zapsaný řádek připravuje v rámci EasyLanguage tři konstanty obchodníka, se kterými se dále bude pracovat v kódu strategie. Všechny tři konstanty budou mít na začátku příslušné hodnoty - tj. např. konstanta mujprofittarget bude mít hodnotu 300 atd. Jak již bylo řečeno výše, výhodou tohoto nastavení je zejména skutečnost, že konstanty bude možné velmi efektivně zkoumat programem pomocí tzv. optimalizace - automatického hledání nejrůznějších kombinací parametrů a zobrazování jejich dopadu na strategii.

    Konstanty zadané pomocí Inputs lze později velmi snadno konfigurovat v nastavení strategie. Snadno tak můžeme např. sledovat dopad různého stop-lossu. Výpočet provede TradeStation v rámci zvoleného rozsahu zcela automaticky (pomocí nástroje Optimalizace).
    Druhý řádek obsahuje:
    Variables: myCCI(0);
    Tento řádek je velmi podobný řádku Inputs s tím rozdílem, že se definují proměnné. Ty představují pro obchodníka srozumitelná "slova", která později naplňuje určitým obsahem (různé výpočty atd.) a dále s nimi pracuje. Proměnné uvedené v řádku Variables nelze optimalizovat, je to čisté "představení" všech používaných uživatelských proměnných a jejich prvotní naplnění hodnotou. Prvotní hodnotu udává číslo zapsané v závorce. V našem případě pracujeme s námi vymyšlenou proměnnou myCCI, která při prvním spuštění kódu bude mít hodnotu nula. Všechny proměnné použité v kódu musí být uvedeny buď v řádku Inputs nebo Variables, jinak nebude kód fungovat. Budeme-li ve složitějším kódu pracovat s více proměnnými opět můžeme jejich představení řetězit tak, že je uvedeme do jednoho řádku, ukončeného středníkem:
    Variables: myCCI(0),starttime(900),endtime(1200);
    Máme-li v kódu mnoho konstant a proměnných, lze zápis udělat na více řádků - každý musí začít označením Variables, nebo Inputs a musí končit středníkem.
    Třetím řádkem máme ukončeny veškeré "přípravy kódu" a dostáváme se již k samotné strategii. EasyLanguage vychází z běžných jednoduchých programovacích jazyků a všem obchodníkům, kteří kdy pracovali s libovolným programovacím jazykem bude zápis patrně velmi srozumitelný. Pro absolutní neprogramátory je pak porozumění pouze věcí určitého cviku a praxe. Uvidíte, že na konci našeho seriálu budete schopni jednoduché strategie připravovat bez jakýchkoliv problémů.
    myCCI=CCI(CCIperioda);
    Tento řádek přiřazuje naší proměnné myCCI hodnotu funkce CCI s příslušnou periodou. V našem konkrétním úvodním příkladu je tento řádek skoro nadbytečný, protože bychom mohli dále pracovat rovnou s funkcí CCI(CCIperioda), ve složitějších konstrukcí se však proměnným nevyhneme a je tak dobré si na jejich přítomnost zvyknout.
    if myCCI crosses below 0 then
    Sellshort ( "CCI_short" ) next bar at market ;
    Poslední řádky kódu obsahují samotnou logiku našeho jednoduchého ukázkového systému. Angličtináři si patrně dokáží význam odvodit na první pohled. Modře vytištěné jsou příkazu jazyka EasyLanguage, které je třeba ovládat, a jejichž význam a seznam lze nalézt v uživatelské příručce nebo v nápovědě programu.
    příkaz if znamená klasickou programovou logiku, nebo-li "jestli". Syntaxe if je následující:
    if podmínka then ** základní zápis podmínky;
    následují příkazy, které se mají vykonat při splnění podmínky.
    V našem konkrétním příkladě tedy podmínka znamená:
    pokud hodnota myCCI klesne pod hodnotu 0 (jinými slovy překříží nulovou linku) potom vykonat otevření krátké pozice s názvem "CCI short" následující bar za market.
    Podmínky mohou být samozřejmě výrazně košatější a lze je jednoduše řetězit klasickými operandy jako je AND a OR.
    Tj. chceme-li např. přidat další podmínky, že příkaz se má vykonat pouze v čase 9 - 15 hodin, můžeme zadat:
    if myCCI crosses below 0
    AND time>900 AND time Sellshort ( "CCI_short" ) next bar at market ;
    Co se základních příkazů pro otevírání pozic v TradeStation týče, potom:
    pro dlouhou pozici: otevřít=buy, uzavřít=sell
    pro krátkou pozici: otevřít=sellshort, uzavřít=buy to cover
    (pozor všimněte si, že příkaz sell neslouží k otevření krátké pozice, ale k uzavření dlouhé, a to je v pojetí EasyLanguage rozdíl!)
    Pokyny lze vykonávat za market, jako v našem příkladu, ale samozřejmě i pomocí dalších typů obchodních příkazů jako je limit nebo stop. Tomuto se budeme ale věnovat v některém dalším díle seriálu v rámci konkrétního příkladu.
    Ač to na první pohled může vypadat složitě, po určité praxi lze i s několika základními funkcemi a příkazy, kterým se budeme v tomto seriálu věnovat, poskládat řadu zajímavých systémů, které nemusí nutně fungovat jako plně automatizované, ale mohou i začínajícím uživatelům programu pomoci s testováním základních myšlenek, které lze posléze pilovat např. pomocí jemného diskréčního testování.
    V příštím díle seriálu si ukážeme, jak náš první ukázkový systém aplikovat do různých trhů a vyhodnocovat jeho výsledky.
    Díly seriálu:
    Pracujeme s TradeStation (1)
    Pracujeme s TradeStation (2)
    Pracujeme s TradeStation (3)
×
×
  • Vytvořit...