Jump to content
Co nového? Mé kurzy
Články a tutoriály:
Slovník pojmů Seriály Komoditní Manuál Psychologie obchodování
  • Automatizované analytické workflow s naprosto minimálními náklady? Ano je to možné.

    Za poslední měsíce jsem na Finančníkovi napsal hned několik článků týkajících se většího zapojování automatizace do svého obchodování. A jelikož postupně vše nabralo skutečně vysoké obrátky, chci dnes upozornit na některé věci, které vás možná nadchnou a posunou stejně jako mě.

       automatizace.jpg
    Foto (c)123rf.com  

    Vše se u mě dalo do pohybu někdy v průběhu loňského roku, kdy jsem začal mít potřebu více pracovat na integraci a zefektivnění svých obchodních přístupů. Je možné, že za tím stál plánovaný přírůstek do rodiny (a tudíž výrazně větší nároky na volný čas), částečně patrně i potřeba vystoupit po letech z komfortní zóny a zkusit se posunout dále. Vlastně jsem neměl konkrétní plán, jen jsem vnímal, že by šlo některé věci propojit a dělat lépe. Například do intradenního obchodování více využívat některých vstupů (a pravděpodobností) z opčních strategií a tendencí ze swingových strategií. Dlouhou dobu uvažuji nad tím více automatizovat spreadové strategie a podobně. Dlouho jsem přemýšlel, kterým směrem se vydat. Obzvlášť proto, že jsem naposledy programoval v Basicu na základní škole a nikdy jsem neměl zájem stát se programátorem. Uvědomoval jsem si možnou cestu nechat si nějaké řešení naprogramovat, ale to nebylo úplně to, co jsem hledal. Jak už z předchozích článků víte, nakonec jsem se přiklonil k používání Pythonu řekněme na „uživatelské úrovni“. A zpětně musím konstatovat, že věci se postupně začaly hýbat opravdu rychlým směrem a k mé ohromné spokojenosti.

    Ono totiž i s relativně malými programátorskými znalostmi a neustále zapnutým vyhledáváním v Google jde v dnešní době provádět na počítači neuvěřitelné věci.

    Mé ambice byly nemalé. V zásadě jsem chtěl především vytvářet řešení, která budou svým způsobem pracovat sama a šetřit mi čas. Budou efektivní.

    Pochopitelně, že už dříve jsem pracoval s různými skripty, například v Multicharts/Tradestation, ale bohužel to bylo vše hrozně fragmentované a vyžadovalo to mé neustálé zapojení. Patrně to znáte sami.

    Má představa byla zadat počítači práci typu – otestuj například různé denní profily trhů a otevírací gapy. Najdeš tam nějaké základy edge? Pokud ano – zkus funkční řešení rozšířit například o testy volatility a sezónnosti. S tím, že finální výstupy bych jako tendence používal ve svých diskréčních přístupech, případně nechal obchodovat automaticky (například ve stylu obchodování FOMC dne) a skládal je do širších portfolií.

    Samozřejmě, že i podobná řešení vyžadují čas tradera, ale především ten analytický, kdy člověk připraví ty správné otázky. Moje představa byla taková, že počítač bude poté sám dělat různé analýzy, které na sebe budou navazovat a ovlivňovat se podle předcházejících výsledků.

    Zkoušel jsem různé cesty. Nejschůdnější se mi vždy jevila TradeStation, která se ale ukázala jako hrozně uzavřená. Díky zkušenému programátorovi to sice chvíli vypadalo, že bych mohl automatizaci dotáhnout přes jejich optimization api, ale bylo to dost komplexní, vyžadující seriózní programátorskou práci, pomalé a bohužel s řadou dost zásadních limitů. Kdo zkusil, ví.

    TradeStation mám rád pro programování jednodušších skriptů a automatické obchodování, ale jako srdce mého automatického analytického workflow neobstála. Chtěl jsem něco, co bude levné, stabilní, rychlé, nabízející všechny běžné nástroje technické analýzy, disponující pokročilými genetickými optimalizacemi a především – plně externě ovladatelné mými jednoduchými skripty.

    Jak už řada z čtenářů Finančníka ví, nakonec jsem řešení objevil v Amibrokeru. Tento software, který patří k těm nejlevnějším na trhu, jsem vždy tak trochu přehlížel, ale pokud hledáte podobné řešení pro plnou automatizaci svých analytických procesů, tak doporučuji zaměřit svou pozornost tímto směrem.

    Amibroker zcela vše ukládá do textových nebo XML souborů, které lze externě editovat – tedy není problém jednoduchými kroky upravovat například backtestované studie, nastavovat trhy, rozsahy testovaných období, timeframe atd. Současně má OLE rozhraní (viz en.wikipedia.org/wiki/Object_Linking_and_Embedding ). S pomocí jednoduchých externích skriptů tak lze v programu dělat cokoliv – spustit analýzu, optimalizaci, WFO, updatovat databázi atd. Prostě cokoliv. A v neposlední řadě je ten program neuvěřitelně rychlý.

    Rychlost je dnes relativní pojem, neboť každý výrobce o svém programu píše jen samé superlativy. Pro ukázku jsem tak připravil video porovnání optimalizace použití Amibrokeru a TradeStation 9.5 (která je rychlejší než předchozí verze, protože má podporu multithreadingu). Jde o menší optimalizaci s 300 kombinacemi na minutových datech trhu ES za 3 roky. Jedná se skutečně jen o technické srovnání, které slepě optimalizuje jednoduchou Bollinger band strategii. Amibroker má práci hotovou za 32 sekund, TradeStation 9.5 má kompletní práci hotovou za 2 minuty 25 sekund. Oba testy jsem natočil a můžete si je vizuálně porovnat (běžely na stejném počítači, oba samostatně):

    -- video již není na serveru k dispozici

    Nechápejte mě špatně – nikdy jsem nebyl nějak vysazen na rychlosti optimalizace. Ale pokud enginy s podobnými rychlostmi necháte běžet dlouhodobě, tak je rozdíl odvedené práce opravdu výrazný. Jako neprogramátor se někdy nestačím divit, jak je možné, že to, co v jednom programu je samozřejmé, je u druhého takový problém.

    Jak vypadá například automatické spuštění optimalizace v Amibrokeru externím skriptem v Pythonu?

    NewA = AB.AnalysisDocs.Open(ApxToLoad);
    NewA.Run(4)
    while (NewA.IsBusy):
    time.sleep(0.5)
    NewA.Export(ResultsExportPath);
    NewA.Close()

    Tedy extrémně jednoduše i pro běžného neprogramátora, jako jsem já. Výsledky jsou přitom uloženy do csv, které je poté možné dál zpracovávat, procházet filtrovat a na jejich základě upravovat spouštěné analýzy a takto pokračovat stále dokola. Prakticky 100% automatizovaně.

    Musím se přiznat, že i samotný průběh hledání a testování různých slepých cest a nuancí představoval docela náročný proces. Pokud tedy řešíte podobné výzvy, kterými jsem procházel já, tak mohu toto řešení plně doporučit.

    6.11.2016

    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.


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

    Automatizace daytradingových strategií a AOS v kostce od A do Z

    V minulých týdnech jsem dostal mnoho dotazů na téma automatizovaného daytradingu. S čím počítat? Pro koho skutečně tento směr je a pro koho určitě není? Jak je to vše náročné technicky? Jak se kapitalizovat? Pokusil jsem se sestavit bližší přehled v tomto článku, a odpovědět tak na většinu dotazů.
    Výhody a nevýhody AOS - s čím reálně počítat
      
    Foto (c)depositphotos.com/Yermek  Největší výhodou jsou bez pochyb časová flexibilita a efektivnější zvládání psychologických aspektů tradingu. Automatizovaný trading je ideální pro kohokoliv, kdo se necítí nebo ho nebaví pravidelné „vysedávání“ před počítačovou obrazovkou a sledování grafů.
    Jakákoliv automatizovaná strategie může v podstatě běžet na vašem vlastním domácím počítači, serveru apod. Můžete navíc využívat možnost vzdáleného připojení k počítači (takzvaná RDP - Remote Desktop funkce ve Windows), takže se můžete kdykoliv připojit z mobilu/tabletu a sledovat své pozice, ať už jste kdekoliv.
    Automatizovaný trading dále může výrazně pomoci s psychologickými aspekty obchodování. Avšak pozor - nikoliv kompletně!
    Určitě můžete radikálně snížit problém porušování obchodního plánu. Vstupy i výstupy za vás exekvuje počítač, není zde žádný prostor pro osobní váhání nebo „tipování“. Počítač ví dle daného kódu naprosto přesně, kdy má vstoupit nebo vystoupit. Vše je dáno, žádné emoce. V tomto ohledu je dnes má chybovost absolutně nulová.
    To ovšem neznamená, že ztrátové dny nebo drawdowny „bolí“ méně. V tomto ohledu je jedno, jaký styl obchodujete - tlak ze ztrátových dnů a drawdownů je samozřejmě stále stejně nepříjemný. Přesto je však psychologická úleva (a samozřejmě i časová) v tomto směru značná.
    Nevýhody automatizovaného tradingu jsou určitá nutnost projít si počátečními technickými kroky, zvládnout několik technických aspektů, které se k automatizovanému tradingu váží. Dále pak nutnost pracovat s větším stop-lossem než u diskréčního daytradingu (takže jeho zasažení pochopitelně bolí více než u menších stop-lossů, na které jsou diskréční daytradeři zvyklí) a připravit se na potřebu větší kapitalizace. I když ta je velmi individuální - znám tradery, kteří se vypracovali v automatickém obchodování i z pár jednotek tisíc USD. Obecně ale se 2-3 tisíci USD nemá moc smysl s AOS začínat.
    Náročnost AOS - pro koho skutečně jsou a pro koho skutečně nejsou
    Náročnost samotného obchodování je (resp. může být jako v mém případě) prakticky nulová.
    Například veškeré mé automatické strategie běží dnes pod neustálým dohledem mého brokera Martina Lembáka. To znamená, že sám se nestarám vůbec o nic. Dokonce ani nekontroluji pravidelně své statementy. Nepotřebuji vůbec sledovat trhy. Za několik let jsem v tento způsob získal natolik velikou důvěru, že jen jednou za pár týdnů (a když cestuji tak i měsíců) překontroluji své statementy, kouknu se, jak equity od té doby (ideálně, ale ne vždy) povyrostla a samotným procesem tradingu se prakticky vůbec netrápím. V tomto ohledu jsou AOS nenahraditelné - prakticky nepotřebujete vidět žádné grafy, žádné trhy, ani o svém tradingu téměř vědět, a přesto můžete efektivně fungovat (samozřejmě, je i řada AOS traderů, kterým naopak vyhovuje své pozice sledovat - přístup je zde značně individuální).
    Vývoj strategií je něco trochu jiného.
    Je zde nutnost zvládnout určité technické kroky a následně mít trpělivost, než přijdete se zajímavou strategií. Najít robustní AOS strategii není dnes snadné. Vyžaduje to čas a trpělivost (většinu času za vás obstará počítač, avšak i tak je potřeba developmentu věnovat pozornost). Výhoda je, že tato část je časově flexibilní - nejste vázáni na konkrétní časové rozpětí během dne.
    Náročnost vývoje AOS představuje určité výzvy. Proto sám rád říkám, že vývoj AOS je pro lidi, kteří mají výzvy rádi, které baví něco stavět, budovat, vytvářet, testovat, porovnávat a uvádět v provoz. Z tohoto pohledu tedy nejsou určitě AOS pro každého. Mnoho klientů mého VIP AOS Turbo kurzu jsou většinou akční, tvořiví lidé. Jsou to lidé, ke kterým mám hluboký respekt, protože většina z těch, co jsem měl možnost na svých živých AOS kurzech potkat, jsou lidé s odvahou, kuráží a radostí pracovat na sobě i na svém tradingu. Jsou to často i pro mě inspirativní lidé, kteří to sami již někam dopracovali, něco již dokázali vytvořit a vybudovat (a velmi jim děkuji za to, že mně dali svoji důvěru a stali se mými klienty, velmi si toho vážím a jsem za tuto důvěru a i inspiraci pro moji další práci upřímně velmi vděčný). A jsou to definitivně lidé, kteří mají rádi výzvy a umí je překonávat.
    Myslím si, že AOS není pro nikoho, kdo nemá rád výzvy a jejich překonávání nebo kdo čeká okamžité výsledky bez práce. Většina AOS traderů, co znám, žije už pro proces samotný. Hledí na AOS jako na stavbu dlouholetého byznysu, někteří moji studenti už dnes mají a řídí i vlastní, menší investiční AOS fondy. To vše je v tomto směru obchodování důležité.
    A pokud nemáte rádi počítače, má smysl se do AOS pouštět jen pod jedinou podmínkou - že si k sobě najdete někoho, kdo počítače rád má (což občas moji studenti dělají).
    Kapitalizace - a pár tipů, jak na to
    V řadě mých studentů je hodně takových, kteří nedisponují žádnými značnými finančními prostředky. Jsou to lidé se zaměstnáním, trochu lepšími platy, rodinami, nemalými měsíčními náklady.
    Vcelku mě zaujalo, když jsem zjistil, že pracují s docela velkými portfolii AOS, což samozřejmě již vyžaduje rozumnější kapitalizaci (u některých taková byla i v řádech desítek tisíc USD). Proto jsem se pídil, jakým způsobem tito studenti dali dohromady až takovýto kapitál a prakticky vždy jsem dostal stejnou odpověď: Několik lidí, občas i přímo AOS obchodníků, se spojilo.
    Toto z mého pohledu dává naprostou logiku (navíc je možné dnes u brokera založit takzvaný „join account“, kdy každý vloží svoji část prostředků a má ji zároveň určitým způsobem pod kontrolou - na detaily je však třeba se zeptat přímo u daného brokera, sám tuto službu nevyužívám). Sdílení lidských zdrojů je něco, co mně v posledních dvou letech umožnilo neuvěřitelný leverage mé vlastní práce na tradingu - až do úrovně založení vlastního hedge fondu. Jinými slovy: Více lidí = rychlejší postup práce + větší kapitalizace + větší portfolio = rychlejší úspěch.
    Mezi studenty jsem pak narazil na celou řadu případů:
    Někteří se ponořili do vývoje AOS, následně šli prezentovat výsledky své práce lidem v okolí, které by mohlo zajímat podílet se investičně a dali dohromady (nemalý) kapitál.
    Jiní dali dohromady prostředky v rámci rodinných příslušníků, které také možnosti tradingu zajímaly.
    A jak jsem již zmínil, někteří si přímo založili vlastní, malý, soukromý investiční fond (resp. soukromou investiční firmu).
    Sám jsem pak zažil na jednom ze seminářů pána, který z nedostatku času nabídl kapitál za spolupráci přímo na místě.
    Kapitálu je všude kolem dost. Vidím to dnes a denně. Na světě nikdy nebylo více peněz a tak málo příležitostí k potenciálně zajímavým výnosům. Kde je vůle, je i cesta. I proto jsou AOS pro lidi s odvahou a vizí - což dokazují mé překvapivě kladné zkušenosti z toho, kde všude a jak AOS obchodníci dokázali dát dohromady nemalý kapitál i mimo vlastní zdroje. Je třeba vidět příležitosti, ne překážky. Je třeba být otevřený možnostem, ne se uzavírat ze strachu. Kdo je na (veliké) peníze připravený, k tomu si vždy cestu najdou. Kdo je připravený jen na malé peníze, zůstane jen ve svém mikrosvětě. Kdo má k penězům předsudky, těžko kdy zbohatne.
    Běžný software používaný při AOS
    Moji studenti používají většinou TradeStation, MultiCharts nebo NinjaTrader.
    S jiným SW jsem se prakticky nesetkal.
    Sám jsem začínal s TradeStation. Ze začátku mě to trochu děsilo, ale postupnými krůčky jsem program vcelku zvládl.
    Dnes spolupracuji se dvěma elitními programátory. Ve sdílení lidských zdrojů a dovedností (a následném sdílení případných profitů) jsem našel větší potenciál i větší smysl.
    I tak se ale domnívám, že i software může zvládnout každý, kdo bude mít vůli. Mezi mými studenty jsou lidé napříč všemi úrovněmi vzdělání a poradili si všichni.
    Odkud se do toho pustit
    Nejprve si zvažte z výše popsaného, zda skutečně splňujete profil pro obchodníka AOS. Zda výhody AOS jsou to, co hledáte, zda nevýhody dokážete akceptovat. Zda jste člověk, co chce něco tvořit, budovat, posouvat se dále, někam mířit, kráčet a má dlouhodobější (a případně i větší) vizi - ne pouze představu, že nebude muset nic moc dělat a peníze se posypou. A zda máte rádi výzvy.
    Pokud ano, samozřejmě si neodpustím zde doporučit začít mým vlastním kompletním, online programem. Nejde jen o ucelené, kompletní, prověřené know-how, ale také o komunitu naprosto skvělých lidí, kteří již sami vytvořili vlastní strategie a podělili se o ně v rámci VIP AOS klubu (který dnes čítá již 43 strategií a každý týden přibývají další). Jejich práce a úsilí jsou velikou inspirací, ze které je radost čerpat.
    A pokud jste navíc lidé, kteří dokáží pracovat s dlouhodobější vizí a představou postupného budování, pak pro vás bude investice naprosto zanedbatelná. Budete z ní moci v příštích letech opakovaně těžit a nadále na ní stavět. Sám jsem po pár letech dosáhl posunu od svého prvního jednoduchého AOS, který mimochodem obchoduji dodnes, až po ambiciózní investiční fond. Meze se zde nekladou.
    A pokud preferujete jinou variantu, pak na Finančníkovi existuje již celá řada bezplatných článků, jak a odkud se do AOS pustit.

    Amibroker a Interactive Brokers plugin pro napojení ID dat

    V dnešním tutoriálu si ukážeme, jakým způsobem je možné napojit Amibroker na intradenní data od IB a sledovat grafy v reálném čase. 

    Video naleznete v TechLabu zde.

    Generování vstupních signálů pomocí CBT

    V dnešním videu se podrobněji zaměříme na vyhledávání signálů pomocí CBT a ukážeme si jak vytvořit plnohodnotný skener obchodních signálů. Integrace této logiky přímo do AFL kódu přináší jednu velkou výhodu, seznam signálů můžeme získat v jednom běhu zároveň s výsledky backtestu.
    V ukázce si také vystvětlíme jak používat funkce StaticVarSet() a StaticVarGet() pro práci se statickými proměnnými. 

    Video naleznete v TechLabu zde
×
×
  • Vytvořit...