Jak testovat a optimalizovat AOS
Jak testovat automatické obchodní systémy
Tento článek vám ukáže, jak optimalizovat a testovat automatické obchodní systémy, neboli AOS, v prostředí terminálu MT4. V diskuzích se většina uživatelů shodne na tom, že ideálním výchozím stavem pro testování jsou ticková data. Tedy nejpodrobnější data, která nám je broker schopen poskytnout, s čímž nelze než souhlasit. Zároveň je nutné využít data od brokera, u kterého hodláme obchodovat. Např. pokud plánujeme obchodovat u RoboMarkets či ForexMart, nedávalo by smysl obchodní data stahovat od brokera Instaforex. Takováto data by zkreslila výsledky testování, a nebylo by jasné proč se automatický obchodní systém v některých situacích zachoval tak, jak se zachoval.
V datech jednotlivých brokerů totiž mohou být rozdíly z důvodu používání rozličných cenových filtrů. Tyto filtry mohou vymazávat stíny svíček. Též pokud používáte ticková data od API brokera, potom počet ticků za vteřinu bude jiný, často až stonásobně vyšší než v případě použití MT4 brokera. Testování tedy musí probíhat v prostředí, které vám poskytne pro obchodování váš broker.
Pokud vám broker poskytne ticková data, můžete je nahrát do terminálu a použít je. Pokud ne, je vhodné stáhnout M1 data. S těmito daty by mělo být testování nejpřesnější, a zároveň zcela jistě přesnější než testování s tickovými daty od jiného brokera.
Mám forex robota, a co dál?
Ve chvíli, kdy jste si na internetu stáhli robota, nebo ho zakoupili, je vhodný čas začít testovat. Jaký bude první krok?
Nejdříve musíme robota nastavit. Pokud nemáte nastavovací instalační soubor, musíte provést instalaci manuálně. Otevřete platformu MT4 a klikněte na „Soubor“ – „Otevřít složku dat“.
Klikněte na „MQL4“. Uvidíte složky s názvem „Experts“, „Libraries“ a „Indicators“. AOS – automatický obchodní systém se kopíruje do složky „Experts“.
EX4 nebo MQL4?
Přípony automatických obchodních systémů mají dvě různé přípony. Obvykle se jedná o .ex4 nebo .MQL4 soubor. Pokud máte MQL4 soubor, jedná se o zdrojový kód, který můžete libovolně měnit. Ex4 soubor je naproti tomu kompilovaný, a jako takový nemůže být změněn – stačí jej zkopírovat do složky „Experts“.
Pokud váš AOS obsahuje knihovny (mají příponu .dll nebo .ex4), také je třeba je zkopírovat do složky MQL – Libraries.
Stejným způsobem, pokud váš AOS obsahuje vlastní indikátory, je třeba je zkopírovat do složky “Indicators”. Opět platí, že soubor ex4 je kompilovaný, zatímco soubor MQL4 je soubor zdrojového kódu a může být proto volně upravován.
Načítáme historická data
Jakmile máte vše zkopírováno, restartujte platformu MT4. Po restartu již uvidíte v okně Navigator mezi ostatními roboty (v liště Expert Advisors) i váš právě instalovaný AOS. Pro demo účely použijeme robota Parabolic (Sar Simple), abychom si ukázali, jak lze jednotlivé parametry upravovat, testovat a optimalizovat.
Když nyní máme AOS v platformě nahrán, potřebuje nahrát obchodní data. Někteří brokeři mají data nahraná na svých serverech, někteří povolí jen stažení obchodních dat přes MetaQuotes webovou stránku. V tomto případě postupujte dle následujícího návodu: Řekněme, že chcete testovat na měnovém páru GBPUSD. Otevřete si graf USD M1, vypněte automatický posun grafu a tiskněte klávesu „page up“ nebo jeďte nahoru rolovátkem myši.
Až dojedete na konec, a graf se nebude dále pohybovat, přejděte na graf M5 a zopakujte stejný postup jako pro M1. Jelikož budeme používat i data z M15, M30 a H1 zopakujeme stejný postup.
Tento způsob je ideální pro testování a optimalizování na datech, která se nahromadila ve vašem obchodním terminálu. V datech mohou být gapy (skokové mezery), ale přesto budou data poměrně přesná, pokud nepoužíváte scalper. Pokud testujete scalper, který pracuje s nízkými hodnotami výběru zisků (take-profit), stáhněte data z webu brokera a nahrajte je do terminálu pro další použití.
Testované období AOS
Chcete-li optimalizovat AOS, musíte nejprve určit optimalizační období. Pro AOS, které jsou zaměřeny krátkodobě (např. scalpery nebo vysokofrekvenční obchodní systémy), může být zvolené období kratší. Důvodem je to, že pro scalper se trh mění rychleji, a jeho parametry je proto třeba častěji upravovat. Některé AOS nevyžadují žádnou optimalizaci: jsou navrženy tak, aby fungovaly delší dobu a není třeba pro ně hledat optimální parametry.
To je i případ Parabolic AOS, který není velmi citlivý na dlouhodobé změny trendů a změny v chování měnových párů. V důsledku to znamená, že výsledky testů, které jsou založeny na historických datech, představují velmi přesný obraz toho, jak bude AOS v budoucnu obchodovat; jinými slovy, výsledky testů spojené s tímto AOS budou velmi pravděpodobně zrcadlit výsledky v reálném obchodování.
Chcete-li optimalizovat AOS, musíte kliknout na “Expert Properties” a vybrat ty parametry, které chcete optimalizovat. V našem příkladu, jsou některé optimalizované parametry již odškrtnuté. Zanechali jsme parametry take-profit a trailing stop, který nyní použijeme. Musíme je zaškrtnout. Pak je třeba zadat hodnoty pro pole “Start”, “Step” a “Stop”. Samozřejmě musíte pochopit, co tyto parametry představují, a rozsahy, jichž mohou jejich hodnoty nabývat. Například pokud jde o velikost parametru TakeProfit, můžete zkusit nastavit Start na 10 bodů a Stop na hodnotu 200, zatímco parametr kroku lze nastavit na hodnotu “10”. Velikost parametru TrailingStop můžete nastavit na hodnotu Start minimálně 10 bodů a Stop 200 bodů a krok na 10.
Co tyto parametry znamenají? Metatrader nejdříve otestuje variantu s hodnotou Take profit =10. Protože je zadaný Step = 10, v druhé variantě otestuje Take profit =20 atd. až dojde k hodnotě Take profit = 200. Stejně si bude počítat s hodnotou TrailingStop. Pokud chceme optimalizaci urychlit, můžeme zaškrtnout vždy jen jeden parametr k optimalizaci. Nejdříve tedy najdeme vhodnou hodnotu TakeProfit, potom budeme hledat TrailingStop. Dle mého názoru je ideální hledat rovnou optimální kombinaci více parametrů. I když test trvá déle (u AOS Bratislava i řádově týden), vyplatí si počkat na Metatraderem vypočítané ideální hodnoty.
Klikněte na „Start“ a optimalizační proces začne. Můžete třídit výsledky po jednotlivých sloupcích a najít ideální Stoploss a Take profit. Jakmile optimalizace proběhne, uvidíte její výsledy. Pokud bychom řadili jen podle dosaženého zisku, budou i max. dosažená ztráta vysoká. Hledáme tedy obvykle takový výsledek, kde by byly hledané hodnoty v rovnováze s přijatelným výsledkem.
Dvojklikem vyberte výsledek, jehož hodnota se automaticky objeví v okně pro klasický backtest. Pokud teď chceme otestovat jakoukoli jednotlivou variantu, a podívat se na detaily včetně grafu, vybereme z optimalizačního seznamu jednu variantu a dvojklikem jí potvrdíme. Následní tlačítkem Start spustíme test jen jedné varianty.
Jakmile je testování hotové, můžeme si uložit po kliknutím pravého tlačítka myši na výběr „Uložit report“ pro budoucí potřebu, stejně jako si optimalizované parametry uložit do nastavovacího .set souboru, který použijeme v živém obchodování.
Jak optimalizovat a nepřeoptimalizovat
Při hledání optimálního nastavení se můžeme setkat s výrazem „přeoptimalizování“, ke kterému dojdeme obvykle tak, že se snažíme na historická data přesně napasovat testovaného robota. Robot by ale měl být univerzálněji použitelný, a historický graf se zcela jistě nebude opakovat v budoucnu.
Jak tedy dosáhnout relativně stabilních výsledků? Použitím dat, které nebyla v původním testovacím vzorku. Pokud jsme např. testovali robota od dubna do září a našli jsme pro toto období ideální hodnoty, můžeme období rozšířit zpět o polovinu testovacího období. Tak zjistíme, zda by robot obstál i v jiné časové periodě. Pokud jsou výsledky i zde příznivé, nic nám nebrání automatický obchodní systém vyzkoušet na živých datech buď na demo účtu či na malém live účtu.