Velký test Algo tradingu. Funguje nebo ne?

Algoritmické obchodování je v dnešní době mezi tradery velmi populární, a tak jsme se rozhodli jít opravdu hluboko a otestovat, zda to funguje nebo ne. Výsledek by vás mohl překvapit. V následujícím článku vám ukážeme, jak si vytvořit vlastní Algoritmické obchodní portfolio, a také ukážeme výsledky obchodování, které jsme vytvořili po jednom roce testování na reálném trhu.

 

Možná jste se již setkali s termínem Algoritmické obchodování. Algoritmické obchodování, nebo jak je také označováno Algo trading, je typem obchodování, který využívá software ke spouštění složitých matematických vzorců pro obchodování. Existuje mnoho druhů Algo trading softwaru, a to v závislosti na tom, pro koho jsou stavěny. Mnoho velkých hedge fondů a institucí provozuje své algoritmické systémy, které jsou vybaveny sofistikovanými rovnicemi, včetně profesionálních nástrojů a naprogramovaných funkcí tak, aby neustále vydělávaly se ziskem. Systémy jsou nepřetržitě kontrolovány a tradeři na ně neustále dohlížejí a zajišťují řádnou funkčnost.

Na druhé straně jsou zde Algoritmické systémy pro širší využití maloobchodníků. Stručně řečeno, každý obyčejný retailový trader může zakoupit software za pár stovek nebo tisíců dolarů a začít programovat sám. Tyto platformy často však ani nevyžadují žádné znalosti programování, protože kódování je plně zaintegrováno. Rozhraní může být velmi uživatelsky přívětivé, takže si můžete vytvořit své vlastní portfolio nebo roboty, které se budou chovat přesně tak, jak je potřeba.

Jak sestavit portfolio Algoritmů?

Vytvoření vlastního portfolia založeného na vyvinutých algo systémech tedy zní velmi snadno, že? Ve skutečnosti to ale vlastně není tak snadné, jak by si člověk myslel. Nalezení ziskového portfolia není hračka. Musíte strávit hodiny a dny filtrováním špatných systémů od těch, které mají určitý potenciál uspět. Ty ze systémů, které projdou vaším filtrem, je třeba znovu retestovat, než přejdeme do další fáze vývoje. To zahrnuje kompletní retestování na jiných datech, Monte-Carlo metodu simulace, testy robustnosti, optimalizace, walk-forward testování, demo testování a živé testování. Krátce přiblížím některé z těchto fází:

Nalezení velkého vzorku kandidátů

Chcete-li začít, musíte obvykle vytvořit sadu pravidel nebo parametrů, podle kterých budou vaše algo systémy běžet. Jinými slovy, musíte definovat svůj obchodní plán, který může systém vzít v úvahu při výpočtu variant pro ziskový systém. Může se jednat o některé z indikátorů, časové periody, kombinace logiky obchodování, nastavení rozpětí, výpočty svíček, pravidla vstupu a výstupu, cenové hodnoty, typy objednávek nebo vlastnoručně naprogramované indikátory. Zde také definujete své řízení peněz, tzv. money management. S mnoha programy můžete vytvořit své první systémy pomocí kombinace genetického kombinování nebo skládáním náhodných variant výše uvedených stavebních bloků.

Retestování

Náš počáteční vzorek kandidátů musí být dále zpracován. Nyní je nutné odfiltrovat systémy, které nemají dobré vlastnosti nebo předpoklady k profitabilitě.  Naším hlavním zájmem by měla být stabilita equity křivky, malé drawdowny, vysoký ziskový faktor, poměr Return/Drawdown a procentuelní ziskovost. Pokud některý z těchto parametrů zaostává za jakýmkoliv systémem nebo strategií, je pravděpodobné, že výkon na reálném trhu nebude dobrý a proto je lepší tento systém eliminovat. Kandidáti, kteří projdou počátečním generováním, musí být nyní zapojeni do retesteru s tvrdšími parametry a nejlépe jiným vzorkem dat. Je důležité zmínit, že dobrá a kvalitní historická data jsou základem úspěšného generování a zpětného retestování. Opravdu dobrá data většinou nejsou bezplatná a je obvykle nutné je zakoupit z externího zdroje, případně mít datových zdrojů více. Pokud vaše historická data mají nedostatky, vaše vygenerované algo systémy budou mít za následek nepřesné či špatné výsledky a nebudou kvalitní.

Chtěli byste se zdokonalit v algoritmickém obchodování? Porozumějte základním funkcím a naučte se sami programovat! Máme pro vás rozsáhlý seriál vzdělávacích článků, které vás zavedou do světa programování algoritmických systémů od A do Z.

Testy robustnosti

