La oss begynne med tallene, for de er hele poenget. En takerhandel tur-retur på en større perp-børs koster rundt 0.10% av nominell verdi i provisjon. Funding på en overfylt long-posisjon kan løpe opp i 10-30% annualisert i mot deg. En markedsordre som er stor i forhold til dybden øverst i ordreboken, får i tillegg til spreaden en markedspåvirkning som følger kvadratrotsloven. Og en backtest som leser dagens revisjon av gårsdagens data, får et fortrinn på flere prosent i året som aldri har eksistert.
Det overraskende tallet er det første. Ikke fordi det er stort, men på grunn av hva det gjør med handelsfrekvensen. Alle nikker når noen sier «ta med gebyrene», og tester så en strategi som handler førti ganger om dagen. Med 0.10% tur-retur koster førti handler 4% av nominell verdi per dag. Det finnes ikke noe signal på en mid-cap perp som klarer den terskelen. Strategien var ikke i nærheten av å være lønnsom, men backtesten uten gebyrer fikk den til å se strålende ut.
Gebyrer er et filter, ikke et avslag
De fleste ser for seg at gebyrer bare senker kurven: samme form, litt lavere. Det stemmer ikke. Gebyrer er et filter på handelsfrekvens. De visker helt ut høyfrekvente varianter av et fortrinn, mens langsomme varianter knapt påvirkes. Da pipelinen vår begynte å håndheve faktiske maker/taker-gebyrer for hver børs, var det ikke de dårlige ideene som forsvant, men gode ideer som handlet for ofte. Løsningen var som regel en lengre tidshorisont, ikke et bedre signal. Nå forkaster vi alt der avkastningen per handel i snitt er under 0.15% av nominell verdi, for etter kostnader begge veier er det ingenting igjen å reinvestere.
Funding er en posisjonsskatt som husker
Perpetual-futures betaler funding hver time eller hver åttende time, og det er ikke støy: funding er strukturelt korrelert med akkurat de handlene momentumstrategier foretrekker. Når alle er long, er funding positiv, og long-posisjonen din i en momentumstrategi betaler den. En backtest uten løpende fundingkostnader overvurderer systematisk trendfølging på perps. Det lærte vi på den pinlige måten: en hel familie av funding-carry-strategier ble automatisk forkastet fordi motoren ikke godskrev fundinginntektene de var laget for å hente inn. Signalet var i orden. Regnskapet manglet.
Markedspåvirkningen øker med kvadratroten av størrelsen
Den høflige illusjonen i barbasert backtesting er at du får fylt ordren ved sluttkursen. For små ordre stemmer det omtrent. For alt av betydning er den aksepterte modellen at markedspåvirkningen øker med kvadratroten av ordrestørrelsen relativt til volumet, og den forsvinner aldri igjen. Vi legger inn et estimat for markedspåvirkning etter kvadratrotsloven i hver utførelse og i selve egenkapitalkurven. Det betyr mest akkurat der det passer dårligst: for kapasiteten. En strategi kan være reelt lønnsom ved $50k og strukturelt ulønnsom ved $5M, og det er bare en kurve som tar hensyn til markedspåvirkning som viser grensen.
Fremoverskuende informasjon skjuler seg i dataene, ikke i koden
Ingen skriver if tomorrow_close > today_close: buy(). Fremoverskuende informasjon sniker seg inn via datapipelinen: nyhetssentiment tidsstemplet etter publisering i stedet for innlesing, fundingrater koblet til perioden de gjelder i stedet for tidspunktet da de ble kjent, «dagens» symbolunivers brukt på historiske data (survivorship), reviderte økonomiske tall som erstatter tallet som faktisk ble offentliggjort. Regelen vår er at alt skal være punkt-i-tid: hver tilleggsserie tidsstemples etter når vi kunne ha kjent til den, og en backtest kan bare lese det som fantes på det nanosekundet.
Prøven på en backtest er ikke om kurven peker oppover. Det er om den samme koden, med de samme signalene live, gir de samme handlene — og det finner du bare ut ved å kontrollere det hver dag, for alltid.
Den siste setningen beskriver en reell prosess, ikke et slagord. Hver dag spiller vi av vinduet til hver paper-tradet strategi gjennom backtestmotoren og sammenligner handlene én etter én. Når paper trading og avspillingen er uenige, lyver en av dem, og det skyldes som regel en kostnad eller et tidsstempel. De fire kostnadspostene over er bare de første som løy for oss.
← Alle innlegg


