Budování automatických obchodních systémů

Transkript

Budování automatických obchodních systémů
Budování automatických obchodních systémů
Building automated trading systems
Radek Vostřez
Abstrakt
Účelem tvorby každého obchodního systému je konzistentní ziskovost za akceptovatelného
rizika. Mechanický přístup k obchodování na burze znamená, že pokyny k odeslání obchodních
příkazů může generovat automatický obchodní systém (AOS). Takovéto systémy reprezentují
soubor obchodních pravidel ve formě programu. Tento styl obchodování odstraňuje z
rozhodovací situace lidský faktor použitím tvrdých metod.
Cílem článku je na základě metodického postupu navrhnout ziskový AOS, který bude
optimalizován genetickými algoritmy. Tyto výsledky budou využity jako základ pro návrh
optimalizace zařazování a vyřazovaní AOS s ohledem na životnost AOS.
Klíčová slova
Automatický obchodní systém, křivka equity, profit faktor, genetické algoritmy, genetické
programování
Abstract
The purpose of the creation of any trading system is a consistent profitability for acceptable
risk. Mechanical approach to trading on a stock market means that instructions for sending
trading orders may be generated by an automatic trading system (ATS). These systems
represent business rules in a form of a program. This style of trading eliminates the human
factor using the hard methods in decision-making situations.
The aim of the article is based on a methodical process to design a profitable ATS, which will
be optimized by genetic algorithms. These results will be used as a basis for optimization
research to put into operation and discard ATS with respect to ATS life cycle.
Key Words
Automated trading system, equity curve, profit factor, genetic algorithms, genetic
programming
ÚVOD
Automatický obchodní systém je počítačový obchodní program, který automaticky obchoduje
na burze. Tento obchodní systém (OS) se řadí mezi mechanické přístupy k obchodování. Oproti
diskréčnímu přístupu k obchodování, kde trader obchoduje na základě subjektivního
rozhodnutí, je mechanický přístup algoritmický (Durenard, 2013).
Taleb (2011) popisuje prostředí trhů jako škálovatelné, ve kterém podléhá distribuce zisků
mocninným zákonům. V tomto prostředí „vítěz bere skoro vše“. Tyto zákonitosti poprvé
popsal Vilfredo Pareto. Jak uvádí Jankovsky (2007) a Plummer (2008), pravděpodobnost
úspěchu obchodováním je velice malá. Připustíme-li, že distribuce zisků z obchodování na trhu
podléhá mocninným zákonům, tak design AOS má klíčovou roli v ziskovosti.
Obchoduje-li trader diskréčně, tak OS používá jako systém pro podporu rozhodování. U této
strategie je obchodník nejvíce náchylný k negativním psychickým vlivům (Douglas, 2009).
Důvodem chybování jsou emoce, které jsou motivující energií a podstatou naší existence
(Wilber, 2000; Le Bon, 1994). Nejvýznamnějšími emocemi, z pohledu obchodování, jsou strach
a chamtivost, které mohou zásadně pokřivovat logiku vnímání informací a zvyšovat
pravděpodobnost chybného rozhodnutí. Obchodováním AOS se posouvá rozhodování
obchodníka z rozhodování nad jednotlivými obchody do rozhodování nad chováním AOS jako
celku (Prado, 2008).
Základním předpokladem úspěšného AOS jsou kvalitní vstupní data, z nichž je AOS budován.
Možnosti jak navrhnout AOS jsou různé, např. vyhledávání informací z textu, aplikací
neuronových sítí, evolučních algoritmů, fuzzy logiky aj. (Deboeck, 1994; Jankovsky, 2007;
Mitchel, 2002; Mitsuo, 1997; Prado, 2008).
METODY
Genetické algoritmy
Genetické algoritmy (GA) jsou stochastické optimalizační metody založené na darwinovském
principu evoluce. Genetické algoritmy se zařazují mezi hlavní metodologie evolučních
algoritmů. Tuto metodu představil v polovině 70. let J. Holland (Holland 1992). Cílem
genetických algoritmů je napodobit přírodní procesy. Původními kořeny, z nichž vznikla celá
oblast evolučních algoritmů, je datována do roku 1859, kdy Charles Darwin poprvé publikoval
svoji knihu O vzniku druhů přirozeným výběrem čili zachováním vhodných odrůd v boji o život.
Darwinova myšlenka, že populace živočichů a rostlin se vyvíjela po mnoho generací podle
principu přirozeného výběru a přežití těch nejschopnějších (Mitsuo 1997).
Hledání optimálního (nebo alespoň dostatečně vyhovujícího) řešení probíhá formou soutěže
v rámci populace, která postupně konverguje k řešení. K tomu, aby bylo možné posoudit, kteří
členové populace mají větší šanci podílet se na dalším vývoji hledaného řešení, se používá
pojem fitness. Fitness vyjadřuje ohodnocení míry kvality, vhodnosti, síly či reprodukční
schopnosti individua. Jedinci s lepším ohodnocením (vyšší hodnotou fitness) mají přirozeně
větší šanci přežít déle a podílet se na vytváření následující generace.
Jedinec (fenotyp) je reprezentován chromozomem (genotyp). Genotyp se dále dělí na
jednotlivé geny, které jsou lineárně uspořádány, tudíž i-tý gen dvou chromozomů stejného
typu, reprezentuje stejnou charakteristiku v obou chromozomech. Aby mohl gen určovat
příslušnou vlastnost, musí mít možnost nabývat různých hodnot, neboli musí se nacházet v
různých stavech. Tyto stavy se nazývají alely (Hynek, 2008).
Reprezentace jedince chromozomem má pevně definovanou délku a pevně určené
uspořádání genů. Je-li sestavena vhodná reprezentace jedinců, tak prvním úkolem je náhodně
nebo pomocí heuristiky vygenerovat počáteční populaci (Mitsuo, 1997).
Z inicializované populace je třeba stanovit, jakým způsobem bude vybrán nejvhodnější jedinec
za účelem reprodukce. V procesu selekce mají jedinci s vyšší funkcí fitness větší
pravděpodobnost přežití. Mezi nejčastěji používané metody selekce patří mechanizmus
pořadí, ruletový a turnajový (Mitchel, 2002).
Pro vytvoření potomků z právě vybraných rodičovských jedinců, jsou obecně používány dva
základní genetické operátory a těmi jsou křížení a mutace. Technik křížení existuje celá řada.
Mezi základní patří nejjednodušší technika jednobodová, k-bodová a uniformní. Jednobodové
i k-bodové křížení zachovává s větší pravděpodobností v celistvější podobě vlastnosti rodičů.
Zatímco uniformní křížení má spíše rozkladný vliv. Přesto lze nalézt konkrétní aplikace, kde je
možné uniformní křížení s výhodou použít (Hynek, 2008).
Právě vytvoření jedinci mohou být dále vystaveni působení operátoru mutace. Tento operátor
způsobuje nenadálé změny v genetické výbavě. Mutace hraje v procesu evoluce jedinců
důležitou roli, protože brání příliš rychlému zjednotvárnění vlastností v rámci populace. Tím
by mohlo dojít ke ztrátě potenciálně užitečného genetického materiálu a předčasné
konvergenci populace (Hynek, 2008; Smejkal, 2010).
Po provedení selekce, křížení a mutace, je možné přejít k vytvoření zcela nové populace neboli
další generace. Nejjednodušším způsobem je generační strategie, která původní populaci
nechá vymřít a tím ztratí stará populace P (0) jakýkoliv význam. Následně je nová populace P
(1) vytvořena z množiny potomků, která se stává populací novou. Tímto byl dokončen přechod
od jedné populace k populaci druhé a celý cyklus je opakován tak dlouho, dokud nebude
splněna ukončovací podmínka. Touto podmínkou může být například maximální počet
generací, po který je v populaci umožněn její vývoj, nalezení uspokojivého řešení,
nedostatečná změna nejlepšího dosud nalezeného řešení aj. (Hynek, 2008).
Protože tento evoluční proces v sobě zahrnuje značný díl náhodnosti, je každý běh příslušného
algoritmu jedinečný a odvíjí se odlišným způsobem. Z tohoto důvodu se v některých případech
může stát, že celá populace v procesu vývoje zdegeneruje a nejlepší jedinec bude
reprezentovat pouze lokální optimum (Mitchel, 2002).
Genetické programování
Genetické programování (GP) je jednou z disciplín evolučních algoritmů. Vychází z GA a
používá stejnou terminologii. GP bylo představeno na konci 80. let minulého století prof. J. R.
Kozou (Koza 1992; 1994; Koza a kol., 1999). Prof. Koza vytvořil metodu, pomocí níž se snažil o
automatickou tvorbu programů řešící symbolickou regresi. U Problémů symbolické regrese, je
pomocí adaptivního algoritmu hledán předpis funkce podle trénovací množiny. Tu tvoří
vstupní a výstupní hodnoty hledané funkce. Aby bylo možné objektivně posoudit dosažené
výsledky výpočtů realizovaných GP a porovnat je s výsledky dosaženými člověkem, navrhl prof.
J. R. Koza osm kritérií konkurenceschopnosti (Koza a kol. 1999). Kritéria vypovídají o vhodnosti
navrženého řešení vůči řešení navrženého člověkem. Z těchto kritérií musí být splněno alespoň
jedno, aby výsledek navržený GP algoritmem bylo možné považovat za konkurenceschopný
výsledku navrženému člověkem (Koza, 1994).
Obrázek č. 1: Stromová reprezentace (User's Guide 2013)
Hlavním rozdílem GP oproti GA je rozdílná reprezentace datové struktury, představující
jedince, se kterou algoritmus manipuluje. GA obvykle pracují s lineárními datovými
strukturami fixní délky. Oproti tomu GP operuje s populací hierarchicky strukturovaných
jedinců, kteří reprezentují počítačové programy. Na Obrázku č. 1 je zobrazena vstupní
podmínka pro otevření obchodu a její stromová reprezentace. Stromové datové struktury
vycházejí z obecnějších struktur grafů (Miller, 1999).
Metoda výběru kompromisní varianty
Metody založené na práci s nominální informací vyjadřují důležitost aspiračních úrovní kritérií.
Tyto metody lze použít, je-li známa nominální informace aspirační hodnoty kritérií a kardinální
ohodnocení variant podle jednotlivých kritérií (Brožová a kol., 2003).
Metody pracují na bázi porovnávání kriteriálních hodnot všech variant s aspiračními úrovněmi
všech kritérií. Obvykle rozdělí množinu variant na varianty neakceptovatelné a
akceptovatelné. Při dostatečném zpřísnění aspiračních úrovní může být pouze jediná varianta
akceptovatelná. Tato varianta je nazývána jako kompromisní varianta. Při použití velmi
přísných aspiračních úrovních nemusí být akceptovatelná žádná varianta. Poté je potřeba
aspirační úrovně některých kritérií uvolnit. V případě konjunktivní metody akceptujeme pouze
varianty, které splňují všechny aspirační úrovně
𝑀 = {𝑎𝑖 | 𝑦𝑖𝑗 𝑗𝑒 𝑙𝑒𝑝ší 𝑛𝑒ž 𝑧𝑗 𝑝𝑟𝑜 𝑣š𝑒𝑐ℎ𝑛𝑎 𝑗 = 1, … , 𝑛}
(1)
kde zj je minimální požadované hodnocení varianty podle j-tého kritéria (Brožová et al. 2003).
EXPERIMENTÁLNÍ AOS
Předmětem experimentu je budování ziskového AOS podle následující metodiky. Princip
ziskovosti AOS bude založen na výpočtu hodnoty profit faktoru, neboli podílu celkového
čistého zisku a celkové ztrátě. Profit faktor u ziskového AOS musí mít hodnotu vyšší než 1.
Ziskový AOS má křivku equity rostoucí, neboli grafická reprezentace hodnoty obchodního účtu
má rostoucí tendenci. Problém návrhu AOS můžeme řadit mezi špatně strukturované
rozhodovací problémy. Problém nemá analyticky optimální řešení a mezi prvky existují složité
vazby. Modelování ziskového AOS se uskutečňuje pomocí GP. Do modelu vstupuje velké
množství proměnných a rozsáhlý datový soubor. Pro potřeby modelování AOS jsou použity
denní historické ceny (při otevření trhu; minimum dne; maximum dne; při uzavření trhu)
indexu Russell 20001 za období od 1. 3. 1995 do 28. 2. 2011. Tato data jsou volně dostupná
(Google Finance, 2014). AOS jsou budovány v programu Adaptrade Builder 1.5. Testování
vlastností AOS je analyzováno v programu Multicharts 8.5.
Obrázek č. 2: Metodické schéma experimentálního AOS
Základní schéma metodického postupu je na Obrázku č. 2. Nastavení optimalizace bude
rozděleno na fázi výchozí a redukovanou. V první fázi výchozího nastavení budou generovány
tři AOS: 1) AOS s nižším prvkem náhodnosti; 2) AOS s vyšším prvkem náhodnosti; 3) náhodně
nastaveného AOS. Rozdíl mezi nastaveními s nižším prvkem náhodnosti a vyšším prvkem
náhodnosti bude v odlišném nastavení pravděpodobnosti křížení a mutace při výpočtu GA.
Náhodné nastavení reprezentuje nastavení optimalizace genetických algoritmů laikem. Druhá
fáze redukovaného nastavení bude přistupovat k výsledkům z výchozího nastavení
inkrementálně a dále je bude větvit rozdílným nastavením money managementu na
konzervativní a agresivní.
Modelování AOS bude provedeno v programu Adaptrade Builder 1.5 pomocí GP. Výstupem z
budování budou optimalizované AOS ve formě programu. Zdrojový kód AOS bude v
programovacím jazyku EasyLanguage. V programu Multicharts 8.5 budou vygenerované AOS
backtestovány. Backtest, neboli ověřování funkčnosti OS na historických datech, bude
proveden na datech, ze kterých byly AOS budovány. To potvrdí nebo vyvrátí předpoklad, že
AOS jsou ziskové, alespoň na těchto datech. Po provedení backtestu budou ztrátové AOS
vyřazeny. Nevyřazené AOS budou otestovány v paper tradingu. Paper trading bude probíhat
na datech, která nebyla použita do fáze budování AOS. Důvodem provedení testování bude
získání kvalitnějších informací o vlastnostech AOS. Na základě výstupů z paper tradingu bude
proveden test robustnosti. Test robustnosti bude mít formu výběru kompromisní varianty na
základě aplikace konjunktivního přístupu aspiračních úrovní. Kompromisní varianta bude
považována za nejlepší AOS z vybudovaných.
Nastavení AOS
Výchozí nastavení
V této fázi je nastavení GP výpočetně velmi složité. Počet proměnných vstupujících do modelu
GP je více než 50. Vstupní data do optimalizace mají pět sloupců (datum, open, high, low a
Akciový index složený z 2 000 akciových titulů obchodovaných v USA, které jsou označovány jako „smallcap“.
1
close) a 4 069 řádků. Vzhledem k časové náročnosti výpočtů byl nastaven počet jedinců v
populaci na 1 000 a počet generací na 100.
AOS s nižším prvkem náhodnosti
Nastavení tohoto AOS je popsáno úplným výčtem vstupních parametrů. U ostatních AOS jsou
popsány pouze rozdíly vůči tomuto nastavení. Nastavení genetických algoritmů pro výchozí
nastavení, které bylo generováno s nižší náhodností, bylo v programu Adaptrade Builder
následující:
• testovanými daty byly denní hodnoty Open, High, Low a Close za období 1. 1. 1995 až
do 28. 2. 2011 indexu Russell 2000;
• point value byl 100 $;
• celkové náklady za 1 obchod byly 5 $ (většina brokerů nemá vyšší);
• AOS byly budovány z 80 % in sample a 20 % out of sample;
• nastavení kompatibility zdrojového kódu bylo pro Multicharts a TradeStation 6;
• počáteční výše křivky equity byla 10 000 $ (v optimalizaci nebyl uvažován margin);
• potenciální typy obchodů mohly být na short a long stranu;
• vstupy a výstupy z trhu nebyly podmíněny překročením podmínek, ale byly
obchodovány již při jejich dosažení;
• počet obchodů za jeden den byl limitován na 1;
• vstoupit do nového obchodu bylo možné až po ukončení předešlého;
• výběr metody i hodnota parametru position sizingu byla předmětem optimalizace;
• pro první generaci byla nastavena metoda position sizingu na fixed fractional s hodnotou
3 %;
• minimální počet obchodovaných kontraktů byl 1;
• maximální počet obchodovaných kontraktů byl 100;
• násobek při zvyšování a snižování počtu kontraktů byl 1;
• ochranný stoplos byl aplikován již při vstupu do obchodu;
• výše stoplosu mohla být v intervalu 200 $ až 10 000 $;
• výše stoplosu vůči křivce equity mohla být v intervalu 0,5 % až 10 %;
• pro obchodování akceptovatelná průměrná výška úsečky (ATR) mohla být v intervalu 0,5
až 5;
• výše hodnot cenových paternů mohla být v intervalu 1 až 20;
• výše hodnot indikátorů mohla být v intervalu 1 až 150;
• indikátory, které mohly vstoupit do OS, byly: Simple Mov Ave, Exp Mov Ave, Weighter
Mov Ave, Triangular Mov Ave, MACD, TRIX, Momentum, Rate of Change, Fast K
Stochastic, Fast D Stochastic, Slow D Stochastic, RSI, CCI, DI- /DI+, DMI, ADX, Ave True
Range, True Range, Standard Deviation, Bollinger Band, Keltner Channel, Lowest,
Highest, Chaiken, Crosses Above/Below, Price Patterns, Day of Week a Absolute Value;
• obchodní příkazy, které mohly vstoupit do OS, jsou: Enter at Market, Enter on Stop
(Breakout), Enter at Limit, Exit at Target, Trailing Stop Exit, Exit at N Bars, Protective Stop
($), Protectiv Stop (%), Protectiv ATR, Exit at Market a Exit End-of-Day;
• fitness funkce byla složena z maximalizace čistého zisku, maximalizace koeficientu
korelace, maximalizace statistické významnosti;
• mezi jednotlivými prvky fitness funkce nebyla žádná preference;
• vygenerovaný OS musel mít koeficient korelace alespoň 0,95 a statistická významnost
alespoň 95 %;
• počet jedinců v generaci byl 1 000;
• počet generací byl 100;
•
•
•
•
pravděpodobnost křížení jedinců byla 80 %;
pravděpodobnost mutace jedince byla 10 %;
počet jedinců potřebných ke křížení byl 2;
komplexivita podmínek (Tree Depth) byla 2.
AOS s vyšším prvkem náhodnosti
Nastavení genetických algoritmů AOS s vyšším prvkem náhodnosti bylo, až na některé
rozdíly, ekvivalentní jako výchozí nastavení s nižším prvkem náhodnosti. Rozdíly mezi výchozí
nastavení s nižším prvkem náhodnosti a vyšším prvkem náhodnosti byly:
• pravděpodobnost křížení jedinců byla snížena na 75 %;
• pravděpodobnost mutace jedince byla zvýšena na 25 %.
Náhodné nastavení
Výchozí nastavení u náhodně nastavených genetických algoritmů mělo většinu
společných charakteristik s nastavením, které obsahuje menší prvek náhodnosti. Rozdíly v
nastavení byly:
•
•
•
•
•
•
•
position sizing metoda byla pevně zvolena na Fixed size;
výše hodnot cenových paternů mohla být v intervalu 1 až 30;
výše hodnot indikátorů mohla být v intervalu 1 až 100;
pravděpodobnost křížení jedinců byla zvýšena na 90 %;
pravděpodobnost mutace jedince byla snížena na 5 %;
počet jedinců potřebných ke křížení byl 3;
komplexivita podmínek (Tree Depth) byla 3.
Redukované nastavení
Druhá fáze optimalizace byla fáze redukovaného nastavení. Redukované nastavení
přistupovalo k optimalizaci inkrementálně. Vstupní data byla pro obě fáze shodná. V tomto
kroku byly postupně vybrány všechny AOS z výchozího nastavení a větveny agresivním a
konzervativním směrem. Rozdíl výchozího nastavení a redukovaného byl v rozdílu počtu
jedinců v populaci, počtu generací a velikosti risku na jeden obchod oproti velikosti křivky
equity. Důvodem snížení počtu jedinců v populaci na 500 a počtu generací na 10 bylo snížení
výpočetní složitosti. Určení směru agresivního a konzervativního bylo řízeno money
managementem. V konzervativním směru byl nastaven money management, neboli interval
pro riskování části obchodního účtu, na 0,5 % až 3% peněz obchodního účtu na jeden obchod.
Při tomto nastavení by došlo k proinvestování účtu, pokud by bylo minimálně 33 obchodů v
řadě ztrátových. Směr agresivní měl nastaven interval pro riskování na 0,5 % až 5 % peněz
obchodního účtu na jeden obchod, což odpovídá garanci pro minimálně 20 ztrátových
obchodů v řadě.
Modelování AOS
Schéma modelování AOS je na Obrázku č. 3. Šedé buňky reprezentují vstupující data do
modelu. Optimalizace bude vycházet jak z dat In Sample, tak i Out of Sample. Výstupem z
optimalizace budou AOS jako program.
Obrázek č. 3: Schéma budování AOS (User's Guide 2013)
Technické
indikátory
Vstupní
podmínky
Nastavení GA
Generovaní
AOS
Reset populace
Modifikování
populace
Vyhodnocení
AOS
Cíle
optimalizace
Out-of-Sample
vyhodnocení
Historická data
Russell 2000
Finální AOS
Backtest AOS
Podle definovaného nastavení GA bylo provedeno devět optimalizací. Na těchto AOS byl
proveden backtest. Vstupními daty pro backtest byly denní hodnoty cen indexu Russell 2000
v období od 1. 3. 1995 do 28. 2. 2011. Velikost obchodního účtu byla nastavena na začátku
backtestu na výši 10 000 $. Při backtestu OS nebyla brána v potaz výše poplatků za provedení
obchodu.
OS
AOS 1 - výchozí nastavení –
nižší náhodnost
AOS 2 - redukované nastavení
– nižší náhodnost –
konzervativní
AOS 3 - redukované nastavení
– nižší náhodnost – agresivní
AOS 4 - výchozí nastavení –
vyšší náhodnost
AOS 5 - redukované nastavení
– vyšší náhodnost –
konzervativní
AOS 6 - redukované nastavení
– vyšší náhodnost – agresivní
AOS 7 - výchozí nastavení –
náhodné
AOS 8 - redukované nastavení
– náhodné – konzervativní
AOS 9 - redukované nastavení
– náhodné – agresivní
Tabulka č. 1: Souhrnné výsledky backtestu AOS
Celkový
Max
Čistý profit Profit
počet
drawdown
($)
faktor
obchodů
(%)
Profitabilita
(%)
4 542
869 807,07
3,12
- 3,49
57,00
6 180
538 617,00
1,62
- 4,71
43,69
6 180
882 853,29
3,24
- 3,33
43,69
3 781
406 583,85
1,76
- 4,35
49,78
4 192
467 160,88
1,85
- 4,76
49,50
4 210
477 155,98
1,85
- 4,72
49,29
4 000
544 130,73
1,88
- 4,73
62,23
6 180
538 617,00
1,62
- 4,71
43,69
3 951
557 250,54
1,94
- 4,33
62,54
Základní ekonomické vlastnosti AOS vycházející z backtestu jsou uvedeny v Tabulce č. 1Chyba!
Nenalezen zdroj odkazů.. V backtestu jsou AOS hodnoceny za dané období podle celkového
počtu obchodů, čistého profitu, maximálního drawdownu a profitability. Vlastnosti AOS
v backtestu jsou následující:
 Celkový počet obchodů – 6 180 obchodů je nejvyšší počet obchodů
exekuovaných podle AOS. Tento počet obchodů mají shodně 2. AOS, 3. AOS a 8.
AOS. Nejmenší počet 3 781 obchodů má 4. AOS. Šest z devíti AOS, mají celkový
počet obchodů v intervalu od 3 781 do 4 542.
 Profit ($) – AOS v backtestu začínaly s obchodním účtem o velikosti 10 000 $.
Nejvyšší zhodnocení 882 853,29 $ dosáhl 3. AOS. Nejnižší zhodnocení
406 583,29 $ má 4. AOS. Tento AOS zobchodoval v daném období nejméně
obchodů. Dva AOS překonaly hranici 850 000 $ a zbylé se pohybují v intervalu
od 406 583,29 $ do 557 250,54 $.
 Profit faktor – Nejvyšší profit faktor 3,24 má 3. AOS, který měl zároveň nejvyšší
zisk. Druhý nejvyšší profit faktor 3,12 má AOS s druhým nejvyšším
zhodnocením. Zbylé AOS se pohybují v intervalu 1,62 až 1,94.
 Maximální drawdown – V tomto kritériu jsou AOS vcelku vyrovnané. Nejnižší
drawdown je – 3,33 % účtu a nejvyšší je – 4,76 % účtu. 3. AOS s nejvyšším
zhodnocením má nejnižší drawdown.
 Profitabilita – Nejvyšší profitabilitu 62,54 % má 9. AOS a nejnižší 43,69 % mají
2. AOS, 3. AOS, 8. AOS. 3. AOS má s nejvyšším zhodnocením kapitálu nejnižší
profitabilitu. Maximalizace profitability nemusí vést k nejvyšším ziskům, neboť
i AOS s nižší profitabilitou při vysokém profit faktoru může dosáhnout výrazně
lepších výsledků než AOS s vysokou profitabilitou.
Všech 9 backtestovaných AOS má profit faktor vyšší jak 1. Všechny AOS lze považovat za
ziskové. V rámci backtestu nebyl vyřazen žádný AOS.
Paper trading AOS
Všechny AOS vykázaly v backtestu ziskovost, tudíž byly zařazeny do paper tradingu. Vlastnosti
AOS z backtestu nelze očekávat při reálném nasazení, protože na těchto datech byly AOS
optimalizovány. Důvodem provedení paper tradingu je kvalitnější přiblížení vlastností AOS,
pokud by byly nasazeny do obchodování. Paper trading byl proveden na datech, které již
nebyly součástí optimalizace OS. Vstupními daty byly denní hodnoty cen indexu Russell 2000
v období od 1. 3. 2011 do 28. 2. 2013. Výpočet zisku sníženého o výše poplatků byl počítán
jako rozdíl mezi ziskem bez poplatků a počtem všech obchodů násobený 5 $ (běžná výše
poplatků za jeden obchod). V rámci paper tradingu nebyl uvažován skluz mezi požadovaným
a skutečně získaným plněním. Bohužel nezahrnutí slippage do testu zkresluje vlastnosti OS
mezi paper tradingem a reálným obchodováním. Základní informace z paper tradingu jsou
uvedeny v Tabulce č. 2, kde je proveden test robustnosti. Vlastnosti nejlepšího AOS z paper
tradingu jsou uvedeny v kapitole Výsledky experimentu.
Test robustnosti AOS
Na základě výsledků backtestu a paper tradingu byl trader postaven před rozhodovací
problém: Je ve výčtu testovaných AOS takový systém, který splňuje kritéria pro nasazení na
živé obchodování?
Z pohledu teorie rozhodování je možné test robustnosti řešit konjunktivní metodou
aspiračních úrovní. Cílem testu bylo zjistit, zda analyzované AOS byly podle traderem
stanovených kritérií robustní a který je z nich nejlepší. Kritéria a jejich ohodnocení pro test
robustnosti jsou individuální. Každý trader má jinou hranici, kdy je již ochoten riskovat peníze
obchodováním.
V rámci experimentu jsou použity aspirační úrovně vycházející z nastavení autorem. Volba
kritérií a jejich hladin je obecně individuální. Vyjadřují traderův postoj k riziku. Experimentální
aspirační úrovně jsou následující:
•
počet obchodů - v backtestu >= 4000 a v paper tradingu >= 500;
•
drawdown – v paper tradingu maximálně 15 %;
•
zisk průměrného obchodu – v paper tradingu >= 150 $
•
profit faktor – v paper tradingu >= 1,5;
•
profit – v paper tradingu >= 72 000 $.
V Tabulce č. 2 je znázorněn výsledek testu robustnosti. Světle šedé zvýraznění buňky označuje
splnění aspirační úrovně dané varianty podle kritéria a tmavě šedé zvýraznění buňky označuje
opak. Testem robustnosti prošla pouze 1 varianta. Jedná se o 7. AOS budovaný ve výchozí fázi
na základě náhodného nastavení. Tento AOS je možné považovat za kompromisní variantu.
Ostatní varianty nejčastěji nesplňují aspirační úroveň u kritérií drawdown a zisk z průměrného
obchodu.
Tabulka č. 2: Testování robustnosti AOS
OS
AOS 1 - výchozí nastavení – nižší
náhodnost
AOS 2 - redukované nastavení –
nižší náhodnost – konzervativní
AOS 3 - redukované nastavení –
nižší náhodnost – agresivní
AOS 4 - výchozí nastavení – vyšší
náhodnost
AOS 5 - redukované nastavení –
vyšší náhodnost – konzervativní
AOS 6 - redukované nastavení –
vyšší náhodnost – agresivní
AOS 7 - výchozí nastavení –
náhodné
AOS 8 - redukované nastavení –
náhodné – konzervativní
AOS 9 - redukované nastavení –
náhodné – agresivní
Počet
obchodů
backtest
Počet
obchodů
paper
trading
Zisk z
Drawdown
průměrného
(%)
obchodu ($)
Profit
faktor
Profit
($)
4 542
424
-45,41
138
1,68
56 524
6 180
473
-15,75
149
1,78
68 205
6 180
464
-31,00
138
1,68
61 746
3 781
435
-27,49
134
1,48
56 315
4 192
693
-24,20
114
1,54
75 310
4 210
455
-19,57
146
1,56
63 939
4 000
545
-13,12
189
2,08
100 215
6 180
751
-15,34
95
1,58
67 427
3 951
545
-14,53
194
2,15
102 810
VÝSLEDKY NAVRŽENÝCH AOS
Na základě výsledků testu robustnosti je AOS 7 nejlepším. V Tabulce č. 3 je znázorněn přehled
obchodů v paper tradingovém období. Pro každý ukazatel je uvedena hodnota za všechny
obchody long a short. Long představuje obchody spekulované nákupem na růst trhu. Short
obchody reprezentují spekulaci prodejem na pokles trhu.
Celkový počet obchodů byl 545, z nichž bylo otevřeno na spekulaci růstu trhu 244 a na
spekulaci poklesu trhu 301. Celkový počet ziskových obchodů byl 261, z nichž bylo 124 na
stranu long a 137 na stranu short. Celkový počet ztrátových obchodů byl 283, z nichž bylo na
stranu long 120 a na stranu short 163. Pravděpodobnost, že bude obchod ziskový, byla
47,89 %. Na stranu long měl OS vyšší pravděpodobnost ziskového obchodu ve výši 50,82 %
oproti 45,51 % na stranu short.
Průměrný obchod byl v zisku 188,88 $. Strana long měla průměrný zisk 196,64 $ a strana short
182,59 $. Hodnota průměrného ziskového obchodu byla 758,55 $. Na stranu long měl AOS
nižší průměrný ziskový obchod ve výši 717,33 $ oproti 795,85 $ na stranu short. Průměrná
výše ztrátového obchodu byla -335,83 $. Na stranu long byla průměrná výše ztráty -341,42 $
a strana short -331,72 $. Poměr mezi ziskovým obchodem a ztrátovým obchodem byl z
celkového pohledu 2,26. Na stranu long je tento poměr 2,1 a na stranu short je 2,4.
Tabulka č. 3: Přehled obchodů AOS 7
Ukazatel
Celkový počet obchodů
Počet vítězných obchodů
Počet ztrátových obchodů
Profitabilita (%)
Průměrný obchod
Průměrný vítězný obchod
Průměrný ztrátový obchod
Průměrné vítězné / průměrné ztrátové ratio
Všechny
545
261
283
47,89
188,88
758,55
-335,83
2,26
Long obchody Short obchody
244
301
124
137
120
163
50,82
45,51
196,64
182,59
717,33
795,85
-341,42
-331,72
2,10
2,40
V Tabulce č. 4 jsou uvedeny vybrané výsledky AOS 7 z paper tradingu. Tato tabulka analogicky
obsahuje sloupce za všechny obchody long a short. AOS 7 za dvouleté obchodování skončil v
zisku 102 940,20 $. Zhodnocení účtu bylo na dvouletém paper tradingovém období 1 029 %.
Podíl na celkovém zisku měly obchody na stranu long ve výši 47 979,36 $, což představuje 47
% celkového čistého zisku. AOS 7 byl první systém, který měl větší podíl čistého zisku z short
obchodů a to ve výši 54 960,84 $, což představuje 53 % celkového čistého zisku. Obchody na
stranu long měly na zisk nižší podíl než short obchody. Celková suma všech ziskových obchodů
byla 197 981,19 $ a ztrátových -95 040,99 $. Profit faktor celého AOS byl 2,08. Na stranu long
byl 2,17 a na stranu short 2,02. Maximální výše drawdownu AOS byla ve výši -11 967,12 $ a
nejvyšší procentuální podíl drawdownu vůči equity účtu byl -13,12 %. Podíl mezi ziskem a
maximálním drawdownem byl 8,6.
Tabulka č. 4: Výsledky obchodování AOS 7
Ukazatel
Čistý zisk
Celkový profit
Celková ztráta
Profit faktor
Maximální drawdown portfolia
Maximální drawdown portfolia (%)
Čistý zisk / Maximální drawdown portfolia
Všechny Long obchody Short obchody
102 940,20
47 979,36
54 960,84
197 981,19
88 949,52
109 031,67
- 95 040,99
- 40 970,16
- 54 070,83
2,08
2,17
2,02
- 11 967,12
- 13,12
8,60
Na Obrázku č. 4 je uveden průběh křivky equity, průběh drawdownu a průběh drawdownu
vůči aktuální výši křivky equity za paper tradingové období. Do grafu byly zaneseny pouze ty
obchody, které zvýšily nebo snížily hodnotu křivky equity. V průběhu celého paper tradingu
byly nejvyšší hodnoty procentuálního drawdownu vůči křivce equity na začátku paper
tradinugu. Poté byly vyrovnané s výjimkou závěru paper tradingu, kdy se procentuální
drawdown opět zvýšil.
V prvních 100 obchodech se AOS dostal přes největší procentuální drawdown 13,12 % křivky
equity a zvýšil křivku equity o téměř 50 000 $. Mezi obchody 100-200 AOS zvýšil křivku equity
o téměř 25 000 $. Mezi obchody 200-300 AOS zvýšil křivku equity o téměř 20 000 $. Mezi
obchody 300-400 AOS vytvořil maximum křivky equity na úrovni 112 862,97 $ v 391
nenulovém obchodu. Toto maximum již AOS v závěru paper tradingu nedokázal překonat. V
rámci těchto obchodů AOS zvýšil křivku equity o 10 000 $. Zbylé obchody AOS zakončil v
drawdownu, který snížil křivku equity o 12 000 $.
Obrázek č. 4: Průběh křivky equity a drawdownu pro AOS 7 v paper tradingu
DISKUZE
Deng a kol. (2012) provedli empirický test robustnosti navržených AOS, které optimalizovali
pomocí GA. Optimalizovaná obchodní pravidla byla zaměřena na technické indikátory, které
znázorňují překoupenost a přeprodanost trhu. AOS testovali na historických datech pohybů
kurzu měnových páru EUR/USD a USD/JPY v období roku 2008. Jejich první experimentální
AOS (USD/JPY) měl v testovaném období profitabilitu 60,37 %. Jejich druhý experimentální
AOS (USD/EUR) měl v testovaném období profitabilitu 71,42%. Autoři se již nezabývali
vyjádřením ekonomických vlastností navržených AOS.
V tomto příspěvku byly také navrženy experimentální AOS optimalizované GA. Oproti Deng a
kol. (2012) byly AOS navrženy a testovány na denních historických datech indexu Russell 2000.
Časová řada historických dat vstupujících do návrhu a analyzování AOS je delší (backtest od 1.
3. 1995 do 28. 2. 2011 a paper trading od 1. 3. 2011 do 28. 2. 2013). Profitabilita
experimentálních AOS se v backtestu pohybovala od 43,69 % do 62,54 %. Ukazatel profitabilita
může být zavádějícím kritériem pro posuzování výkonnosti AOS, protože AOS s vysokou
hodnotou profitability nemusí dosahovat vyšší ziskovosti než AOS s nízkou profitabilitou.
Důvodem je nastavení money managementu.
Oproti Deng a kol. (2012) tento příspěvek vyjadřuje nejen profitabilitu AOS, ale i další důležité
ekonomické ukazatele experimentálních AOS v paper tradingovém období. Základními
ukazateli jsou: profit faktor, průběh křivky equity, drawdown, procentuální drawdown vůči
equity, čistý zisk, celkový profit, celkovou ztrátu aj. Dosažené výsledky v tomto příspěvku mají
významnější vypovídající schopnost ekonomické interpretace AOS pro obchodování v praxi.
ZÁVĚR
Z navrhnutých devíti AOS byl paradoxně nejlepší AOS 7, neboť nastavení vstupních parametrů
GA bylo nastaveno náhodně. Příčinou kladného výsledku může být neotřelé nastavení, které
by většina traderů nezvolila. V dvouletém paper tradingovém období AOS 7 zhodnotil
obchodní účet o 1 029 % při maximálním drawdownu 13,12 %. Ačkoliv AOS 7 je nejlepší
z navrhnutých AOS, tak v průběhu paper tradingu růst křivky equity postupně zpomaluje.
Experiment dokazuje, že lze navrhnout ziskový AOS optimalizovaný genetickými algoritmy.
Experiment nebere v potaz životní cyklus těchto modelů. Jak uvádí Prado (2008), existují dva
směry řízení životního cyklu AOS. První směr je vývoj obecně funkčního systému a druhý směr
je průběžná aktualizace AOS.
Předmětem dalšího výzkumu bude návrh způsobu jak optimálně řídit vyřazování vysloužilých
AOS a nahrazování novými AOS. Možnými směry návrhu řízení mohou být: nevyřazovat AOS,
zařazovat nové AOS na základě pevně definované periody nebo zařazovat nové AOS v
okamžiku, kdy stávající AOS nesplní test robustnosti.
LITERATURA
Le Bon, G. (1994): Psychologie davu. Praha, KRA; ISBN 80-901-5278-3.
Deboeck G. (1994): Trading on the edge: neural, genetic, and fuzzy systems for chaotic
financial markets. New York, Wiley; ISBN 04-713-1100-6.
DENG, Shangkun, Yizhou SUN a Akito SAKURAI. Robustness Test of Genetic Algorithm on
Generating Rules for Currency Trading. 2012, Winter.
Douglas M. (2009): Disciplinovaný trader. Tetčice, IMPOSSIBLE; ISBN 978-80-254-6158-7.
Durenard E. A. (2013): Professional Automated Trading: Theory and Practice. New Jersey,
Wiley; ISBN 978-111-8129-852.
Google Finance. Russell 2000: INDEXRUSSELL:RUT historical prices [online]. 2014 [cit. 201401-26]. Dostupné z: https://www.google.com/finance?q=rut&ei=QjXlUviNGJKkwAOTtwE.
Holland, J. H. (1992): Adaptation in Natural and Artificial Systems: An Introductory Analysis
with Applications to Biology, Control and Artificial Intelligence. Cambridge, The MIT Press;
ISBN 9780262581110.
Hynek J. (2008): Genetické algoritmy a genetické programování. Praha, Grada; ISBN 978-80247-2695-3.
Jankovsky J. A. (2007): Trading Rules that Work: The 28 Essential Lessons Every Trader Must
Master. New Jersey, Wiley; ISBN 13 978-0-471-79216-1.
Koza J. R. (1992): Genetic programming: on the programming of computers by means of
natural selection. Cambridge, The MIT Press.
Koza J. R. (1994): Genetic programming II: Automatic discovery of reusable programs.
Cambridge, The MIT Press.
Koza J. R., Bennett F. H., Andre D., Keane M. A. (1999): Genetic Programming III: Darwinian
Invention & Problem Solving. San Francisco, Morgan Kaufmann Publishers Inc.
Miller J. F. (1999): An empirical study of the efficiency of learning boolean functions using a
Cartesian Genetic Programming approach. In Proceedings of the 1999 Genetic and
Evolutionary computation Conference (GECCO 1999), Orlando, Florida, USA, 14-17, p. 1135–
1142.
Mitchel M. (2002): An Introduction to Genetic Algorithms. Cambridge, MIT Press; ISBN 02-6263185-7.
Mitsuo G. (1997): Genetic Algorithms and Engineering Design. New York, Wiley; ISBN 9780471127413.
Plummer T. (2008): Prognóza finančních trhů: psychologie úspěšného investování. Brno,
Computer Press; ISBN 978-80-251-1592-3.
Prado R. (2008): The Evaluation and Optimization of Trading Strategies. New Jersey, Wiley;
ISBN 978-0-470-12801-5.
Smejkal V. (2010): Řízení rizik ve firmách a jiných organizacích. Praha, Grada; ISBN 978-80-2473051-6.
Taleb N. (2011): Černá labuť: následky vysoce nepravděpodobných událostí. Praha, Paseka;
ISBN 978-80-7432-128-3.
User's
Guide.
(2013).
Adaptrade
Builder.
Available
at
http://www.adaptrade.com/Builder/AdaptradeBuilderUG.pdf.
Wilber K. (2000): A brief history of everything. New York, Random House; ISBN 15-706-27401.