Vi testet 240 parametersett. Det beste ga en Sharpe-ratio på 2.1, medianen var 0.1, og bare 17 kom over 1.0. Tallene høres ut som en oppdagelse helt til du innser at et så omfattende søk kan gi en smigrende vinner selv når ingen av strategiene har noen reell edge.
Det overraskende tallet er 240. En backtestrapport behandler vanligvis den valgte strategien som om den dukket opp helt alene. Slik fungerer ikke forskning. Hver justering av parametere, hvert bytte av features, hver endring av universet og hver ny kjøring etter et dårlig resultat gir støyen enda en sjanse til å se ut som et signal.
Hvorfor blåser flere strategiforsøk opp den beste Sharpe-ratioen?
Se for deg 240 uavhengige strategier uten reell edge og med støy i de estimerte Sharpe-ratioene. De fleste estimatene ligger nær null, men maksimumsverdien har en tendens til å være positiv. Jo flere kandidater du undersøker, desto lenger kan maksimumsverdien bevege seg bort fra sannheten.
Som en grov illustrasjon kan vi anta at hver kandidats estimerte Sharpe-ratio har et standardavvik på 0.5. Med 240 uavhengige trekninger kan det høyeste estimatet havne rundt 1.4 standardavvik over gjennomsnittet, eller omtrent 0.7 Sharpe, bare som følge av seleksjonen. Reelle strategikandidater er korrelerte, så dette regnestykket er ingen korreksjon du kan sette rett inn i en rapport. Det viser hvorfor «vinneren slo null» er svakt belegg etter et bredt søk.
Og søket handler sjelden bare om parametergridet. Du kan ha prøvd tre signalfamilier, forkastet to etter å ha sett kurvene deres, endret handelsuniverset og så kjørt den gjenværende på nytt med en annen rebalanseringsplan. Hvis resultatene påvirket disse valgene, hører de hjemme i forskningshistorikken.
Hva teller som et backtestforsøk?
Tell en beslutning som et forsøk når resultatet kan ha påvirket hvilken strategi du valgte. Det inkluderer kjøringer du ikke publiserte, og varianter du avsluttet tidlig fordi egenkapitalkurven så dårlig ut. En kompileringsfeil er ikke et ytelsesforsøk; en kjøring som ga en skuffende Sharpe-ratio, er det som regel.
| Forskningshandling | Teller det vanligvis? | Hvorfor |
|---|---|---|
| Endre en lookback fra 20 til 30 etter å ha gjennomgått resultatene | Ja | Det første resultatet påvirket den neste kandidaten |
| Kjøre den samme, fastlagte strategien på et nytt datointervall som var bestemt på forhånd | Vanligvis ikke et nytt seleksjonsforsøk | Regelen var fastlagt før du så dette bevismaterialet |
| Endre universet etter å ha sett hvilke aktiva som vant | Ja | Valg av univers kan forbedre det tilsynelatende resultatet |
| Rette en syntaksfeil og kjøre den uendrede koden på nytt | Nei | Ingen forskningsbeslutning var avhengig av resultatene |
Skillet går ved om du brukte et resultat til å ta et valg. Det kan være vanskelig å rekonstruere fra hukommelsen, og derfor bør en eksperimentlogg registrere hypotesen, kode- eller konfigurasjonsversjonen, datavinduet, kostnadsforutsetningene og resultatet for hver kjøring.
Kan jeg korrigere for multiple testing?
Det finnes metoder for å anslå seleksjonsskjevhet eller justere signifikans for mange forsøk. De kan være nyttige, men bygger på forutsetninger om hvordan kandidatene henger sammen og hvordan avkastningen oppfører seg. En nominell p-verdi eller ett enkelt estimat av en deflatert Sharpe-ratio kan ikke redde et søk der du har mistet oversikten over den faktiske historikken.
Begynn med det du kan kontrollere. Lås en endelig spesifikasjon før du evaluerer en periode som virkelig er urørt. Sørg for at hele kandidatsettet er synlig. Når du tester mange beslektede varianter, grupper dem etter beslutningen som førte til dem i stedet for å late som om hver variant var en uavhengig oppdagelse. Rapporter søket sammen med vinneren: antall forsøk, seleksjonsregel og om den endelige evalueringen førte til flere endringer.
En nyttig test: Hvis resultatet på holdout-perioden skuffer, kommer du da til å endre strategien og kalle den samme perioden en holdout på nytt? Hvis ja, er perioden nå en del av forskningen. Du trenger nye data for neste evaluering.
Hva bør en AI-forskningsagent loggføre?
En agent kan generere kandidater raskere enn en person klarer å holde dem i arbeidsminnet. Derfor er oversikt over forsøk en del av forskningssystemet, ikke en rapporteringsoppgave. Lagre hver kandidat før den kjøres, sammen med det tilhørende eksperimentet og grunnen til at kandidaten finnes. Ta vare på mislykkede og forkastede kjøringer. Registrer når et menneske eller en agent undersøkte resultatene, og hvilken beslutning som fulgte.
Gjør deretter seleksjonsprosessen reproduserbar: Med det samme kandidatsettet og den samme regelen skal den velge den samme vinneren. Hvis en agent fortsetter å endre prompten, målet eller begrensningene etter å ha sett resultatene, er også disse endringene en del av søket.
En Sharpe-ratio på 2.1 kan være verdt å undersøke. Hva den betyr, avhenger av veien som førte fram til den. Når forskningsloggen viser at 240 kandidater konkurrerte om topplasseringen, kan du stille det riktige oppfølgingsspørsmålet: Hvilke bevis har du fortsatt igjen som ingen av disse valgene allerede har brukt opp?
← Alle innlegg


