Automatizované obchodování – jak to děláme na Finančník.cz
V dnešní době se stále více obchodníků setkává s potřebou zautomatizovat části svého tradingového procesu, nebo tradingu jako celku. Systematické obchodování, které na Finančník.cz používáme, vede k tvorbě jasných a konzistentních pravidel, podle kterých obchody uskutečňujeme. A protože je systematické obchodování založeno na předem definovaných mechanických pravidlech, je pro mnohé z nás posun k automatizaci rutinních činností logickým krokem. V následujícím textu bych rád ukázal, jak k takové automatizaci přistupujeme a co všechno to obnáší.
Obsah:
- Automatické obchodování skrz skripty – jak to děláme na Finančník.cz
- Proč zvolit systematický přístup k obchodování
- Automatizace nemusí být komplikovaná
- Řešení autotraderu na Finančník.cz
- Nová verze autotraderu – SignalTrader
- Ukázka jak SignalTrader může pomoci v praxi
- Závěrečné myšlenky k automatizaci v tradingu
Automatizované obchodování skrz skripty – jak to děláme na Finančník.cz
Většina obchodníků, kteří obchodují spolu se mnou na Finančníkovi, přešla stejně jako já na systematický trading.
To znamená, že vyhledáváme reálně ověřitelné výhody v trzích, vytváříme funkční logiky, které skládáme do diverzifikovaných portfolií, a následně při samotném obchodování jen následujeme signály vycházející z předem definovaných plánů.
Tato cesta je nesmírně efektivní z hlediska času a také pomáhá udržet stabilitu psychiky obchodníka.
Systematické přístupy lze obchodovat manuálně. Například tak, že se před otevřením obchodní seance zadají ručně příkazy do brokerské platformy a tím se na daný den vyřeší veškerá aktivita okolo samotných vstupů a výstupů. Nicméně jakmile se naučíte dodržovat striktní pravidla, nabízí se možnost automatizovat celý proces obchodování a v podstatě se zbavit denní rutiny. Tím uvolníme energii na to nejdůležitější – na další výzkum, studium a testování nových myšlenek.
Je důležité zdůraznit, že pokud s tradingem teprve začínáte, není automatizace nezbytná a jsou mnohem důležitější principy, na které je v začátcích důležité soustředit pozornost. Mnoha obchodníkům pomůže projít si „ruční fází“ zadávání příkazů, aby důkladně porozuměli fungování trhů a rozvíjeli zkušenosti s reálným sledováním chování trhů. V momentě, kdy získáte větší zkušenost, se ovšem otevírá velký prostor pro úsporu času, a právě tehdy dává přechod k větší míře automatizace opravdu smysl.
Proč zvolit systematický přístup k obchodování
Než se pustíme do samotné automatizace, pojďme si stručně zrekapitulovat, proč vůbec obchodovat systematicky.
Systematické obchodování přináší řadu výhod. Předně je to konzistentní realizace ověřených strategií. Mnozí obchodníci se potýkají s emočními tlaky, které často vedou k „překrucování“ plánů v průběhu samotného obchodního dne. Přidáme-li k tomu zbytečný stres a možné chyby při zadávání příkazů, není divu, že se mnoho dobrých obchodních nápadů v praxi zvrtne do ztráty. Systematický přístup sice není zárukou výdělků, ale dává vysokou míru jistoty, že vše bude probíhat tak, jak předem stanovíme.
Když se systematický přístup navíc spojí s automatizací, získáme:
- Minimum potřeby se denně zabývat zadáváním obchodů.
- Větší možnost spravovat více strategií současně.
- Časovou flexibilitu – není nutné sedět u počítače v určité hodiny.
- Omezení chyb, které vznikají z rutinního kopírování příkazů.
Automatizace nemusí být komplikovaná
I když je možné systematicky obchodovat čistě ručně, pracná stránka přichází v okamžiku, kdy máte v portfoliu větší počet strategií. Obchody je potřeba kontrolovat, zadávat a neustále porovnávat se stavem otevřených pozic v brokerské platformě.
Automatizace takových procesů může být v zásadě velmi jednoduchá a u pomalejších stylů (typicky swingové obchodování) skutečně stačí následovat podobný postup:
- Obchodní plán systematizujeme a převedeme do skriptovacího jazyka běžně dostupných programů (na Finančníkovi používáme hodně Amibroker nebo TradeStation).
- Každý den spustíme používaný software, který provede kontinuální backtest našeho obchodního systému a vytvoří sadu otevíracích a uzavírajících příkazů pro daný den.
- S využitím skriptů (například v Pythonu) se napojíme na brokera skrz API (na Finančníkovi používáme Interactive Brokers) a stáhneme si aktuální otevřené pozice, stav účtu atd.
- Skripty porovnáme otevřené pozice s pozicemi vygenerovanými v bodě 2, vyřešíme duplicity v obchodovaných trzích a možné rozdíly v otevřených pozicích vůči tomu, co bychom měli mít otevřené dle backtestu.
- Skripty převedeme platné signály na obchodní buy/sell příkazy a skrz API je předáme do brokerské platformy.
Tím celá denní práce končí a můžete se věnovat dalším aktivitám.
Řešení autotraderu na Finančník.cz
Pro swingové obchodování sdílíme na Finančníkovi v TechLabu univerzální autotrader skript vytvořený v Pythonu, který popsanou automatizaci realizuje.
Jde o otevřené řešení, které si každý může uzpůsobit podle svých potřeb. Traderů, co obchodují systematicky, přibývá, a proto považuji za důležité, aby podobné nástroje byly snadno dostupné. Obchodníci tak mají možnost rychle začít s vlastní automatizací, a to bez nutnosti tvořit vše od nuly. V TechLabu je autotrader navíc poskytován s průběžnou výukou – jak tvorby strategií, tak například práce s Pythonem a hodně obchodníků si tak postupně swingový autotrader rozšiřuje podle svých potřeb.
Nová verze autotraderu – SignalTrader
Protože se v TechLabu věnujeme automatizaci dlouhodobě, celé řešení postupně vylepšujeme. Aktuálně (březen 2025) jsme publikovali výrazně vylepšenou verzi, kterou nyní nazýváme SignalTrader – snadněji se tak řešení swingového autotraderu odliší od specializovaných řešení pro intradenní autotrader, která jsou k dispozici v TradingRoom.
SignalTrader je primárně určen k tomu, abychom mohli odesílat příkazy do trhu i z běžného počítače, tedy bez nutnosti speciálního serveru nebo VPS. Ke zpracování vstupů a výstupů z pozic v rámci swingových přístupů skutečně stačí jediný denní start skriptu.
Přehled novinek k březnu 2025:
- Změna názvu na SignalTrader.
- Nově jsme upravili strukturu kódu tak, aby byla každá strategie ošetřena proti chybám samostatně. Pokud se tedy vyskytne chyba v jedné strategii, ostatní proběhnou bez přerušení celého procesu.
- Změnili jsme princip připojení k IB, kdy držíme jedno připojení po celou dobu běhu skriptu. Při startu programu se vytvoří objekt IB, který zůstane aktivní, dokud neproběhnou všechny dotazy.
- Součástí řešení je skript Generátor, který slouží k přípravě obchodních signálů. Ten jsme rozšířili o možnost získání signálů z dashboardu TradingRoom a Techlabu. Nově tak může pracovat ve třech režimech Amibroker/TradingRoom/TechLab.
- Vytvořili jsme vlastní knihovnu ib_utils, která zjednodušuje komunikaci s IB a sdružuje funkce pro práci s daty.
- Také jsme připravili nový modul logování (zápisu informací o průběhu skriptu), nově se do jednoho logu zapisují informace o průběhu všech skriptů.
- Jedním z hlavních cílů upgradu bylo začlenění dalších typů příkazů. Úpravou logiky vytváření příkazů jsme získali možnost odesílat do trhu většinu typů příkazů podporovaných IB.
- Změnili jsme způsob vytváření výsledného reportu, nově se používá šablona, která umožňuje změny vzhledu reportu pomocí HTML kódu.
Kompletní popis změn a link ke stažení SignalTraderu naleznete v TechLabu zde: https://www.financnik.cz/forum/topic/5282-signaltrader-popis-zmen-v-nove-verzi-autotraderu/#comment-322413
Ukázka, jak může SignalTrader pomoci v praxi
Pokud s tradingem začínáte, snadno můžete mít představu, že celý úspěch v obchodování spočívá v tom, že budete čekat na určitý pattern v trhu, vyčkáte, až se objeví, a pak začnete vydělávat. Praxe je ovšem odlišná. V dnešním světě plném algoritmických systémů je třeba umět pracovat s různými přístupy a skládat je do portfolií.
Ve Workshopu profitabilního obchodování od A do Z, se kterým na Finančníkovi většina traderů začíná, například pracujeme s pěti swingovými systémy – jedná se o long mean reversion, short mean reversion, momentum strategii a nákupy dipů do trendu. Každý z těchto systémů má v čase období, kdy generuje profit, ale také fáze, kdy si prochází drawdownem.
Takto vypadají výkonnostní křivky jednotlivých systémů:
Vzájemnou kombinací jednotlivých systémů ovšem dostáváme vyváženou portfolio-equity, která může vykazovat mnohem hladší růst bez extrémních propadů (portfolio equity křivku reprezentuje horní modrá linka ukazující, jak se mění stav účtu po jednotlivých obchodech individuálních strategií - poplatky dle Interactive Brokers jsou započítány):
Konkrétně výukové portfolio Workshopu právě v březnu 2025 vytvořilo nová maxima, a to navzdory poklesu amerických akcií v uplynulých týdnech. Opět to ukazuje, že diverzifikace je velkou přidanou hodnotou systematického obchodování.
Celé podobné portfolio můžeme sice obchodovat ručně, avšak v praxi to vyžaduje denní kontrolu a zadávání příkazů (byť to vše je operace na max. půl hodinu denně).
S využitím SignalTraderu lze celý proces výrazně zjednodušit. Stačí jej spustit, nechat ho, aby zkontroloval generované signály, zrevidoval otevřené pozice a odeslal příkazy do trhu. Zde je ukázka, jak vše konkrétně funguje:
SignalTrader načte signály z uvedeného zdroje – mohou to být vaše vlastní signály generované z Amibrokeru či jiného softwaru, nebo signály z Trading Room a postará se o jejich zadání do Interactive Brokers. A to včetně toho, že podle zadaných pravidel ošetří i uzavírání obchodních pozic.
Závěrečné myšlenky k automatizaci v tradingu
Automatizaci sám vnímám jako klíčovou činnost (nejen v tradingu). Snažím se automatizovat jakékoliv rutiny.
Pokud obchodujete diskrečně, měli byste si sami odpovědět na to, jestli se vám skutečně vyplatí věnovat čas tomu, abyste třeba hodiny pozorovali trhy a pak ručně provedli nákup nebo prodej. Podle mě lze čas investovat lépe.
A věřte mi, že drtivá většina činností spojených s tradingem lze efektivně automatizovat a ušetřit opravdu hodně času.
Pro automatizaci je možné využít hotových komerčních řešení jako je například TradeStation či mnoho podobných programů. Pro práci s Python skripty jsme se rozhodli kvůli univerzálnosti. Dnešní doba je velmi dynamická a člověk snadno narazí na určitý vlastní způsob tradingu, který není v klasických retailových platformách běžně nebo snadno implementovatelný. V Python skriptech toto není problém, protože nabízejí naprostou svobodu v tom, jak si je připravíme. Navíc s dnešními možnostmi programů typu chatGPT dokáže Python skripty upravovat i naprostý neprogramátor (ostatně sám jsem ještě před pár roky neuměl naprogramovat ani makro v Excelu).
Na Finančníkovi vycházíme z toho, že je ideální mít hotové a funkční řešení, které stačí jen nainstalovat a spustit a získávat praxi. Postupně pak zvažovat vlastní rozšiřování a úpravy. Proto je k dispozici SignalTrader, který se dá snadno implementovat podle podrobných návodů v TechLabu. Není nutné vědět, jak přesně Python skripty fungují. V ideálním případě vás ale nové možnosti motivují k dalšímu studiu a začnete Python využívat i v oblasti správy dat nebo k jiné automatizaci (viz přehled minikurzů dostupných v rámci TechLabu: https://www.financnik.cz/forum/info/ostatni/minikurzy-prehled). Postupem času tak sami zjistíte, jak si hotové řešení upravit podle svých představ, a stanete se skutečně plně automatizovanými tradery stejně jako my.
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
-
1