Jak vytvořit algoritmický obchodní systém: 2 hlavní přístupy, testování, nástroje


Hlavní součásti algoritmického obchodního systému jsou:
- nástroje pro výzkum
- výkon
- snadnost vývoje
- odolnost a testování
- oddělení obav
- obeznámenost
- údržba
- dostupnost zdrojového kódu
- náklady na licence
- vyspělost knihoven
Před rozhodnutím o „nejlepším“ nástroji, se kterým lze vytvořit automatický obchodní systém, je nutné definovat požadavky:
- Jaká bude frekvence obchodování a pravděpodobný objem obchodů?
- Bude systém vyžadovat řízení rizik nebo modul pro konstrukci portfolia?
- Bude systém vyžadovat vysoce výkonný backtester ?
Tradeři, kteří požadují více komplexní a na míru tvořené systémy, se možná budou muset poohlédnout po využití C #, Matlab, nebo Python. Ale řekli bychom, že pro ostatních 95% denních obchodníků bude stačit Algoritmický obchodní software.
1 – Výpočty v Python, Matlab , C #
V tomto případě je dovednost umět programovat důležitým faktorem při vytváření strategie automatizovaného algoritmického obchodování. Znalost programovacího jazyka, jako je Python nebo R, vám umožní vytvořit si vlastní:
- end-to-end datové úložiště
- backtest engine
- exekuční systém
Umožní vám prozkoumat strategie s vyšší frekvencí, protože budete mít plnou kontrolu nad svou „skladbou technologie“. I když to znamená, že můžete svůj software otestovat a eliminovat chyby, znamená to také více času stráveného kódováním infrastruktury a méně implementací strategií, alespoň v počáteční fázi vaší kariéry algo tradingu.
Základní pracovní postup je následující:
- Algoritmická obchodní strategie přivádí tržní data (historická nebo živá) do programu v počítači ( backtest nebo automatická exekuce).
- Program poté odešle objednávky brokerovi prostřednictvím rozhraní API a od brokera obdrží zpět oznámení o stavu objednávky.
MATLAB a Python jsou pro některé tradery oblíbené platformy pro zpětné testování (backtest). Mají velmi komplexní a uživatelsky přívětivé rozhraní pro vývoj a ladění programů a mají širokou škálu nástrojů, které pokrývají téměř každou tajemnou matematickou nebo výpočetní techniku, se kterou se při vývoji obchodní strategie pravděpodobně setkáte.


Obrázek: import historických dat z Yahoo Finance do Pythonu


Obrázek: proces algoritmického obchodování
2 – Algoritmický obchodní software – nepotřebujete programátorské dovednosti
Druhým přístupem jsou algoritmické nástroje, jako jsou Multicharts , StrategyQuant nebo R Trader Strategy Builder (zdarma a snadno použitelné, založené na cloud technologii) a mnoho dalších.
Dny, kdy bylo algoritmické obchodování implementováno pouze profesionály, skončily. Není třeba trávit hodiny učením se C #, když lze téměř všechny systémy a strategie nakódovat pomocí StrategyQuant , Multicharts nebo R Trader Strategy Builder.
Podle našich zkušeností chtějí někteří obchodníci/programátoři podniknout dlouhou cestu k cíli často pod rouškou technické nadřazenosti. Věřte nám, většina pokročilého kódování není pro průměrnou algoritmickou obchodní strategii vyžadována. Vytváření API nebo přizpůsobování všeho v MetaTraderu může být velmi zbytečné. Zvláště pokud se místo vytváření hodnoty ponoříte do technických detailů.
Všechny platformy mají své klady i zápory, R Trader Strategy Builder je námi vytvořený, snadno použitelný modul, který retailovým obchodníkům umožňuje navrhovat, provádět backtesty a nasazovat algoritmické obchodní strategie bez znalosti programovacích jazyků.
Multi-asset obchodní platforma R Trader má jednodušší způsob, jak ukončit tradiční obchodování typu „zaměřit myš a kliknout“. Naše snadno použitelné rozhraní je navrženo pro obchodníky s různou úrovní zkušeností. Umožňuje automatizovat obchodní strategie během několika minut. Žádné programování a žádný rozruch – za chvilku budete schopni obchodní strategii zprovoznit.


