Jak poznat přeoptimalizovanou strategii
Osobní finance a peníze a burza a trading vyžadují při tvorbě obchodních systémů také kontrolu toho, zda strategie není příliš přizpůsobená minulým datům. Přeoptimalizovaná strategie neboli overfitted strategie může v backtestu vypadat mimořádně dobře, ale na nových datech výrazně ztrácet výkonnost. K problému dochází například tehdy, když trader postupně mění desítky parametrů, filtrů a podmínek tak dlouho, dokud historický graf neposkytne požadovaný výsledek. Strategie pak nemusí zachycovat skutečnou tržní výhodu, ale náhodné vlastnosti konkrétního období. Varovným signálem je například systém, který funguje skvěle pouze při přesně nastavené hodnotě indikátoru, ale po její malé změně se výsledky dramaticky zhorší. Dalším signálem je velký rozdíl mezi výsledky backtestu a testu na nových datech. Přeoptimalizování proto nelze posuzovat jen podle celkového zisku. Důležitá je stabilita parametrů, výkon mimo vývojový vzorek, chování v různých tržních podmínkách, počet obchodů, drawdown a citlivost výsledků na změny vstupních pravidel.
Co znamená přeoptimalizovaná obchodní strategie
Přeoptimalizovaná strategie je systém, jehož pravidla byla příliš přizpůsobena historickým datům. Cílem optimalizace se původně stává nalezení vhodných parametrů, ale při nadměrném přizpůsobování začne strategie kopírovat i náhodné odchylky minulosti.
Typickým příkladem může být strategie založená na klouzavém průměru, u které trader testuje desítky různých period. Pokud následně vybere pouze nastavení, které mělo nejlepší výsledek v konkrétním historickém období, může jít o výsledek náhody.
Přeoptimalizovaný systém nemusí být nutně složitý. Overfitting může vzniknout i u relativně jednoduché strategie, pokud byla pravidla vybrána na základě příliš úzkého historického vzorku.
Hlavním problémem je ztráta schopnosti zobecnit pravidla na data, která strategie při svém vzniku neznala.
Největším varováním je propad na nových datech
Nejlepší způsob, jak odhalit přeoptimalizování, je porovnat výsledky na datech použitých pro tvorbu strategie s výsledky na datech, která při vývoji nebyla použita.
Pokud například strategie vydělá při vývoji 80 % za několik let, ale na odděleném vzorku dat téměř nic nevydělá nebo začne výrazně prodělávat, je nutné zpozornět.
Rozdíl nemusí automaticky znamenat overfitting. Může jít také o změnu tržního prostředí, vyšší náklady nebo náhodnou odchylku. Pokud je však rozdíl velmi výrazný a opakuje se, pravděpodobnost přeoptimalizování roste.
Proto je důležité oddělit vývojovou a validační část dat ještě před dokončením optimalizace.
Citlivost na malé změny parametrů
Robustní strategie by neměla fungovat pouze při jediné magické hodnotě parametru. Pokud malá změna nastavení způsobí dramatický propad výsledků, může to signalizovat přeoptimalizování.
Například pokud strategie s periodou indikátoru 20 vytvoří výborný výsledek, ale při periodě 19 nebo 21 se výkonnost téměř úplně rozpadne, je vhodné výsledek dále prověřit.
Silnější systém často vykazuje určitou stabilní oblast parametrů. Například několik podobných hodnot může poskytovat relativně srovnatelné výsledky místo jednoho extrémně výkonného bodu.
Tomuto principu se někdy říká stabilita parametrů. Čím širší je oblast použitelných nastavení, tím menší je riziko, že strategie závisí na náhodném historickém specifiku.
Příliš mnoho pravidel může skrývat overfitting
Každý další filtr může historický backtest zlepšit, ale současně zvyšuje riziko, že strategie začne popisovat minulost místo skutečného obchodního principu.
Trader může například postupně přidat filtr trendu, volatilitu, čas obchodování, hodnotu RSI, MACD, konkrétní den týdne a několik dalších podmínek. Pokud každý filtr vznikl na základě historických výsledků, konečný systém může být velmi křehký.
Velké množství pravidel také snižuje počet obchodních příležitostí. Strategie pak může mít nádherný historický výsledek založený například na několika desítkách velmi specifických situací.
Jednodušší systém s menším počtem pravidel může být robustnější, pokud jeho logika vychází z opakovatelného tržního chování.
Problematiku přílišného množství indikátorů lze dále rozšířit v článku proč většina traderů používá příliš mnoho indikátorů.
Pozor na příliš dokonalé výsledky backtestu
Mimořádně hladká růstová křivka bez významnějších ztrát může být důvodem k důkladnější kontrole. Reálné obchodní strategie obvykle procházejí obdobími zisků i ztrát.
Pokud strategie během mnoha let vykazuje téměř konstantní výnos a minimální drawdown, je vhodné ověřit, zda nejsou výsledky způsobeny přílišným přizpůsobením historickým datům nebo nereálnými předpoklady.
Například systém s téměř 90% úspěšností nemusí být automaticky lepší než systém se 45% úspěšností. Rozhodující je vztah mezi velikostí zisků a ztrát, náklady, drawdownem a způsobem, jakým byly výsledky získány.
Neobvykle dokonalý backtest proto není důvodem k okamžitému použití strategie, ale k podrobnějšímu ověření.
Malý počet obchodů zkresluje obraz
Strategie může vypadat výborně, pokud má jen několik obchodů. Takový výsledek však nemusí být statisticky významný.
Pokud například systém během pěti let vytvoří pouze 18 obchodů a 15 z nich skončí ziskem, nelze z toho automaticky usuzovat, že má stabilní výhodu. Výsledek může být silně ovlivněn několika konkrétními situacemi.
Při optimalizaci navíc existuje riziko, že trader vyzkouší velké množství variant a následně si ponechá tu, která náhodou dosáhla nejlepšího výsledku. Čím více variant je testováno, tím větší význam má nezávislé ověření.
Testujte strategii na jiném období
Jedním z nejdůležitějších testů robustnosti je ověření strategie na období, které nebylo použito při její tvorbě. Takzvaný out-of-sample test umožňuje zjistit, zda pravidla fungují i mimo historický vzorek, na kterém byla optimalizována.
Pokud trader vytvoří strategii na datech z let 2020 až 2024, může následně použít novější období jako nezávislý test, pokud tato data nebyla během vývoje nijak využívána.
Výsledek by nemusel být stejně vysoký jako v původním backtestu. Menší pokles je normální, zatímco úplný rozpad výkonu představuje významný varovný signál.
Po dokončení optimalizace by se validační data neměla opakovaně používat k dalšímu ladění, protože by se z nich znovu stala součást vývojového vzorku.
Vyzkoušejte jiný instrument
Robustní princip by měl mít alespoň určitou logickou přenositelnost na podobné trhy, pokud to charakter strategie umožňuje. Test na jiném instrumentu proto může odhalit, zda systém zachycuje obecnější tržní vlastnost.
Například strategie vytvořená pro jeden hlavní akciový index může být následně prověřena na jiném indexu. Nemusí dosáhnout stejného výnosu, ale výrazně odlišné výsledky mohou upozornit na závislost strategie na konkrétním historickém chování.
Tento test však není vhodný pro každý systém. Strategie postavená na specifické vlastnosti konkrétního trhu nemusí být přenositelná a její selhání na jiném instrumentu samo o sobě neprokazuje overfitting.
Ověřte strategii v různých tržních podmínkách
Přeoptimalizovaná strategie často funguje výborně pouze v jednom konkrétním typu trhu. Proto je důležité sledovat její výsledky během růstu, poklesu, konsolidace, vysoké volatility i klidného období.
Trendová strategie může například vykazovat vynikající výsledky během dlouhého růstového trhu, ale výrazně ztrácet během bočního pohybu. To nemusí znamenat overfitting, pokud bylo omezení strategie známé a očekávané.
Problém nastává, když trader vytvořil systém tak, aby přesně zachytil konkrétní historickou fázi trhu, a následně očekává stejný výkon bez ohledu na změnu prostředí.
Součástí testování by proto mělo být také určení situací, ve kterých strategie nemá být používána.
Porovnejte backtest s forward testem
Forward test představuje praktické ověření strategie na nových datech, která se objevují postupně. Trader při něm nevidí budoucí vývoj a musí dodržovat pravidla podobně jako při skutečném obchodování.
Pokud strategie vykazuje v backtestu vysokou výkonnost, ale během forward testu se její charakteristiky výrazně zhorší, může jít o známku přizpůsobení historickým datům.
Forward test navíc odhalí problémy, které samotný graf nemusí ukázat. Patří mezi ně například rozdíly ve spreadu, skluz, rychlost exekuce nebo neschopnost tradera dodržovat pravidla.
Princip lze podrobněji rozvíjet také pomocí forward testingu strategií.
Kontrolujte realistické náklady a exekuci
Přeoptimalizování může být skryté také v příliš optimistickém modelu obchodních nákladů. Strategie může historicky vydělávat jen proto, že backtest předpokládá ideální vstupy a výstupy bez skutečného spreadu nebo skluzu.
U CFD je důležité zohlednit zejména spread, případné komise, financování přes noc a další náklady konkrétního produktu.
Krátkodobá strategie s malým ziskem na jeden obchod je na náklady citlivější než systém, který drží pozice déle a usiluje o větší cenové pohyby.
Pokud po započtení realistických nákladů strategie výrazně ztratí výkonnost, její původní výsledek nemusí být dostatečně robustní.
Sledujte stabilitu očekávané hodnoty
Očekávaná hodnota by neměla být posuzována pouze jako jedno číslo za celé historické období. Užitečné je rozdělit výsledky na více časových úseků a sledovat, zda strategie vykazuje podobné vlastnosti.
Například strategie může mít celkovou očekávanou hodnotu 300 Kč na obchod, ale pokud první tři roky dosahuje 600 Kč a další dva roky záporné hodnoty, je potřeba zjistit, co způsobilo změnu.
Stabilita neznamená, že každý měsíc musí být ziskový. Důležité je, zda se statistické vlastnosti systému v různých obdobích dramaticky nemění.
Velmi nerovnoměrný výsledek může být způsoben změnou trhu, ale také přílišnou optimalizací na několik konkrétních historických období.
Testujte citlivost na změnu vstupních podmínek
Robustní strategie by měla tolerovat menší odchylky v podmínkách. Pokud například posunutí vstupu o několik bodů nebo mírná změna stop lossu způsobí úplný rozpad výsledků, je vhodné strategii důkladně prověřit.
Trader může testovat například několik blízkých hodnot stop lossu, take profitu nebo periody indikátoru. Cílem není najít nejlepší kombinaci, ale zjistit, zda existuje širší oblast přijatelných výsledků.
Pokud je nejlepší výsledek pouze jediným vrcholem obklopeným výrazně horšími hodnotami, může být strategie méně robustní.
Naopak relativně stabilní výsledky v širším rozsahu parametrů poskytují důvěryhodnější signál, že strategie není založena pouze na jednom náhodném nastavení.
Dejte pozor na optimalizaci podle maximálního zisku
Výběr strategie pouze podle nejvyššího historického výnosu je jednou z cest k overfittingu. Maximální výnos může být dosažen za cenu extrémního drawdownu nebo velké citlivosti na konkrétní parametry.
Strategie s výnosem 100 % a maximálním drawdownem 70 % nemusí být pro tradera použitelnější než systém s výnosem 40 % a drawdownem 15 %.
Proto je vhodné současně hodnotit výnos, drawdown, stabilitu, počet obchodů, očekávanou hodnotu a riziko.
Rozhodujícím kritériem by měla být celková robustnost systému, nikoli jediná rekordní hodnota backtestu.
Nejčastější chyby při hledání přeoptimalizování
Chybou je považovat každý slabší výsledek mimo backtest za důkaz overfittingu. Každá strategie má určitou statistickou variabilitu a krátká série ztrát nemusí znamenat problém.
Stejně tak není správné automaticky vyřadit strategii jen proto, že na jiném instrumentu funguje hůře. Některé systémy jsou přirozeně určeny pro konkrétní trh.
Další chybou je neustále upravovat strategii podle validačních výsledků. Pokud trader po každém slabším období změní pravidla a znovu testuje systém na stejných datech, postupně vytváří další formu overfittingu.
Správný postup vyžaduje předem definovaná pravidla testování a oddělení vývojové, validační a následně co nejvíce nezávislé části ověřování.
Jak snížit riziko přeoptimalizování
Nejúčinnější obranou proti overfittingu je jednoduchá strategie s jasnou logikou, omezeným počtem parametrů a důsledným testováním mimo data použitá k vývoji.
Pomáhá také dostatečně dlouhá historie, více typů tržního prostředí, realistické náklady a testování citlivosti parametrů.
Trader by měl být schopen vysvětlit, proč každé pravidlo ve strategii existuje. Pokud některý filtr nemá logické nebo statisticky obhajitelné zdůvodnění a byl přidán pouze proto, že zlepšil historický výsledek, představuje potenciální zdroj přeoptimalizování.
Praktickým doplňkem je také systematické zaznamenávání výsledků v obchodním deníku, například podle instrumentu, setupu, volatility a typu trhu.
Jak poznat robustní strategii
Robustní strategie nemusí být nejziskovější strategií v backtestu. Její hlavní vlastností je schopnost zachovat rozumné statistické charakteristiky i při změně období, parametrů a tržních podmínek.
Pokud například strategie vykazuje podobnou logiku výsledků při několika blízkých nastaveních indikátoru, na odděleném časovém vzorku a při realistických nákladech, je to příznivější signál než jediný rekordní backtest.
Robustnost však neznamená jistotu budoucího zisku. Trhy se mohou změnit a historická výhoda může postupně oslabit nebo úplně zmizet.
Cílem testování je proto vytvořit dostatečnou důvěru v obchodní proces, nikoli odstranit veškerou nejistotu.
Přeoptimalizovanou strategii odhalí hlavně její nestabilita
Nejspolehlivější způsob, jak poznat přeoptimalizovanou strategii, je nesoustředit se pouze na její nejlepší backtestový výsledek, ale zkoumat, jak stabilně se chová mimo data, na kterých byla vytvořena. Velký rozdíl mezi vývojovým a validačním vzorkem, extrémní citlivost na malé změny parametrů, příliš mnoho pravidel, malý počet obchodů a nereálně dokonalá výsledková křivka patří mezi důležité varovné signály.
Například strategie může mít při periodě indikátoru 20 historický výnos 70 %, ale při periodách 19 a 21 pouze 10 %. Takový výsledek je podezřele závislý na jediném parametru. Pokud navíc strategie na nových datech výrazně ztrácí, důvod k dalšímu prověření je ještě silnější.
Robustnější systém obvykle nevykazuje jeden jediný perfektní parametr, ale určitou oblast nastavení, ve které zůstávají výsledky relativně stabilní. Stejně důležité je, aby strategie nebyla závislá pouze na jednom historickém období nebo jednom konkrétním typu trhu.
Trader by proto měl strategii nejprve otestovat na vývojových datech, následně ji bez dalších úprav prověřit na odděleném vzorku a potom pokračovat forward testem. Do všech relevantních testů je nutné zahrnout realistické spready, komise, financování a případný skluz.
Velkou chybou je reagovat na každý slabší výsledek další optimalizací. Pokud trader neustále upravuje pravidla podle nových dat, může postupně přeoptimalizovat strategii znovu a znovu. Smyslem testování proto není vytvořit dokonale vypadající historickou křivku, ale najít pravidla, která mají rozumnou logiku a vykazují určitou stabilitu i mimo původní vzorek.
Přeoptimalizování nikdy nelze odstranit jedním jediným testem. Jde o problém, který je potřeba posuzovat z více stran prostřednictvím out-of-sample testu, forward testu, analýzy citlivosti parametrů, různých tržních podmínek a realistických nákladů. Čím více nezávislých testů strategie zvládne bez zásadního rozpadu vlastností, tím větší důvod existuje považovat ji za robustnější.








