Vi testede 240 parametersæt. Det bedste viste en Sharpe-ratio på 2.1; medianen var 0.1; og kun 17 kom over 1.0. Tallene lyder som en opdagelse, indtil man finder ud af, at en så bred søgning kan give en flatterende vinder, selv når ingen strategi har en reel edge.
Det overraskende tal er 240. En backtestrapport behandler som regel den valgte strategi, som om den var dukket op alene. Sådan foregår research ikke. Hver justering af parametre, udskiftning af features, ændring af univers og genkørsel efter et grimt resultat giver støjen endnu en chance for at ligne et signal.
Hvorfor får flere afprøvede strategier den bedste Sharpe til at stige?
Forestil dig 240 uafhængige strategier uden reel edge og med støjfyldte estimerede Sharpe-værdier. De fleste estimater ligger tæt på nul, men maksimum har tendens til at være positivt. Jo flere kandidater du undersøger, desto længere kan maksimum bevæge sig væk fra sandheden.
Som en grov illustration kan vi antage, at hver kandidats estimerede Sharpe har en standardfejl på 0.5. Med 240 uafhængige træk kan det største estimat lande omkring 1.4 standardfejl over gennemsnittet, svarende til omtrent 0.7 Sharpe, alene på grund af selektionen. Reelle strategikandidater er korrelerede, så denne beregning er ikke en korrektion, du kan sætte direkte ind i en rapport. Den viser, hvorfor “vinderen slog nul” er svag evidens efter en bred søgning.
Og søgningen begrænser sig sjældent til parametergitteret. Du har måske afprøvet tre signalfamilier, kasseret to efter at have set deres kurver, ændret handelsuniverset og derefter kørt den tilbageværende kandidat igen med en anden rebalanceringsplan. Hvis præstationen påvirkede de valg, hører de hjemme i researchhistorikken.
Hvad tæller som et backtestforsøg?
Tæl en beslutning som et forsøg, når resultatet kan have påvirket, hvilken strategi du valgte. Det gælder også kørsler, du ikke offentliggjorde, og varianter, du stoppede tidligt, fordi aktiekurven så dårlig ud. En kompileringsfejl er ikke et præstationsforsøg; en kørsel, der gav en skuffende Sharpe, er det som regel.
| Researchhandling | Tæller det som regel? | Hvorfor |
|---|---|---|
| Ændr et lookback fra 20 til 30 efter at have gennemgået resultaterne | Ja | Det første resultat påvirkede den næste kandidat |
| Kør den samme fastlagte strategi på et på forhånd fastlagt nyt datointerval | Som regel ikke et nyt selektionsforsøg | Reglen var fastlagt, før du så evidensen |
| Ændr universet efter at have set, hvilke aktiver der klarede sig bedst | Ja | Valg af univers kan forbedre det tilsyneladende resultat |
| Ret en syntaksfejl, og kør den uændrede kode igen | Nej | Ingen researchbeslutning afhang af præstationen |
Skillelinjen går ved, om du brugte et resultat til at træffe et valg. Det kan være svært at rekonstruere fra hukommelsen, og derfor bør en eksperimentlog registrere hypotesen, kode- eller konfigurationsversionen, datavinduet, omkostningsantagelserne og resultatet for hver kørsel.
Kan jeg korrigere for multiple testing?
Der findes metoder til at estimere selektionsbias eller justere signifikans for mange forsøg. De kan være nyttige, men bygger på antagelser om forholdet mellem kandidaterne og afkastets egenskaber. En nominel p-værdi eller et enkelt deflateret Sharpe-estimat kan ikke redde en søgning, hvis reelle historik er gået tabt.
Begynd med det, du selv kan styre. Fastlås en endelig specifikation, før du evaluerer en periode, der reelt er urørt. Sørg for, at hele kandidatsættet er synligt. Når du tester mange beslægtede varianter, så gruppér dem efter den beslutning, der frembragte dem, i stedet for at lade, som om hver variant var en uafhængig opdagelse. Rapportér søgningen sammen med vinderen: antal forsøg, selektionsregel og om den endelige evaluering førte til flere ændringer.
En nyttig test: Hvis resultatet på holdout-perioden skuffer, vil du så ændre strategien og kalde den samme periode en holdout igen? Hvis ja, er perioden nu en del af researchen. Du skal bruge ny evidens til den næste evaluering.
Hvad bør en AI-researchagent logge?
En agent kan generere kandidater hurtigere, end et menneske kan holde styr på dem i arbejdshukommelsen. Derfor er optælling af forsøg en del af researchsystemet, ikke en administrativ rapporteringsopgave. Gem hver kandidat, før den køres, inklusive dens oprindelige eksperiment og årsagen til, at den findes. Behold fejlede og kasserede kørsler. Registrér, hvornår et menneske eller en agent gennemgik præstationen, og hvilken beslutning der fulgte.
Gør derefter selektionsprocessen reproducerbar: Med det samme kandidatsæt og den samme regel skal den vælge den samme vinder. Hvis en agent bliver ved med at ændre sin prompt, sit mål eller sine begrænsninger efter at have set resultater, er de ændringer også en del af søgningen.
En Sharpe på 2.1 kan være værd at undersøge. Hvad den betyder, afhænger af forløbet, der førte til den. Når researchloggen viser, at 240 kandidater konkurrerede om overskriften, kan du stille det rigtige næste spørgsmål: Hvilken evidens er der tilbage, som ingen af de valg allerede har brugt?
← Alle indlæg