Obrázek: Backtestování. Průvodce strategií v nástroji R Trader Strategy Builder.
Testování a vyhodnocování Obchodních systémů
Výzkum se zabývá hodnocením výkonnosti strategie skrze historickými daty. Proces hodnocení obchodní strategie na již známých tržních datech je znám jako zpětné testování (backtesting).
Algoritmické obchodování stojí mimo jiné typy investičních příležitostí, protože můžeme spolehlivěji poskytnout očekávání ohledně budoucí výkonnosti na základě minulé výkonnosti. Jednoduše řečeno, zpětné testování se provádí tak, že se algoritmus startegie pustí na toku historických cenových údajů, což vede k množině obchodních signálů. Každý obchod bude mít související zisk nebo ztrátu. Akumulace tohoto zisku / ztráty v rámci backtestu vaší strategie povede k celkovému zisku a ztrátě.
Jaké jsou klíčové důvody pro backtestování algoritmické strategie?
Filtrování
V počáteční fázi výzkumu je naším cílem odfiltrovat jakoukoli strategii, která nesplnila určitá kritéria. Zpětné testování nám poskytuje další filtrační mechanismus, protože můžeme eliminovat strategie, které nesplňují naše požadavky na výkonnost.
Modelování
Backtesting nám umožňuje (bezpečně!) testovat nové modely určitých tržních podmínek.
In-Sample a Out-of-Sample
Při testování nápadu na historických datech je dobré vyhradit si období historických dat pro účely testování. Počáteční historická data, na kterých je myšlenka testována a optimalizována, se označují jako data ve vzorku (in – sample). Sada dat, která byla vyčleněna mimo, se označuje jako data mimo vzorek (out-of-sample).
Toto nastavení je důležitou součástí procesu hodnocení, protože poskytuje způsob, jak otestovat myšlenku na datech, která nebyla součástí optimalizačního modelu. Výsledkem bude, že myšlenka nebude nijak ovlivněna údaji mimo vzorek a obchodníci budou moci určit, jak dobře by systém mohl fungovat na nových datech (tj. při reálném obchodování v budoucnu).
Optimalizace algoritmické obchodní strategie
Ačkoli optimalizace strategie znehodnocena zkresleními, tak nám backtesting umožňuje zvýšit výkon strategie úpravou hodnot parametrů spojených s touto strategií a přepočítáním její výkonnosti. Přeoptimalizace (přizpůsobování výkonnostní křivky) je vážným problémem. Ve všech oblastech souvisejících se shromažďováním dat (data mining) musíte být opatrní a používat správné ověřování testovací sady.
Z tohoto důvodu může být implementována celá řada metod, jako je:
- opakované testování s jiným nastavením
- simulace Monte-Carlo
- Walk-Forward-Matrix
- Walk-Forward-Optimization
- Několik Out-Of-Sample období
Forward Testování výkonosti
Demo obchodování poskytuje obchodníkům další sadu dat mimo vzorek, na kterých mohou vyhodnotit systém. Forward testování výkonu je simulace skutečného obchodování a zahrnuje následování logiky systému na živém trhu.
Důležitým aspektem Forward testování výkonu je přesně sledovat logiku systému. Jinak je obtížné, ne-li nemožné, přesně vyhodnotit tento krok procesu. Mnoho brokerů, stejně jako RoboMarkets , nabízí obchodní účet pro simulované obchodování, kde lze zadávat obchody a počítat odpovídající zisk a ztrátu. Použití demo obchodního účtu může vytvořit polorealistické prostředí, ve kterém lze procvičovat obchodování a dále hodnotit systém.


Obrázek: Backtestování . Graf v Pythonu.


Obrázek: Backtestování. Historické obchody v nástroji R Trader Strategy Builder.
V neposlední řadě bych chtěl diskutovat o nástrojích, které budou v této oblasti užitečné.
Nástroje
Software pro výzkum a Automatizované obchodování
- Excel
- R Trader Strategy Builder (https://rtrader.umstel.com – bezplatný software)
- StrategyQuant (licenční poplatek)
- MultiCharts (licenční poplatek)
- TradeStation (licenční poplatek)
- Wealth-lab (licence poplatek)
Programování
- Matlab
- Python
- R
- C #
Data
- Data sociálního sentimentu (z Twitteru a dalších sociálních médií, viz ISentium , TickerTags )
- Data získaná od davu (viz Estimize)
- Behaviorální data (viz Cabot Research)
- Satelitní a letecké snímky (viz Orbital Insight)
- Údaje o chování spotřebitelů (viz Brand Loyalties)
- Netradiční online zdroje (viz Knowsis )
- OTAS (technická data)
Ostatní poskytovatelé
- TIM Group
- Discern
- Essentia
- Kensho
- RavenPack
- SocialMediaAnalytics
- Ayasdi
- TheySay Analytics
- Quid
- Rage Frameworks
- Dataminr.
Knihy (v angličtině)
- Quantitative Trading: How to Build Your Own Algorithmic Trading Business – Ernest Chan
- Algorithmic Trading: Winning Strategies and Their Rationale – Ernest Chan
- Machine Trading: Deploying Computer Algorithms to Conquer the Markets – Ernest Chan
- Algorithmic Trading and DMA: An introduction to direct access trading strategies – Barry Johnson
- Trading and Exchanges: Market Microstructure for Practitioners – Larry Harris
Oblíbené servery a finanční deníky, ze kterých můžete získávat nápady (v angličtině)
- arXiv http://arxiv.org/archive/q-fin
- SSRN https://www.ssrn.com/en/
- Journal of Investment Strategies https://www.risk.net/journal-of-investment-strategies
- Journal of Computational Finance https://www.risk.net/journal-of-computational-finance
- Mathematical finance https://onlinelibrary.wiley.com/journal/14679965
Závěr
Jak vidíme, existují různé přístupy k vytváření strategií algoritmického obchodování. Můžete si vybrat libovolné, které odpovídá vaší úrovni znalostí a příležitostem. Také backtestování a další vývoj, po kterém teprve můžeme přejít do praxe.
Tým RoboMarkets
info@robomarkets.cz
+420 800 088 482
Upozornění na rizika:
- Tento materiál a informace v něm obsažené slouží pouze pro informační účely a v žádném případě by neměly být považovány za poskytování investičního poradenství pro účely zákona o investičních společnostech 87 (I) 2017 Kyperské republiky, nebo jakoukoli jinou formu osobního poradenství nebo doporučení, která se týká určitých typů transakcí s určitými druhy finančních nástrojů.
- Minulá výkonnost není spolehlivým ukazatelem budoucích výsledků nebo budoucího výkonu.