12. september 2026 · risiko

Fem posisjoneringsregler, ett signal: delen av backtesten som gjør den virkelige jobben

Fem posisjoneringsregler, ett signal: delen av backtesten som gjør den virkelige jobben

Inngangssignalet ditt er sannsynligvis det minst utslagsgivende i backtesten. Jeg kan ta én middelmådig momentumregel, la alle inngangs- og utgangstidspunktene stå urørt, bare endre funksjonen som avgjør hvor mange kontrakter vi skal holde, og flytte netto Sharpe fra 0.41 til 0.71 og maksimalt drawdown fra 31% til 13%. Samme handler. Samme utførelser. Ulik strategi.

Den påstanden irriterer folk, og det bør den, fordi den antyder at mesteparten av tiden vi bruker på å finjustere tilbakeblikk og filterterskler, går med til å optimalisere det som betyr minst. Så la meg vise de faktiske kjøringene og deretter gi kritikerne rett i det de har rett i, for det finnes en versjon av dette argumentet som er feil, og det er nyttig å vite hvilken versjon jeg fremmer.

Ett signal, 6 måter å holde posisjonen på

Signalet: ETHUSDT perpetual på Binance USDⓈ-M, 1-timesstolper, long når 12-timers EMA ligger over 96-timers EMA, ellers flat, ingen shortposisjoner. Juli 2022 til juni 2026. 431 tur-retur-handler. Taker-gebyrer begge veier på 5.0 bps, funding betalt eller mottatt hver 8. time ut fra den faktiske posisjonen, slippage modellert ut fra dybden i beste kjøps- og salgskurs. Dette er med vilje et kjedelig signal — jeg valgte det fordi ingen ville forsvare det, og det gjør det til et rent testgrunnlag.

Alle radene nedenfor har identiske tidspunkter for inngangs- og utgangsstolper. Den eneste forskjellen er posisjoneringsfunksjonen.

PosisjoneringsregelNetto SharpeMaks. DDHandlet nominell verdi/år (× gj.sn. posisjon)Kostnader som % av brutto PnLMaks. giring
Fast nominell verdi på $10k0.4118.2%246×14%1.0×
Fast andel, 100% av egenkapitalen0.4430.8%251×15%1.0×
Invers 20-dagers realisert volatilitet0.6814.1%690×29%4.4×
20% annualisert volatilitetsmål, rebalansering hver time, uten tak0.7112.9%1,180×41%6.3×
20% volatilitetsmål, 20% bånd uten handel, giringstak på 3×0.6615.3%402×19%3.0×
Halv-Kelly basert på rullerende 60-dagers gjennomsnitt/varians0.5224.6%830×33%8.1×
0.41 → 0.71netto Sharpe, identiske innganger
41%av brutto PnL spist opp av rebalansering hver time
6.3×maksimal giring som kjøringen med best Sharpe brukte uten å opplyse om det

Se på spredningen. Mellom den svakeste og den beste raden er det en relativ Sharpe-forskjell på 73% og en faktor på 2.4 i drawdown. Finn nå en parameter for inngangssignalet i dette datasettet som flytter Sharpe med 0.30 uten samtidig å være åpenbar overtilpasning. Jeg har lett. Lengden på EMA-paret flytter den med rundt 0.12 gjennom hele det plausible rutenettet, og det meste av denne endringen er støy som ikke holder seg utenfor utvalget.

Hvorfor invers volatilitet ser så bra ut, og hvor mye av det som er reelt

Mekanismen er ikke mystisk. Med fast nominell verdi er posisjonsstørrelsen ukorrelert med realisert volatilitet. Dermed er dollar-risikoen per handel proporsjonal med volatilitetsnivået den aktuelle uken. For ETH i denne perioden varierte 20-dagers realisert volatilitet fra 31% til 118% annualisert. Kjøringen med fast nominell verdi tok 3.8× større dollar-risiko i mars 2024 enn i juli 2023, ikke fordi signalet var sikrere, men fordi markedet svingte mer. Nesten hele drawdownet er konsentrert i den øverste volatilitetskvintilen. Posisjonering med invers volatilitet fjerner denne koblingen, og det gir en reell forbedring i avkastningsprofilen.

Men noe av Sharpe-gevinsten skyldes en måleartefakt, og hvis du ikke skiller de to fra hverandre, tar du dårlige beslutninger senere. Sharpe deler på standardavviket til avkastningen. Volatilitetsmålretting er per definisjon en metode for å stabilisere standardavviket til avkastningen. Du optimaliserer nevneren direkte. En regel som skalerer posisjoner for å treffe en konstant vol på forhånd, vil forbedre Sharpe for nesten alle avkastningsserier med volatilitetsklynger, også serier uten noen edge. Jeg har bekreftet det på stokastiske signaler: randomiser inngangstidspunktene, behold volatilitetsmålrettingen, og Sharpe forbedres fortsatt med rundt 0.06 mot fast nominell verdi på en base med null gjennomsnittlig avkastning. Lite, men ikke null, og det skyldes utelukkende mekanikken.

