Agent pro tvorbu strategií může kontaminovat testovací sadu, aniž by jediný její řádek použil při trénování. Pokud agent uvidí testovací skóre, upraví parametr a spustí test znovu, výsledek už strategii ovlivnil. V kódu se danému období může říkat „out of sample“, ale výzkumný proces ho zařadil do hledání.
Viděl jsem, jak k tomu dochází z pohodlnosti: agent spustí dávku testů, přečte si souhrnnou tabulku a navrhne drobné vylepšení. Nikdo po něm nechtěl, aby přizpůsoboval strategii validační sadě. Zpětnovazební smyčka to přesto udělala.
Chyba 1: Nechat agenta nahlížet po každém běhu
Výsledkem bývá testovací Sharpe, který úhledně stoupá po malých krůčcích. Agent vyzkouší 30 variant, ponechá si nejlepší a pak zkusí 30 dalších v jejím okolí. Každá jednotlivá změna vypadá rozumně. Dohromady ale promění testovací období v cíl optimalizace.
Ukažme si jednoduchý příklad. Předpokládejme, že strategie nemá žádnou skutečnou výhodu a na validační sadě otestujete 100 nezávislých variant. Když vyberete variantu s nejvyšším Sharpe, můžete snadno najít výsledek, který vypadá dobře jen díky náhodě. Při většině hledání strategií nebudou varianty skutečně nezávislé, ale ani to proces nezachrání: opakovaná zpětná vazba stále zvýhodňuje nastavení, která náhodou odpovídají zvláštnostem validační sady.
Zamezte přístupu k validační sadě na úrovni výsledků. Agent může strategii vyvíjet na trénovacích a validačních obdobích, ale nesmí získat metriky ani grafy z validační sady. Závěrečné vyhodnocení spusťte jednou v samostatné úloze až po uzamčení výzkumných rozhodnutí a k výsledku zaznamenejte verzi strategie i snímek dat.
Chyba 2: Označovat každé pozdější období za „nové“
Období není nové jen proto, že následuje po trénovacím okně. Jakmile agent uviděl jeho skóre nebo člověk na základě propadu změnil použitou vlastnost, dané období se stalo součástí zpětnovazební smyčky.
| Období | Povolené použití | Co mění jeho status |
|---|---|---|
| Trénovací | Přizpůsobení pravidel a parametrů | Nic; hledání je zde záměrné |
| Validační | Porovnávání kandidátů a výzkumná rozhodnutí | Opakované použití zvyšuje riziko přeučení |
| Závěrečná validační sada | Jedno vyhodnocení zmrazeného kandidáta | Přečtení výsledku a změna kandidáta |
| Budoucí období pro paper trading | Průběžné sledování chování při implementaci | Využití výsledků k ladění zahájí nový výzkumný cyklus |
Průběžné walk-forward vyhodnocování může pomoci odhadnout, jak se bude pevně daný výzkumný proces chovat v různých obdobích. Nedává ale neomezenou možnost nahlížet do výsledků každého foldu. Pokud agent vidí výsledky foldů a podle nich upravuje hledání, i tyto výsledky slouží jako zpětná vazba. Pro rozhodnutí, které chcete skutečně učinit, si ponechte jedno závěrečné nedotčené období.
Chyba 3: Nechat kód beze změny, ale změnit otázku
Někdy kód strategie zůstane stejný, ale výzkumník po zhlédnutí výsledku změní způsob vyhodnocení: vymění benchmark, vynechá slabý měsíc, vykáže jiné tržní univerzum nebo se zaměří na metriku, která vypadá nejlépe. Testovací sada nasměrovala interpretaci, i když se nezměnil žádný parametr.
Výsledkem bývá uhlazená zpráva s jedním přesvědčivým titulním číslem a bez záznamu o ostatních vyzkoušených pohledech. Akciová strategie může vypadat slabě ve srovnání s širokým tržním indexem, ale silně ve srovnání s hotovostí; krypto strategie může zazářit na jedné burze poté, co jste prověřili několik burz. Taková srovnání mohou být užitečná, ale vybírat mezi nimi až po zhlédnutí výsledků validační sady je další krok selekce.
Veďte výzkumný záznam. U každého běhu ukládejte hypotézu, verzi kódu, snímek dat, hledané parametry, okna vyhodnocení, požadované metriky a informaci, zda výsledek viděl agent nebo výzkumník. Stručný záznam je užitečnější než dokonale znějící označení „out of sample“.
Před vyhodnocením si pak jasně stanovte, na co se ptáte: který kandidát, které tržní univerzum, který benchmark, jaké náklady a které metriky? Pokud po obdržení výsledku odpověď změníte, považujte další běh za součást výzkumu a pro příští závěrečné ověření si vyhraďte nová data.
Co se ještě mohu naučit z kontaminované validační sady?
Není k ničemu. Může ukázat, jak se strategie v daném období chovala, a pomoci odhalit příčinu selhání. Její skóre ale přestaňte vydávat za nezávislé potvrzení. Berte ji jako podklad pro vývoj, zmrazte dalšího kandidáta a vyhodnoťte ho na skutečně budoucím období pro paper trading při stejných předpokladech účtování a provádění obchodů.
V pracovním postupu řízeném agentem se snadno ztratí přehled o počtu experimentů: jeden prompt může vytvořit desítky běhů, než si toho někdo všimne. Ochrana spočívá v postupu: omezte, co si agent může prohlížet, zaznamenejte každý experiment a ponechte jedno vyhodnocení, jehož výsledek nemůže ovlivnit posuzovaného kandidáta.
← Všechny články


