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í
  • 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 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-lossy, 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é slovoZkratkaPopis
    Open OOtevírací cena daného baru
    High HNejvyšší cena daného baru
    Low LNejnižší cena daného baru
    Close CUzavírací cena daného baru
    Volume VCelkové volume v rámci baru
    OpenInt IOpen 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.

    13.12.2006

    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

    Tradestation - současné přihlášení

    Dobrý den všem,
    poradíte někdo jak se přihlásit k účtu Tradestation současně na 2 pc? Na jednom k Live a na druhym k Demu. Vždy mně ted druhý login zruší předchozí přihlášení nezávisle na tom, zda se přihlašuji k Live nebo Demu. 
    Díky za radu

    Je mozne si vyskusat Tradestation na deme?

    Zdravim,

    Chcel by som sa spytat ci je mozne si vyskusat a zoznamit sa s Tradestation platformou na deme? Nasiel som na stranke TS informaciu o "Simulatore" ale nebol tam link aby som sa dozvedel viac.

    Ak ano , ako dlho toto demo trva?

    Dakujem za pomoc, skutocne som hladal ale nenasiel som to nikde na ich stranke.
    Jan

    Breakout první korekce - automatické testování v TradeStation

    Dnes navážu na svůj minulý článek „Studujeme intradenní systémy - breakout první korekce“ a prakticky vám ukážu, jak přibližně složité je vytvořit automatický test strategie, jehož výsledky byly v článku uvedeny.
    S Tomášem skoro na každém našem kurzu diskutujeme na téma, zda-li obchodní strategie programovat či nikoliv. Odpověď je vždy jednoznačná – pokud člověk s tradingem začíná, měl by se z naší zkušenosti programování čehokoliv vyhnout. Je totiž jen velmi nepatrná šance, že začátečník, který má o burze jen minimální povědomí, naprogramuje něco, co by mělo reálnou šanci „samo“ vydělávat peníze. Obzvláště to platí v oblasti intradenního obchodování. Jediné, co může začínajícího tradera posunout vpřed je studium grafů. A začátečníkům, kteří se snaží dívat na trhy skrz mechanické programování, bohužel navždy unikají ty nejzákladnější principy.
    Situace se pochopitelně mění u zkušených obchodníků. Pokud již rozumíte principům obchodování, máte dobře osahané své strategie (nejlépe skrz dlouhodobější živé obchodování), mohou vám různé programové nástroje zvýšit efektivitu nejrůznějšího testování nebo pomoci při nejrůznější automatizaci. Osobně používám programovatelné nástroje pro hledání tendencí nebo problematických období. Jednoduše řečeno jsem si vědom, že nejsem žádný programátor a nejsem schopen naprogramovat veškeré nuance obchodních přístupů, které používám. Většinou si tak vytvořím nějaký jednoduchý kód vystihující z principu určitou myšlenku a mohu chtít mechanicky otestovat její robustnost v čase předtím, než ji začnu jemně testovat ručním backtestem.
    Nástrojů, ve kterých lze testovat mechanické principy existuje obrovské množství. Poměrně dost tipů můžete získat ve starším článku „Jaký software pro backtesting a vytváření vlastních obchodních systémů a indikátorů?“. Osobně dnes používám programy TradeStation a Microsoft Excel.
    Krátce o TradeStation
    TradeStation je brokerská analytická platforma, kombinující skoro vše, co obchodník potřebuje pro technickou analýzu a mechanické programování nejrůznějších algoritmů. Podrobněji viz např. náš seriál „Pracujeme s TradeStation (1)“. Dnes samozřejmě existují i další podobná řešení, já osobně ale upřednostňuji právě TradeStation, kterou ke své spokojenosti používám již velmi dlouho. Mezi hlavní důvody patří snadná práce s daty (v podstatě historická data vůbec neřeším, protože se mi vždy načtou od brokera, byť např. ticková data jsou zde omezená pouze na 6 měsíců), velmi rozsáhlá uživatelská komunita (když potřebuji tak na diskuzním fóru vždy najdu řešení svého problému) a samozřejmě technické možnosti. Jenom pro dokreslení obrázku - platforma je zdarma klientům TradeStation (pokud děláte alespoň skutečné minimum obchodů) nebo se platí cca 100 dolarů měsíčně (plus je třeba vždy platit poplatky burzám za jejich data), komise jsou podobné jako u InteractiveBrokers. TradeStation má pochopitelně také své ALE – vývoj platformy je poměrně dost pomalý a např. až letos do platformy přibyla možnost obchodování rangebars (vteřinové grafy pořád chybí) a pro obchodníky z Evropy je nepříjemné, že prakticky příliš nelze obchodovat evropské trhy.
    Podoba kódu pro testování konceptu proražení první korekce
    Abyste si dokázali udělat představu o náročnosti programování v TradeStation, přikládám svůj kód pro diskutovanou strategii proražení první korekce. Upozorňuji, že nejsem programátor, ale uživatel. Je tak pravděpodobné, že věci jdou dělat efektivněji nebo jinak. Aby byl kód přehledný, uvádím jej jako obrázek, pokud by měl někdo zájem, napište do diskuze a vložím jej v textové podobě:

    Jak vidíte, kód není příliš dlouhý. Nejprve se definují používané proměnné a vstupní hodnoty.
    Následná zhruba třetina kódu sleduje, kolik uděláme obchodů za den. V této chvíli obchoduje strategie jediný obchod denně, počítání obchodů se děje přes proměnnou numTradesToday a jakmile má tato proměnná hodnotu 1, další obchody bude software „obchodovat“ až následující den.
    Teprve až posledních několik řádků obsahuje kód samotné strategie. Obchodujeme pouze v určité hodiny (zde nastaveno přes proměnné čas 9:33 až 10:00, což je lokální čas obchodování trhu TF, budete-li chtít obchodovat např. trh NQ je třeba nastavit lokální čas o hodinu nižší, neboť TF a NQ se obchodují na jiné burze, v jiném časovém pásmu) a sledujeme, zda-li trh překoná v daném čase první korekci. V takovém případě zkoušíme nastoupit stop příkazem nad high (v případě dlouhé pozice) poslední úsečky.
    Výstupy v tomto kódu definované nejsou, protože používám předpřipravené kódy dostupné v TradeStation. Strategie ani neřeší „premarket“, protože v TradeStation můžeme strategii automaticky aplikovat pouze na data v hlavní obchodní hodiny – v našem případě zvolím „ticker“ @TF.D.
    Shrnutí
    Článkem jsem chtěl ukázat, že pro určité typy situací může být efektivní použít programové prostředky a otestovat si robustnost myšlenky tímto způsobem. Pochopitelně, že vytvoření kódu např. v TradeStation vyžaduje určitou zkušenost, ale můžete mi věřit, že sám ovládám jen minimum příkazů, většinou kód buduji systémem pokus-omyl-diskuze, ale i tak je vytvoření podobného kódu otázka maximálně několika málo hodin práce (a zkušený programátor toto pochopitelně má hotové za pár minut). Zdůrazňuji, že je nutné rozlišovat situace, pro které má mechanické testování smysl dělat, a pro které nikoliv. Pokud však obchodník buduje jednoduché strategie, které plánuje obchodovat čistě mechanicky a tyto lze naprogramovat, tak by se o to myslím mohl pokusit. Jednak proto, že si poté velmi zkrátí čas s hrubým otestováním robustnosti přístupu (aplikováním na roky historie zpět, další trhy atd) a jednak proto, že může kód použít pro zautomatizování exekucí, protože proč nenechat jednoduchou strategii tohoto typu zobchodovat počítač, pokud je vše nadefinováno mechanicky?
    Na závěr připomenu, že sám jsem diskréční typ obchodníka a mechanické přístupy testování používám většinou na vyšší timeframe (většinou denní), navíc za účelem sledování různých základních tendencí a pravděpodobností, nikoliv pro budování AOS. V rámci intradenního obchodování neobchoduji přístup, který by bylo možné naprogramovat, ale na druhou stranu se určitě nezdráhám použít nejvhodnější nástroje v případech, které jsou k tomu vhodné.
×

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.