Den mest ærlige slippage-modellen tar ofte bevisst feil. En backtest som rapporterer én presis utførelseskostnad basert på grove historiske data, fremsetter en påstand datagrunnlaget ikke kan underbygge.
Det kan høres ut som et argument for grove antakelser. Det er motsatt: Bruk en enkel modell du kan forklare, og la den deretter motsi seg selv. Hvis en strategi bare fungerer med ett beleilig gunstig anslag på fylling, er usikkerheten en del av resultatet.
Hvorfor kan et presist anslag på slippage være misvisende?
Tenk deg at du har OHLCV-barer på 1 minutt og sender en markedsordre på 2,000 aksjer. Baren viser kursintervallet og det samlede volumet i løpet av ett minutt. Den forteller deg ikke hva kjøps- og salgskursen var da ordren kom fram, hvor mange som sto foran deg i køen, hvordan volumet var fordelt gjennom minuttet, eller hvor mye av det ordren din ville ha tatt.
Du kan likevel tilordne slippage en verdi. Du kan fylle på neste bars åpningskurs pluss en fast kostnad i basispunkter, eller skalere kostnaden etter ordrestørrelse delt på barvolum. Dette er nyttige tilnærminger. De er ikke observasjoner. Når du rapporterer resultatet som «slippage: 3.2 basispunkter», får et modellvalg til å se ut som en måling.
La oss ta et konkret eksempel. En strategi handler for $20,000 per ordre i en aksje der volumet i neste bar er $400,000. Deltakelsesgraden er 5%. En modell som belaster 2 basispunkter, koster $4 per ordre; en modell som belaster 10 basispunkter, koster $20. Over 500 kjøp og salg utgjør forskjellen $16,000 før provisjoner. Hvis strategiens bruttofortjeneste i backtesten er $18,000, har utførelsesantakelsen nesten like stor innvirkning som signalet.
Lag et intervall som gjenspeiler hva dataene dine kan vise
Begynn med et grunnscenario som passer til strategiens ordretype og dataenes oppløsning. En markedsordre krever spread og markedspåvirkning. En limitordre krever en regel for om den fylles i det hele tatt; å anta at alle berørte kurser gir fylling, er en annen utførelsesfeil.
Kjør deretter den samme backtesten med et lite antall tydelig definerte scenarier. Hold signalet, posisjonsstørrelsen og tidsstemplene fast, slik at du kan knytte endringene til utførelsen:
| Scenario | Utførelsesantakelse | Hva det undersøker |
|---|---|---|
| Gunstig | Grunnspread og lav markedspåvirkning | Hvor avhengig er strategien av gunstige handelsforhold? |
| Grunnscenario | Typisk spread og markedspåvirkning skalert etter deltakelsesgrad | Hva innebærer den valgte arbeidsantakelsen? |
| Ugunstig | Bredere spread, større markedspåvirkning og forsinket fylling | Overlever fordelen et plausibelt krevende marked? |
Dette er ikke konfidensintervaller med mindre du har kalibrert dem statistisk. Det er scenariotester. Forklar hva de betyr i rapporten, og ikke slå dem sammen til en oppdiktet «forventet slippage» uten grunnlag for sannsynlighetene.
La modellen reagere på ordren
En fast kostnad i basispunkter kan være et rimelig første anslag for små ordrer. Når deltakelsesgraden øker, blir det et dårlig bilde av virkeligheten. Registrer som et minimum ordrenes nominelle verdi, tilgjengelig barvolum og deltakelsesgrad. Handler strategien med futures, bør du registrere kontraktsverdien og de relevante volumenhetene; handler den med spotkrypto, må du være tydelig på noteringsvaluta og handelsplattform.
En enkel kurve for markedspåvirkning kan synliggjøre kapasitetsbegrensninger uten å late som om den gjengir en ordrebok. Du kan for eksempel definere kostnaden som en grunnkostnad for spread pluss et ledd for markedspåvirkning som øker med kvadratroten av deltakelsesgraden. Tilpass parameterne bare hvis du har egnede utførelsesdata. Hvis ikke, varierer du parameterne og viser hvor raskt resultatet forverres.
Pass også på at fyllingsmodellen ikke i det stille redder strategien. Et kjøpssignal som kommer etter en kraftig oppgang, bør ikke få barens laveste kurs bare fordi den ligger innenfor candle-intervallet. Bruk en kausal regel for fylling, og legg deretter til stress på kursen og forsinkelsen. Hvis en forsinket ordre går glipp av bevegelsen, er det et utfallet av utførelsen, ikke en ulempe som skal glattes bort.
Nyttig spørsmål: Ved hvilken spread, markedspåvirkning, forsinkelse eller deltakelsesgrad blir nettoresultatet null? Dette nullpunktet er ofte mer handlingsrettet enn én enkelt Sharpe fra en backtest.
Bruk papirhandel til å snevre inn intervallet
Papirhandel avslører ikke hvilken fylling du ville fått i en live matchingmotor. Den kan likevel vise om ordrestrømmen i backtesten ligner systemets faktiske beslutninger: når ordre genereres, hvor store de er, og hvor lenge de fortsatt kan utføres.
Sammenlign den simulerte ordrekursen med samtidige kurser eller andre markedsdata som papirhandelssystemet registrerer. Følg forskjellen per instrument, tid på dagen, ordrestørrelse og ordretype. Disse observasjonene kan snevre inn antakelsene for det oppsettet. De gjelder ikke automatisk for en annen handelsplattform, et annet markedsregime eller en større ordre.
Kritikerne har rett i at pessimistiske scenarier kan være vilkårlige. En bevisst streng modell kan forkaste en levedyktig strategi, akkurat som en gunstig modell kan smigre en svak strategi. Ikke utrop derfor det strengeste scenariet til sannheten. Publiser antakelsene, vis følsomheten, og samle inn dataene du trenger for å erstatte gjetninger med kalibrerte anslag.
En backtest kan ikke vite hvor i køen ordren sto historisk, ut fra en candle. Den kan vise om ideen fortsatt virker sammenhengende når utførelsen blir dårligere på måter dataene dine ikke kan utelukke. Det er et mer nyttig svar enn en desimal.
← Alle innlegg