Tato fáze je často součástí samotného retestování. Účelem testu robustnosti je, že své systémy vystavíte řadě nepříjemných tržních scénářů nebo neočekávaných situací. Testy robustnosti nám umožňují určit, které strategie budou s největší pravděpodobností ziskové i v reálném obchodování, a také to, jak choulostivé jsou vůči možným změnám, jako je změna volatility, prokluzy atd. Testy robustnosti lze kombinovat s tzv. Monte Carlo simulací, což je simulační technika, která vynucuje dopad rizika a náhodného vlivu s dopadem nepředvídaných změn, jež by mohly ohrozit celý systém. Testování robustnosti může náhodně měnit přeskočení obchodů, měnit nebo vynechat historická data, zahrnout náhodné navýšení spreadů a prokluzů, nebo náhodně měnit systémové vstupy, funkce a logiku algoritmu.

Simulace robustnosti pomocí metody Monte Carlo

Walk-forward testování a Optimalizace

Výsledek systémů, které prošly výše uvedenými stupni vývoje, může být dále optimalizován. Cílem optimalizace je najít nejlepší možná nastavení v algoritmickém výpočtu, nebo jednoduše získat lepší výsledky testováním systémů s pozměněnou logikou. Je třeba dávat pozor, aby nedošlo k přeoptimalizaci původně ziskových systémů, protože by to mohlo vést k něčemu, co se nazývá „narovnávání křivky“. Narovnávání equity křivky znamená, že výsledek systému testovaného na původních vzorkových datech je pak nadměrně optimalizován, aby se strategie vyhnula tržním výkyvům a výsledková křivka pak vypadala co nejstabilněji. Takovéto nadměrně optimalizované systémy vypadají dobře na historických datech, ale nejčastěji selhávají v reálném tržním prostředí. Walk-forward testování, neboli dopředné testování, může pomoci zajistit, že systémy budou mít větší šanci uspět v budoucnu, protože metodika bere v úvahu posuny dat mezi původním vzorkem a neznámým vzorkem dat, tedy historickými daty, na jejichž základě strategie vznikla a daty, kde strategie ještě nebyla testována. Dobrý systém nebo strategie by měly odolat neznámým datům, případně odlišnostem v jiných datech a vykázat podobný výsledek jako v prvotně vyvinutém vzorku.

Co dále?

Nyní máte soubor systémů, které by měly být dostatečně silné a robustní a měly by přežít případné otřesy trhu nebo neočekávané situace. Je také důležité, aby bylo portfolio rozšířeno do více instrumentů, abyste nemuseli čelit vysokému riziku spoléhání se na jeden nebo dva konkrétní trhy. Portfolio robotů by se také mělo skládat z přiměřenému počtu systémů, abyste nevystavili celý kapitál malému zlomku portfolia, které by nebylo dostatečně silné. Jinými slovy, čím více kvalitních robotů se diverzifikuje do různých aktiv, tím lépe. Nyní můžete své systémy nasadit do obchodní platformy a sledovat výkon. Je samozřejmé, že vést si vlastní obchodní deník je nutností. Musíte dohlížet na vaše systémy a ujistit se, že běží podle logiky, která byla vyvinuta. Nyní se stanete manažerem, který ovládá své vlastní roboty.

Naše reálné roční testování

Chtěli jsme se sami přesvědčit, zda Algoritmické obchodování funguje nebo ne. Výše uvedený vývojový proces nám trval celé 4 měsíce nepřetržité práce, testování, opakovaného retestování, testování robustnosti, optimalizace atd. Počítač pracoval dnem a nocí, protože jsme nepřetržitě vyvíjeli a filtrovali silné systémy. Nakonec jsme měli portfolio 91 systémů, které jsme nasadili dne 1.4.2018 k živému obchodování. Platforma MetaTrader tedy vypadá takto:

Roboti pracovali na pozadí a obchodovali podle očekávání. V portfoliu jsme nezaznamenali žádné chyby a všechny jednotlivé systémy šlapaly podle vyvinutých strategií. Během jednoho roku testování se server 6x zhroutil a platformu na několik minut vypnul. To by však nemělo mít žádný vliv na celkovou výkonnost celého portfolia, neboť tyto drobné výpadky měly být zohledněny při testování robustnosti a v žádném případě by neměly ohrozit ziskovost systému. Zajímá vás, jak funguje portfolio přesně po jednom roce?

Výsledky