Når jeg derfor sammenligner posisjoneringsregler internt, er Sharpe aldri det eneste tallet i regnearket. Jeg vil ha Calmar, netto PnL per enhet gjennomsnittlig utplassert nominell verdi og en oversikt over overgangen fra brutto til netto, for disse tre samlet er mye vanskeligere å manipulere med et triks i nevneren.

Volatilitetsestimatet er en modell, og det kan lekke som andre modeller

Den vanligste årsaken til at et godt resultat fra posisjoneringsregelen viser seg å være falskt, er at volatilitetsestimatet bruker informasjon fra stolpen det bestemmer størrelsen for. Hvis volatilitetsserien beregnes med et sentrert vindu, eller med pandas' standard `rolling().std()` etter en resampling som inkluderer den nåværende, ufullstendige stolpen, eller ved standardisering på hele utvalget, har du lekkasje. Det er subtilt fordi volatilitet er vedvarende, så lekkasjen er liten på hver enkelt rad og egenkapitalkurven ser fortsatt plausibel ut. Den ser bare litt for jevn ut akkurat i ukene som betyr noe.

Agentene våre kontrollerer 4 ting for hver posisjoneringsregel før et resultat sendes videre til køen for papirhandel:

  1. Tilgjengelighet på beslutningstidspunktet. Størrelsen brukt på stolpen som åpner kl. 14:00, må kunne beregnes ut fra data med et sluttidspunkt ≤ 13:59:59.999. Vi bekrefter dette ved å beregne størrelsesserien på nytt fra et avkortet datasett for et tilfeldig utvalg på 200 beslutningspunkter og sammenligne resultatene.
  2. Estimatets tilbakeblikk er en reell parameter. Et 20-dagers volatilitetsvindu og et 60-dagers volatilitetsvindu er 2 ulike strategier. Tilbakeblikket inngår i walk-forward-rutenettet sammen med alt annet, og hvis resultatet bare fungerer med én vinduslengde, sier det noe om hvor skjørt det er.
  3. Giringens forløp, ikke bare toppen. Vis hele fordelingen av brutto giring. Kjøringen med volatilitetsmål uten tak over brukte 4% av timene over 5×, den typen forhold som aldri kommer fram i en oppsummeringstabell, men som avgjør fullstendig om strategien lar seg gjennomføre.
  4. Følsomhet for posisjonering som robusthetstest. Hvis Sharpe kollapser når du endrer volatilitetsmålet fra 20% til 25%, er ikke strategien volatilitetsmålrettet, den er giringstilpasset, og du har funnet edgen din ved å velge et tall.

Giringstaket er ikke pynt for risikostyringen, det er en del av strategidefinisjonen. Binances ETHUSDT-nivåer senker maksimal giring når posisjonens nominelle verdi vokser, og vedlikeholdsmarginkravet øker trinnvis sammen med den. En backtest som lar regelen for volatilitetsmål gå opp til 6.3× ved en nominell verdi på $400k, beskriver en posisjon børsen ikke vil la deg holde med den marginen. Raden med tak koster 0.05 Sharpe og er den eneste av de to som beskriver noe reelt.

Rebalanseringen er der pengene forsvinner

Legg merke til kostnadskolonnen. Rebalansering hver time mot et volatilitetsmål ga den beste Sharpe-verdien på papiret, men sendte samtidig 41% av brutto PnL til børsen. Det tilsvarer en omsatt nominell verdi på 1,180× gjennomsnittlig posisjon per år, med 5 bps hver vei pluss spread og markedspåvirkning. Den naive løsningen er å rebalansere sjeldnere etter en fast plan. En bedre løsning er et bånd uten handel: juster bare størrelsen når den nåværende posisjonen avviker fra målet med mer enn en viss terskel.

Et bånd på 20% reduserte årlig omsatt nominell verdi fra 1,180× til 402× — en reduksjon på 66% — og kostet 0.05 Sharpe. Jeg har kjørt dette på 8 signaler nå, og mønsteret gjentar seg: bånd mellom 15% og 25% gir tilbake mesteparten av risikokontrollgevinsten med en tredel av omsetningen, mens alt under 10% bare betyr at du betaler gebyrer for kosmetisk presisjon i en størrelse du uansett estimerer med et 20-dagers vindu. Du kan ikke rebalansere med 3 desimalers presisjon mot et tall med et standardavvik på 15%.

