En strategiagent kan forurense et testsett uten å inkludere en eneste testrad i en treningsjobb. Hvis agenten ser testresultatet, endrer en parameter og kjører på nytt, har resultatet allerede påvirket strategien. Koden kan kalle perioden «out of sample». Forskningsprosessen har gjort den til en del av søket.
Jeg har sett dette skje av bekvemmelighetshensyn: En agent kjører en batch, leser en sammendragstabell og foreslår deretter en liten forbedring. Ingen ba den tilpasse seg holdout-perioden. Tilbakemeldingssløyfen gjorde likevel jobben.
Feil 1: La agenten sniktitte etter hver kjøring
Skadebildet viser seg som en Sharpe for testen som stiger i ryddige små trinn. Agenten prøver 30 varianter, beholder den beste og prøver deretter 30 varianter rundt den. Hver enkelt endring virker fornuftig. Samlet gjør de testperioden til et optimaliseringsmål.
Her er et enkelt eksempel. Anta at strategien ikke har noen reell fordel, og at du tester 100 uavhengige varianter på en holdout-periode. Hvis du velger den høyeste Sharpe-verdien, er det fullt mulig å finne et flatterende resultat ved en tilfeldighet. I de fleste strategisøk vil variantene ikke være helt uavhengige, men det redder ikke prosessen: Gjentatte tilbakemeldinger belønner fortsatt innstillinger som tilfeldigvis passer særegenhetene i holdout-perioden.
Legg holdout-perioden bak en resultatgrense. Agenten kan utvikle mot trenings- og valideringsperioder, men den kan ikke hente holdout-måltall eller diagrammer. Kjør den endelige evalueringen i en separat jobb, én gang etter at forskningsvalgene er låst, og registrer strategiversjonen og datasnapshotet sammen med resultatet.
Feil 2: Kalle hver senere periode «ny»
Et datointervall er ikke nytt bare fordi det følger etter treningsvinduet. Hvis agenten har sett et resultat fra intervallet, eller et menneske brukte nedtrekket til å velge en annen egenskap, har intervallet blitt en del av tilbakemeldingssløyfen.
| Periode | Tillatt bruk | Hva endrer statusen |
|---|---|---|
| Trening | Tilpasse regler og parametere | Ingenting; perioden er ment å inngå i søket |
| Validering | Sammenligne kandidater og ta forskningsbeslutninger | Gjentatt bruk gjør det lettere å overtilpasse |
| Endelig holdout | Én evaluering av den låste kandidaten | Å lese resultatet og endre kandidaten |
| Fremtidig papirhandelsperiode | Observere implementeringsatferd fremover i tid | Bruk av utfall til justeringer starter en ny forskningssyklus |
Rullerende walk-forward-evaluering kan bidra til å anslå hvordan en fast forskningsprosess fungerer over tid. Det gir ikke fri adgang til å sniktitte på hvert fold. Hvis en agent ser fold-resultater og tilpasser søket sitt, er disse foldene også tilbakemeldinger. Behold en siste, urørt periode til beslutningen du faktisk skal ta.
Feil 3: Låse koden, men endre spørsmålet
Noen ganger forblir strategikoden uendret, mens forskeren endrer evalueringen etter å ha sett resultatet: bytter referanseindeks, utelater en svak måned, rapporterer et annet univers eller legger vekt på måltallet som ser best ut. Testsettet har formet fortellingen selv om ingen parameter ble endret.
Skadebildet viser seg som en polert rapport med én tydelig hovedkonklusjon og ingen oversikt over de andre visningene som ble prøvd. En aksjestrategi kan se svak ut mot en bred markedsindeks, men sterk mot kontanter; en kryptostrategi kan skinne på én handelsplattform etter at flere plattformer er undersøkt. Slike sammenligninger kan være nyttige, men å velge mellom dem etter å ha sett holdout-resultatet er enda et utvalgstrinn.
Før en forskningslogg. Lagre hypotesen, kodeversjonen, datasnapshotet, parametersøket, evalueringsvinduene, måltallene som ble etterspurt, og om agenten eller forskeren så resultatet for hver kjøring. En kort logg er mer nyttig enn en etikett som «out of sample» som bare høres overbevisende ut.
Formuler deretter det endelige spørsmålet tydelig før evalueringen: Hvilken kandidat, hvilket markedsunivers, hvilken referanseindeks, hvilke kostnader og hvilke måltall? Hvis svaret endres etter at resultatet foreligger, må du behandle neste kjøring som forskning og sette av nye data til neste endelige kontroll.
Hva kan jeg fortsatt lære av en forurenset holdout-periode?
Den er ikke ubrukelig. Den kan vise hvordan en strategi oppførte seg i perioden, og bidra til å finne årsaken til en feil. Bare slutt å presentere resultatet som en uavhengig bekreftelse. Bruk det som dokumentasjon fra utviklingsarbeidet, lås den neste kandidaten og evaluer den på en faktisk fremtidig papirhandelsperiode med de samme forutsetningene for regnskapsføring og utførelse.
I en agentstyrt arbeidsflyt er det lett å miste oversikten over antall eksperimenter: Én ledetekst kan sette i gang dusinvis av kjøringer før noen legger merke til det. Beskyttelsen ligger i rutinene. Begrens hva agenten kan undersøke, loggfør hvert eksperiment, og behold én evaluering der resultatet ikke kan styre kandidaten som vurderes.
← Alle innlegg