Během jednoho roku obchodování se výsledky ukázaly jako špatné. Konkrétně, na účtu se 100,000 USD byla celková ztráta 12,530 USD. Money Management byl statický a každý jednotlivý obchod byl proveden s 0,1 loty a to proto, abychom zajistili dlouhou životnost účtu a udrželi dobré parametry risk managementu. Protože každý jednotlivý obchod byl novou jedinečnou obchodní příležitostí, pravděpodobnosti zisku byly vždy stejné. Všechny obchody měly nastaven Stop Loss a Profit Target. I když jsme ztratili 12,5% účtu, tento dlouhodobý test nám dal dobrý důvod se domnívat, že algoritmické obchodování, jak bylo vyvinuto a testováno, není odpovědí na ziskové obchodování či ziskový systém. Nezastavujeme se ovšem zde. Nejdůležitější věcí, kterou je nyní třeba udělat, je podrobněji analyzovat obchodní historii a navrhnout řešení a cestu dále. I když se tento velký test algoritmického obchodování ukázal jako neúspěšný, věříme, že stále můžete vybudovat ziskový systém založený na Algo systémech.

Analýza

Jak vidíte na výsledkové křivce výše, systém nebyl dostatečně stabilní. Došlo k výrazným výkyvům nahoru a dolů a maximální drawdown v jednom okamžiku byl 17,6%, což považujeme za příliš vysoké. Celkový počet uskutečněných obchodů činil 4081, což činí 11 obchodů za kalendářní den. Vzhledem k tomu, že celé portfolio má 91 robotů, znamená to, že 8,27% robotů každý den vytvořilo určitý výsledek. Ostatní algo roboti čekali na správný setup nebo drželi trade z minulosti. Vzhledem k těmto faktům můžeme říci, že portfolio bylo přiměřeně aktivní. Níže je shrnutí některých statistik:

Obchody 4081 Komise -$4112
Profitabilita 40% Prům.doba obchodu 1 den
Loty 411 Profit Factor 0.87

Protože celé portfolio bylo postaveno na různých instrumentech a časových rámcích, můžeme výsledky rozdělit podle jednotlivých symbolů.

Instrument Long Trades Long Pips Long Profit Short Trades Short Pips Short Profit Total Trades Total Pips Total Profit
EURUSD 410 -1966.0 -2923.34 541 1598.4 1225.09 951 -367.6 -1698.25
EURJPY 177 -1903.6 -2037.46 149 1145.4 873.24 326 -758.2 -1164.22
GBPJPY 221 -1124.2 -1251.41 211 1522.6 824.67 432 398.4 -426.74
USDJPY 120 -130.1 -227.06 101 395.4 213.04 221 265.3 -14.02
XAUUSD 488 -55130.0 -7269.63 532 7731.0 159.36 1020 -47399.0 -7110.27
AUDJPY 126 24.8 -86.52 8 79.6 57.26 134 104.4 -29.26
AUDCAD 5 -11.7 -12.59 3 -37.3 -32.78 8 -49.0 -45.37
USDCAD 10 -21.5 -31.43 13 -274.4 -155.69 23 -295.9 -187.12
CADCHF 17 -76.1 -89.34 23 -125.6 -167.35 40 -201.7 -256.69
GBPUSD 111 -849.7 -1057.65 117 -60.3 -178.54 228 -910.0 -1236.19
AUDSGD 0 0.0 0 712 248.5 -550.26 712 248.5 -550.26

Z toho, co vidíme ve výše uvedené tabulce, je zřejmé, že ve výsledku všechny instrumenty vykázaly celkovou ztrátu. Instrumenty, které byly ziskové, jsme však roztřídili a vidíme, že celkem 6 symbolů bylo profitabilních, a to pouze při shortování. Poslední tři instrumenty z těchto ziskových shortů budeme nyní ignorovat, protože jejich zisk není relevantní vůči nákladům na ně. Pouze první tři symboly vytvořily přiměřenou velikost vzorku a zisk odpovídající jejich výkonnosti.

Co dále?

Existují dva scénáře, jak se nyní můžeme posunout kupředu. Prvním z nich je, že necháme běžet pouze ziskové systémy, což jsou tedy shorty na EURUSD, EURJPY, GBPJPY a druhým scénářem je zapojení celého portfolia do reverzního obchodování a dlouhodobé sledování výkonnosti. Pokud se celé portfolio založené na Algoritmech ukázalo jako ztrátový systém, mělo by se, teoreticky, obchodování změnit na ziskové pokud ho napojíme na reverz. Co myslíte? Stane se tak? Dejte nám vědět, co si myslíte a nebo jestli máte podobné zkušenosti. Mezitím se budeme zabývat oběma scénáři, protože jsme sami zvědaví na výsledky těchto experimentů. A vy se teď už můžete těšit na další článek z rubriky obchodních experimentů, kde vám tyto výsledky časem přineseme.

Autor: Pavel Dušek – Analytik projektu Získejúčet

DOKÁŽETE SPLNIT PRAVIDLA A ZÍSKAT KAPITÁL NA FOREX? VYZKOUŠEJTE SI VÝZVU ZDARMA!