En backtest kan ha riktige tidsstempler for hver candle og likevel bruke informasjon fra morgendagen. Det skjer når strategien testes på aktiva som overlever i dag, gjennom mange år med historikk, som om den hadde visst hvilke markeder som fortsatt ville være likvide, børsnoterte og verdt å beholde.
Universkonstruksjon er en del av strategien. Hvis live-systemet bare kunne velge blant aktiva som var tilgjengelige på hvert beslutningstidspunkt, må backtesten respektere den samme grensen. Tre snarveier visker den rutinemessig ut.
Feil én: å backteste dagens liste gjennom hele historikken
La oss si at du velger ut de 50 største krypto-perpetualmarkedene i dag og backtester dem fra 2021. Listen utelater kontrakter som forsvant, mistet likviditet eller ble avnotert. Den gir også eldre datoer tilgang til markeder som kanskje ikke fantes ennå.
Det er lett å overse skadevirkningene: Strategien ser mer stabil ut fordi aktivaene som gikk under, er borte fra utvalget. En momentumregel kan for eksempel se svært bra ut på tvers av dagens 50 markeder, mens den historiske versjonen gjentatte ganger ville ha investert i navn som senere kollapset eller mistet børsnoteringen. Du har testet en portefølje som ble valgt med kjennskap til utfallet.
Bygg medlemskapet som en datert oversikt. For hvert aktivum registrerer du når det ble kvalifisert, når det sluttet å være kvalifisert, og hvorfor. Ved hver rebalansering bruker du bare informasjon som var tilgjengelig da, når du anvender reglene. Et marked bør tas inn etter den faktiske noteringen og eventuell påkrevd oppvarmingsperiode. Hvis det avnoteres, må du ha definert hvordan den siste posisjonen skal avsluttes eller gjøres opp. Å slette radene er ingen exitregel.
Feil to: å rangere etter en statistikk målt etter beslutningen
Selv et historisk univers kan lekke hvis medlemskapsregelen bruker et vindu som først blir komplett i fremtiden. «Handle de 20 mest likvide aksjene hver måned» høres rimelig ut, helt til likviditeten rangeres ut fra hele måneden strategien skal handle i.
Tenk deg at du rebalanserer på den første handelsdagen. Hvis du rangerer etter månedens gjennomsnittlige dollarvolum, bruker du i det stille de neste tre ukene til å avgjøre hva som kvalifiserte på dag én. Skadevirkningene viser seg ofte som uvanlig god kapasitet: Strategien unngår aktiva som ble illikvide senere i måneden, selv om den ikke kunne ha visst det ved inngang.
Sett måletidspunktet før utvelgingen. Ved månedlig rebalansering på den første handelsdagen kan du for eksempel rangere etter de foregående 20 fullførte handelsøktene, som slutter på økten før. Gjør deretter utførelsesforsinkelsen tydelig: Hvis rangeringen bruker gårsdagens sluttkurs, kan ordren sendes inn ved dagens åpning med arbeidsflyten du har lagt til grunn?
| Utvelgingsregel | Point-in-time-versjon | Vanlig lekkasje |
|---|---|---|
| Topp 20 etter dollarvolum | Ranger fullførte handelsøkter som slutter før rebalanseringen | Inkludering av rebalanseringsdagen eller -måneden |
| Notert på børs | Bruk tidspunkt for ikrafttredelse av notering og avnotering | Bruk av et nåværende symbolendepunkt for eldre datoer |
| Minste historikk | Tell observasjoner som var tilgjengelige ved utvelgingstidspunktet | Krav om at aktivumet må overleve i fremtiden for å bestå filteret |
Feil tre: å behandle manglende historikk som bevis på at et aktivum ikke var kvalifisert
En dataleverandørs arkiv er ikke nødvendigvis en fullstendig oversikt over det historiske markedet. Et manglende symbol kan bety at aktivumet aldri fantes, at børsen endret navnekonvensjon, at leverandøren ikke tok vare på avnoterte instrumenter, eller ganske enkelt at datastrømmen har et hull. Disse tilfellene har ulike konsekvenser.
Skadevirkningene er et ryddig univers med uforklarte hull. Forskere krever ofte et fullstendig tilbakeskuende vindu og utelater så i det stille alt som mangler et slikt vindu. Det kan være en fornuftig oppvarmingsregel, men den utelukker også nye noteringer med hensikt. Enda verre: Hvis manglende historikk særlig gjelder markeder som gikk under, blir «bare komplette data» enda et overlevelsesfilter.
Hold kvalifisering, datatilgjengelighet og strategiens oppvarming som separate opplysninger. Registrer hvorfor et aktivum ble utelukket på hver dato. Bevar manglende data i forskningsloggen i stedet for å gjøre dem om til en stille sletting. Når kilden ikke kan fastslå om et marked var notert eller omsettelig, si det tydelig og mål hvor mye resultatet avhenger av denne usikkerheten.
Gjør universet reproduserbart
En nyttig revisjon begynner med én historisk rebalansering. Bygg kandidatlisten på nytt ut fra daterte noteringer og data som var tilgjengelige ved dette skjæringstidspunktet. Beregn rangeringsgrunnlaget på nytt, og bruk bare fullførte observasjoner. Sammenlign deretter medlemskapet du får, med listen backtesten faktisk brukte.
Lagre regelen, skjæringstidspunktet, medlemskapsbeslutningene og kildeversjonen sammen med kjøringen. Hvis du ikke kan forklare hvorfor ett aktivum ble tatt inn og et annet holdt utenfor på en bestemt dato, kan du ennå ikke vite om strategien fant en fordel eller arvet et utvalg formet av fremtiden.
Feil i universet avslører seg sjelden gjennom umulige priser. De viser seg som en strategi som beleilig nok unngikk markedene da de sluttet å være beleilige.
← Alle innlegg


