Genetická optimalizace: jak prohledat milion kombinací
Každá systematická strategie má parametry: délky klouzavých průměrů, prahy vstupů, násobky stop lossů, časové rámce. A u každého parametru je přirozená otázka: co kdyby byl o kousek jinde? Špatná odpověď je zkoušet to ručně a přestat, když čísla vypadají hezky. Dobrá odpověď zní: prozkoumat celý prostor nastavení systematicky — a přesně na to má naše platforma dva nástroje: přesný grid a genetickou optimalizaci.
Přesný grid: každá hodnota s každou
Když parametrům dáte rozsahy (od–do, s krokem), vznikne mřížka kombinací. Grid search ji projede celou: každá variabilní proměnná proti ostatním, každá hodnota s každou. Žádné slepé místo, žádná náhoda — úplná mapa. Díky rychlému event-driven enginu jsou tisíce plnohodnotných backtestů otázka běžného provozu, takže pro menší prostory je grid první volba.
Jenže kombinatorika je neúprosná: čtyři parametry po deseti hodnotách = 104 = 10 000 testů. Šest parametrů po dvanácti hodnotách = skoro 3 miliony. Někde na této cestě přestává být hrubá síla praktická — a přesně tam genetická optimalizace „dozná svého jména".
Genetika: evoluce místo hrubé síly
Genetická optimalizace je evoluční metoda prohledávání prostoru nastavení strategie: místo zkoušení všech kombinací šlechtí populaci kandidátů podle zvolené metriky — generaci za generací, směrem k oblastem, kde strategie funguje.
Genetický algoritmus nezkouší všechno — šlechtí. Začne populací náhodných kandidátů rozesetých po celém prostoru. Každý kandidát („chromozom") je jedno konkrétní nastavení strategie — a každý se ohodnotí plnohodnotným backtestem: se skutečnou simulací exekuce, poplatky i skluzem, žádné zkratky. Z výsledku se spočítá fitness — skóre podle zvolené metriky. A pak přijde evoluce: úspěšní se množí, neúspěšní mizí, potomci kombinují vlastnosti rodičů a občas zmutují. Generaci za generací se populace stahuje k oblastem, kde strategie funguje.
Krajina ale není zadarmo — a záleží, kolik stála. Sledujeme i to, kolik testů a kombinací bylo potřeba, než se optimalizace k dobrým výsledkům dostala. Když z velkého množství pokusů zbyde jen malý cluster nebo hrstka „optimálních" testů, není to optimální řešení — je to varování. A stejně důležité je hodnotit výsledky víc metrikami najednou: hledáme robustní krajinu, ne špičatý horský terén s hlubokými údolími.
Slovníček evoluce
- Chromozom — jedno konkrétní nastavení: kombinace hodnot všech variabilních parametrů.
- Populace — sada kandidátů jedné generace. Každý z nich se testuje samostatným backtestem.
- Generace — jedno kolo cyklu: otestuj → ohodnoť → vyber → zkřiž → zmutuj.
- Fitness — číslo, podle kterého evoluce vybírá. U nás se zvolená metrika převádí na skóre 0–1000, aby se dala porovnávat napříč kandidáty.
- Selekce — výběr rodičů ruletou: čím vyšší fitness, tím větší šance na potomky. I slabší kandidát ale dostane příležitost — to chrání rozmanitost.
- Křížení — dva rodiče si vymění části nastavení a vzniknou potomci, kteří kombinují vlastnosti obou.
- Mutace — náhodná změna hodnoty u potomka. Drobná dávka chaosu, která brání populaci uvíznout v jednom údolí.
- Elitismus — nejlepší jedinci generace přecházejí do další beze změny, imunní vůči křížení i mutaci. Co evoluce jednou našla, už neztratí.
Na co se optimalizuje: fitness metriky
„Nejlepší" vždycky znamená „nejlepší podle něčeho". Metriku fitness si volíte podle toho, co od strategie chcete:
- Čistý zisk (% PnL) — nejpřímější, ale i nejnaivnější cíl,
- PROM — pesimistická návratnost podle Parda: výsledek záměrně podhodnocený o statistické štěstí,
- Sharpe a Sortino — výnos vážený rozkolísaností (Sortino trestá jen tu zápornou),
- Calmar — výnos poměřený maximálním drawdownem,
- kompozitní metriky — kombinace zachyceného pohybu trhu, konzistence a drawdownu.
Poměrové metriky anualizujeme na 365 dní — trhy, které obchodujeme, o víkendech nespí. Co přesně jednotlivé metriky říkají a kdy která lže, rozebíráme v samostatném článku: Metriky: podle čeho se pozná dobrá strategie.
A jak fitness volit? Z našich analýz to plyne jednoznačně: nejrobustnější řešení nedostanete genetizací čistě na ziskovou metriku — vyšlechtíte hazardéry. Ale nejde ani optimalizovat čistě na drawdown: takový algoritmus začne zavrhovat jakékoliv obchodování, které by mohlo k propadu equity byť jen přispět — a vyšlechtí strategii, která raději neobchoduje vůbec. Správná odpověď je kombinace: metriky vážené rizikem a penalizované — typicky PROM či kompozitní skóre.
Instrument, nebo celý vesmír
Optimalizovat lze na jednom trhu — ale i na celém vesmíru instrumentů: koši trhů, které splňují podmínky strategie. Kandidát pak nedostane známku za to, jak sedí bitcoinu, ale za to, jak obstojí napříč košem — což je mnohem přísnější zkouška (o úrovních skládání jsme psali u souběhů). Vesmíry si zaslouží vlastní článek — jak se definují, jak fungují strategie nad nimi postavené a jak se bránit biasu přeživších. Připravujeme ho.
Výsledek: krajina, ne vítěz
Nejcennější na doběhlé optimalizaci není řádek číslo jedna. Je to tvar celé krajiny výsledků: kde se tvoří klastery fungujících nastavení, kde jsou souvislé plošiny, kde strategie vydělává v mnoha sousedních variantách — a kde trčí osamělé špičky, které fungují jen v jediném bodě. Plošina znamená robustnost; špička téměř jistě přeoptimalizaci. Proto se na výsledky díváme přes rozptylové grafy zisku proti drawdownu, klastery a parametrické mapy — hledáme kde strategie pracuje, ne které číslo vyhrálo.
Klastery a plošiny
Jak číst PCP
Živý grid ETH/USDC
A tady je ta krajina naživo. Žádná ilustrace — skutečný, dokončený přesný grid jedné naší trendové šablony na páru ETH/USDC (Binance): 14 070 kombinací parametrů, ani jeden běh neselhal. Grafy zobrazují pásmo délek do 60, kde se odehrává hlavní dění krajiny (násobek bez omezení); vykreslení je stejné jako v naší platformě. Vyzkoušejte si to: v prvním grafu tažením po svislé ose vyfiltrujete kandidáty (třeba jen nízké drawdowny), druhý otáčejte myší.
Co kompletní grid ukázal: v pásmu délek do 60 skončilo v zisku 1 835 ze 4 200 kandidátů (44 %). Nejrobustnější plošina leží na délkách ~23–35 s násobky 2,2–2,8 — průměrné PnL těchto buněk 130–170 % — a nejlepší jednotlivý běh (+184,6 %) sedí přímo na jejím hřbetu: vítěz tu není osamělá věž, ale vrchol souvislé plošiny. Dlouhé délky naopak tvoří rozlehlou mrtvou pláň kolem nuly. Přesně takový tvar hledáme — a přesně tohle je závěr pro walk-forward, ne vstupenka na live.
Genetika jako stavební kámen orchestrace
A teď to nejdůležitější: genetická optimalizace je jedna z prvních fází testování, ne poslední. Nikdy nebereme nejlepší — tedy nejoptimálnější, a tudíž nejspíš přeoptimalizovaný — test se slovy „díky, čau, jdeme naživo". Nejslibnější oblasti krajiny pokračují do walk-forwardu — a tady se ukazuje síla celé orchestrace: každé in-sample okno walk-forwardu je samo o sobě genetikou. Na každém úseku historie proběhne vlastní evoluce, její vítězné nastavení se naslepo ověří na následujícím out-of-sample úseku, okno se posune a vše se opakuje. K tomu Monte Carlo nad výsledky — a jedna strategie má za sebou tisíce backtestů, které platforma řídí jako jeden celek: fronty, paralelní běhy, agregace výsledků. Přesně tak vypadá testování, kterému se dá věřit.
Chcete vidět krajinu výsledků své strategie? Kontaktujte nás →