En backtest kan se mer overbevisende ut etter at du har gjort dataene dårligere. Fjern de stygge prisregistreringene, fyll hullene med ryddige priser, så kan Sharpe-forholdet stige. Den forbedringen kan være et varsko: Renseregelen kan ha visket ut akkurat de markedsforholdene strategien din må tåle for å overleve.
Datakvalitet er viktig. En krysset quote eller en duplisert handel kan føre til en fylling ingen kunne ha fått. Men et filter som får ubeleilige observasjoner til å forsvinne, er også et modellvalg. Møt det med samme skepsis som du ville vist en ny signalfaktor.
Når er en dårlig pris faktisk dårlige data?
Begynn med å spørre hva observasjonen representerer. En handel langt fra det rådende markedet kan være en korrupt registrering, et reelt sveip gjennom tynn likviditet eller en hendelse som bare gjelder én handelsplass. Et ettminuttslys med en volumstolpe på null kan bety at det ikke fant sted noen handler, mens en manglende candle kan bety at datastrømmen sviktet. Disse tilfellene bør håndteres forskjellig.
Se for deg en enkel mean-reversion-strategi som kjøper når prisen faller 1% under et kort glidende gjennomsnitt, og går ut ved gjennomsnittet. I en periode med tynn likviditet over natten blir én handel registrert 1.2% under den foregående prisen, før markedet spretter tilbake. Hvis prisregistreringen er reell, kan en strategi med en hvilende limitordre ha blitt fylt. Hvis det er en feilaktig tick som ingen eksekverbar quote støttet, finner du på en fordel ved å regne med fyllingen.
Det er ikke automatisk tryggere å slette stolpen. Strategien kan fortsatt ha hatt en ordre liggende i markedet, og den neste reelle handelen kan ha fylt den. En forsvarlig rekonstruksjon må modellere hva strategien kunne observere, og hva ordren plausibelt kunne blitt fylt mot.
Hvordan påvirker en renseregel resultatet?
Kjør strategien med uttrykkelig angitte databehandlinger og sammenlign endringene. Behold råkilden og loggfør hver utelatelse eller retting med en begrunnelse. Rapporter deretter hvor mye av resultatet som avhenger av disse beslutningene.
| Databehandling | Mulig fordel | Risiko for backtesten |
|---|---|---|
| Fjern en prisregistrering utenfor et dokumentert intervall for børsfeil | Hindrer at en kjent ugyldig registrering setter en ekstremverdi | Regelen kan feilklassifisere legitime handler i et raskt marked |
| Bruk den siste prisen videre gjennom et manglende intervall | Hindrer at indikatorer svikter på grunn av hull | Oppretter en pris det kanskje ikke fant sted noen handel til |
| Bruk konsoliderte quotes i stedet for siste handler | Gir et bedre bilde av viste eksekveringspriser | Størrelsen på quote, tilgang til handelsplassen og køposisjon har fortsatt betydning |
| Fjern alle avvikende stolper basert på en statistisk terskel | Reduserer følsomheten for ekstreme verdier | Kan fjerne reelle stressperioder der strategien taper mest |
Anta at en ufiltrert kjøring har en Sharpe på 0.9, mens en kjøring der 0.8% av stolpene er utelatt, stiger til 1.4. Det er ikke i seg selv en seier for datakvaliteten. Undersøk om de fjernede stolpene samler seg rundt volatilitetstopper, om de utgjør en betydelig andel av P&L, og om ekskluderingsregelen ble fastsatt før du så resultatet.
Før en logg over dataunntak: kilde, tidsstempel, berørte felt, begrunnelse for tiltaket, og om beslutningen ble tatt før eller etter gjennomgang av strategiens resultater.
Hvordan tester jeg om rensingen endret strategiens fortrinn?
Frys strategien og sammenlign flere plausible behandlinger over de samme datoene. Ta med den rå rekonstruksjonen der det er mulig, et dokumentert sett med rettelser og et konservativt scenario for eksekvering av observasjoner som fortsatt er tvetydige. For hver kjøring rapporterer du antall handler, omsetning, drawdown og P&L-bidraget fra berørte intervaller, sammen med Sharpe.
Gå deretter gjennom handlene som endres. Hvis strategiens største vinnere forsvinner når en liten gruppe mistenkelige prisregistreringer utelates, bør du lese gjennom disse registreringene enkeltvis. Forsvinner tapene i stedet, bør du granske dem like nøye. En regel som bare får grundig oppmerksomhet når den skader backtesten, gjør allerede en del av forskningsarbeidet.
For en reproduserbar studie bør du versjonere leverandørfilene eller kontrollsummene deres, rensekoden og unntakslisten. En leverandør kan revidere historikken; neste kjøring bør gjøre det mulig å se om strategien endret seg, eller om inndataene gjorde det.
Men er ikke rensing nødvendig?
Jo. Hvis du beholder en åpenbart korrupt registrering, kan du skape en handel, forvrenge volatiliteten eller få en indikator til å svikte. Og ingen bør late som om en rå datastrøm er fasiten. Det praktiske poenget er mer avgrenset: Rensing krever dokumentasjon, en fastlåst regel og en sensitivitetsanalyse fordi den kan endre hvilket marked backtesten hevder å representere.
Når en dataretting forbedrer resultatene, bør du spørre hvilken observasjon den fjernet, og om du ville tatt den samme beslutningen uten å ha sett egenkapitalkurven. Hvis du er usikker, bør du beholde begge versjonene i forskningsloggen. Forskjellen mellom dem er en del av resultatet.
← Alle innlegg


