Trochu k optimalizaci
Automatické / mechanické obchodní systémy a problematika optimalizace
Chtěl bych říct také par slov k optimizaci obchodních strategií různých AOS v MT4, ale stejně tak i v kvalitnějších technologických platformách. Často se setkáváme s výklady typu : "Na backtestu to vypadalo dobře, ale v reálu to bohužel vymazalo účet" apod. Malinká chyba se často vkrádá do samotného pochopení pojmu "opitmizace" a jeho podstaty.
Mým osobně oblíbeným, ale také skutečně efektivním ilustrativním příkladem je házení mincí. Obchod může přinést zisk nebo ztrátu. Mince může padnout na pannu nebo orla. Předpokladejeme, že investor testuje obchodní strategii která v reálu dává 50% případů zisku a 50% případů ztrát. Investor to neví, právě proto provádí testing. Předpokládejme, že investor považuje za dostačující výsledky 50 obchodů pro hodnocení efektivity OS. Jaká je pravděpodobnost toho, že výpočet podílu ziskových obchodů v těchto 50 pokusech zobrazí ve finále hodnotu > 60%?* Za předpokladu, že výsledky obchodů jsou nezávislé, teorie pravděpodobnosti umí odpovědět, že príbližně 10%. To znamená, že v jednom z 10 případů investor uzná reálně nefungující strategii za docela efektivní. Situace se prohlubuje dál tím, že většinou výsledky obchodů v obecném pojetí nejsou nezávislé.
Kdysi populární na akciovém trhu strategie "kup a drž" se zakládá na teorii, že investiční trh má celkovou růstovou tendenci. Z dané teorie vyplývá, že stačí si nakoupit některý balík akcií a držet ho. Čím dále držíme, tim více roste jeho cena. Ale historie zná příklady finančních krizí, zpochybňujících tuto teorii nebo minimálně eliminujících její užitečnost a aplikovatelnost z důvodu neúměrně vysokých rizik.
Iluze, ze které tato teorie vznikla se také může projevovat lokálně na relativně malých časových úsecích. Například zobecněný index skupiny měnových párů může ukazovat slabý trend na poměrně dlouhém časovém úseku, který se může snadno z důvodu své slabosti proměnit na opačný trend v budoucnu. Ale i slabý, objevující se na testovacím období trend může ovlivnit výsledky testingu. Ve finále obchodní strategie, která je ochotná otevírat neproporcionální počet pozic různých typů ( dlouhých a krátkých ) nebo založena na lineárních trendech může ukazovat na testovacím období přehnané hodnocení efektivity. Například primitivní strategie založena na zjevně neefektivním algoritmu "kup - drž den - prodej" ukáže celkem vysoké ocenění efektivity, ale přinese ztráty v budoucnu.
Optimizace a množstevní testování strategií.
Proč je potřeba testovat obchodní strategie ? Nestačí nastavit parametry strategie tak, aby demonstrovala co nejlepší výsledky na historii trhu ? Jedná se o to, že prakticky jakoukoliv omezenou výpisku, seznam nerozporných příkladů chování některého objektu, konkrétně finančního trhu, je možno popsat, nekonečně dlouho komplikovat a zpřesňovat, dolaďovat model a jeho parametry. Ale takový model nebude schopen stejně dobře popisovat nové příklady chování trhu. Abychom zjistili nakolik efektivně funguje model potřebujeme dodatečné seznamy příkladů, s kterými jsme nepočítali při nastavení parametrů modelu. V případě obchodních strategií víme, že se rozlišují optimizace a testovací období. Na optimizačních údajích se realizuje nastavení parametrů, na testovacích údajích - hodnocení efektivity jednotlivých strategií.
Co děla vývojář obchodních strategií když testing dopadl špatně a neukázal přijatelné výsledky? Opakuje cyklus vývoje. Vymýšlí nový algoritmus obchodní strategie, optimizuje parametry a hodnotí efektivitu na testovacím období. Co se děje když cyklus se opakuje mnohokrát a testovací období se nemění nebo mění se nepatrně? Nastává skutečnost které říkáme problém množstevního testování ( multitest problem ). Testovací období přestává plnit svou roli a fakticky se stává součásti optimizačního procesu. Snadno se to dá vysvětlit na stejném příkladu házení mincí. Vyjasnili jsme, že v sérii házení existuje pravděpodobnost dostat jakoukoliv kombinaci podílu pann a orlů. Při vyplnění opakovacích sérií házení pravděpodobnost náhodně dostat aspoň jednu sérii, kde pann je více, než 50%, 70%, 99% a jakékoliv jiné prahové hodnoty se blíží jedničce ( 100%). Ve vztahu k obchodním strategiím to znamená, že pokud jste udělaly N ( N>1 ) cyklů "volba algoritmu - optimizace parametrů - testování" při neměnných testovacích údajích a zvolili strategii s nejlepším jak se vám zdá hodnocením efektivity pak hodnocení efektivity je předem statisticky přehnáno. Odchylka oceňování efektivity zvolené strategie bude dál růst s růstem N.
V téhle souvislosti existuje zajímavý postřeh, tykající se analýzy efektních a působivých grafů práce různých obchodních strategií a traderu kterých je hodně všude na internetu. Společně s růstem požadavků k délce trvání období pozorování pravděpodobnost nalezení efektního grafu drasticky klesá. To můžeme vysvětlit pořad stejným příkladem. V krátkých sériích házení jsou možné výrazné odchylky od poměru 50% na 50%. Ale s prodloužením délky testování hodnocení poměru se velmi rychle blíží ke skutečné hodnotě, dle základního binomického rozdělení. Ze stejného důvodu problému množstevního testování vítěze různých soutěží prakticky nikdy nedemonstrují stejné výsledky v reálném obchodování. Přece číslo N v soutěži se rovná počtu účastníků. Účastníků je hodně a v podmínkách omezené doby trvání soutěže ( 3-6 měsíců, někdy I miň ) dosažené výsledky nemají velký statistický význam.
Proto je potřeba brát výsledky backtestu s velkou rezervou a více se zaměřovat na samotný model AOS nebo zavádět dodatečné algoritmy a jiné optimizační nástroje. Více se zaměřovat na demo-testing a jeho reálné výsledky.
*-hodnoty pravděpodobnosti se počítají dle binomického rozdělení
Zdraví