V závěru předchozího dílu jsme si ukázali, že po úpravě kódu se v testeru objevila možnost pracovat s parametry strategie.
V tomto okně můžeme nastavit, v jakém rozsahu chceme dané parametry testovat. Ve sloupci „Hodnota“ je zadána výchozí hodnota pro testování. Ve sloupcích „Začátek“ a „Konec“ specifikujeme samotný rozsah. Pokud tak chceme například zjistit, jaké by bylo historicky nejvýnosnější nastavení procentuální velikosti stop lossu pro naši strategii, zde zvolíme testované rozmezí, tedy např. 1 – 7 %. Neopomeňte, že pracujeme s procenty v desetinném vyjádření, hodnoty tak musí být ve tvaru 0.01 a 0.07. Ve sloupci „Krok“ určíme, jestli mají být testovány všechny hodnoty ve specifikovaném rozmezí. Pokud nás tak například zajímá nejlepší nastavení periody klouzavého průměru v rozmezí 50 – 150, nebylo by příliš praktické nechat otestovat každou jednu variantu, blízké výsledky by se příliš nelišily a test by mohl trvat zbytečně dlouho. V takovém případě dává větší smysl zvolit například krok 10 a otestováno bude pouze 11 kombinací (50, 60, 70,..., 150) namísto 101 kombinací (50, 51, 52,..., 150). Dále je také nutné všechny parametry, které chceme do srovnání zahrnout, označit zatržítkem před jejich názvem.
Zkusme si tak připravit nastavení parametrů pro optimalizaci, kdy srovnáme procentuální výši stop lossu a take profitu v rozmezí 1 – 7 % s krokem po procentu, objem v rozmezí 1 – 3 lotu s krokem 1 lot a periodu klouzavého průměru v rozmezí 50 – 150 s krokem 10. Naše nastavení bude vypadat následovně:
Nastavení parametrů potvrdíme a dále navolíme také nastavení samotného backtestu. Pokud chceme, aby došlo k porovnání zvolených parametrů, je potřeba zatrhnout políčko „Optimalizace“ na pravé straně okna.
Nyní je test připraven ke spuštění. Po jeho dokončení se ve spodní části okna objeví nové záložky. Důležitá je především první z nich „Výsledek optimalizace“, která obsahuje seznam jednotlivých kombinací parametrů a jejich historických výsledků.
Přehled si lze seřadit podle preferovaného parametru. Pokud výsledky seřadím dle absolutního zisku, jako nejlepší varianta pro testovanou periodu se jeví strategie s parametry:
stop loss: 1 %
take profit: 2 %
objem: 3 loty
perioda MA: 150
Pokud se chci na dané nastavení podívat podrobněji, stačí na řádek kliknout pravým tlačítkem myši, zvolit možnost „Nastavit parametry“ a následně spustit test. Výkon optimalizované strategie je opravdu o poznání lepší, než výsledky s původním nastavením.
Nutno podotknout, že pouze výběr historicky nejlepšího nastavení neznamená, že podobné výsledky bude strategie generovat i nadále. Jedná se pouze o optimalizovaný výsledek na historických datech, který může pomoci při dalším rozvoji strategie. Před reálným spuštěním AOS je nezbytné otestovat jeho robustnost, zdali funguje i na dalších trzích a jiných časových periodách. Pokročilejší metodou je pak tzv. Walk-forward testování.
Čtěte dále:
Tvorba vlastního AOS (1) – Úvod do problematiky a smysl využití obchodního robota
Tvorba vlastního AOS (2) – Seznámení s MetaEditorem
Tvorba vlastního AOS (3) – Základy programovacího jazyka MQL4
Tvorba vlastního AOS (4) – Struktura programu
Tvorba vlastního AOS (5) – Deklarace a výpočet proměnných
Tvorba vlastního AOS (6) – Nákupní podmínky a obchodní funkce
Tvorba vlastního AOS (7) – Ochrana proti opakovaným příkazům
Tvorba vlastního AOS (8) – Seznámení s testerem strategií
Tvorba vlastního AOS (9) – Příprava kódu pro testování a optimalizaci
V průběhu seriálu jsme se seznámili se základy programovacího jazyka MQL4, ukázali si jak naprogramovat jednoduchou obchodní myšlenku a vytvořit tak AOS a také jakým způsobem lze následně strategii testovat a dále rozvíjet. Všechny poskytnuté informace slouží pouze jako ukázka toho, co je možné v prostředí platformy MetaTrader 4 dělat. Ty, kteří mají zájem o hlubší porozumění vývoje AOS, čeká ještě mnoho práce a stovky hodin samostudia. Kompletní dokumentace k jazyku MQL4 je dostupná online na webu komunity a je už na každém, kolik úsilí při studiu vynaloží. Základem úspěchu je jasně stanovená obchodní myšlenka a především odhodlání ji převést do kódu a poctivě otestovat a vyladit.