I februar hadde vi en kjøring der rapporten en agent skrev, tilskrev en Sharpe-forbedring på 0.22 til «det forbedrede inngangsfilteret». Endringen var én linje i posisjoneringsmodulen. Filteret var uendret. Nå sørger jeg for at rapporten skriver ut hashen til posisjoneringskonfigurasjonen øverst, fordi attribusjon krever disiplin, og modeller forteller like gjerne en ryddig historie som alle andre.

Hva papirhandel gjør med posisjoneringsregelen din

Det er her avstanden mellom backtest og papirhandel blir størst, og det skyldes stort sett enkel regning. Volatilitetsresponsiv posisjonering betyr at posisjonsstørrelsen svinger med en faktor på 4 til 8 gjennom utvalget. Begge ytterpunktene treffer begrensninger hos børsen som backtesten aldri modellerte.

I den lave enden: stegstørrelse og minste nominelle verdi. ETHUSDT perp har et kvantumsteg på 0.001 og et minimum på $5. Hvis størrelsen i et lavvolatilitetsregime er 0.0004 ETH, holder backtesten posisjonen, mens papirhandelen holder ingenting. Det høres ut som et grensetilfelle helt til du innser at en regel med volatilitetsmål legger sine minste størrelser i de roligste markedene, som for et trendssignal ofte er nettopp der de gode inngangene finnes. I den høye enden: posisjonsgrenser, marginnivåer og det faktum at en 6×-posisjon krever disiplin med isolert margin, uten at du har backtestet en likvidasjonsmodell for den.

Vi oppdaget et tilfelle der egenkapitalkurven fra papirhandelen fulgte backtesten med under 3% avvik i 6 uker, før de skilte lag kraftig. Årsaken var avrunding: trunkering med `int()` i stedet for avrunding til nærmeste steg i ordrestørrelsen, brukt på posisjoner som i snitt var på 1.4 steg. Backtesten beregnet posisjonsstørrelser i et kontinuerlig rom, mens den faktiske størrelsesberegningen mistet 20-30% av den tiltenkte posisjonen på hver lille handel. Ingen eksotiske fyllingsmodeller, ingen historie om forsinkelse. Trunkering.

Der kritikerne har rett

3 innvendinger holder vann, og jeg vil ikke overselge argumentet.

For det første, og viktigst: posisjonering fordeler edge, den kan ikke skape den. Hvis signalets brutto forventningsverdi er null eller lavere etter realistiske gebyrer og funding, taper alle reglene i tabellen penger — de avanserte reglene gir bare en penere variansprofil mens de gjør det. Jeg valgte et signal med en liten, men positiv netto edge i denne perioden. Kjør de samme 6 reglene på et signal med −1.2 bps netto per handel, og rangeringen bevares, mens sluttverdien på egenkapitalen for alle ligger under startverdien. Posisjonering er en multiplikator på noe. Du trenger fortsatt noe å multiplisere.

For det andre har volatilitetsmålretting en reell og godt dokumentert feilmåte: den reduserer giringen i bunnen av et raskt salg og øker den igjen etter rekyloppgangen. I en skarp V vinner fast nominell verdi, noen ganger klart. Aksjer i mars 2020 og kryptofallet i august 2024 straffet begge volatilitetsresponsiv posisjonering i innhentingsfasen. ETH-perioden på 4 år inneholder tilfeldigvis mer gradvis handel med volatilitetsklynger enn V-formede omslag, noe som får radene med invers volatilitet til å se bedre ut. En annen periode snur deler av rekkefølgen, og hvis jeg hadde innledet med en tabell fra 2020, ville jeg fremmet en svakere versjon av dette argumentet.

For det tredje kan posisjoneringsregelen overtilpasses like lett som alt annet. Halv-Kelly basert på rullerende estimater er avslørende i tabellen min: metoden ser sofistikert ut og har et teoretisk grunnlag, men ga det nest største drawdownet fordi det rullerende gjennomsnittsestimatet for en støyete avkastningsserie er elendig, og Kelly er brutalt følsom for det. Alle posisjoneringsregler som bruker et estimat på forventet avkastning som inndata, arver feilen i estimatet, og forsterker den. Regler som bare bruker et variansestimat, oppfører seg mye bedre, fordi varians er det eneste momentet du faktisk kan estimere fra 4 år med timedata.

Dette tar jeg med meg: Når et backtestresultat overrasker deg, sjekk posisjoneringsmodulen før du leter etter noe smart i signalet. Og når du rapporterer Sharpe, vis giringsforløpet og kostnadsoversikten ved siden av, for et tall som avhenger så mye av et valg om posisjonering, er ikke en egenskap ved signalet i det hele tatt.

posisjonsstørrelsevolatilitetsmålrettingsharpe-forholdrisikostyringbacktesting
← Alle innlegg