6 november 2026 · data

Ditt backtest använde fel univers vid tidpunkten

Ditt backtest använde fel univers vid tidpunkten

Ett backtest kan få varje candles tidsstämpel rätt och ändå använda information från morgondagen. Det händer när strategin testar dagens överlevande tillgångar över flera års historik, som om den hade vetat vilka marknader som skulle förbli likvida, noterade och värda att behålla.

Universkonstruktion är en del av strategin. Om live-systemet bara kunde välja bland tillgångar som var tillgängliga vid varje beslutstillfälle måste backtestet respektera samma gräns. Tre genvägar suddar rutinmässigt ut den.

Misstag ett: att backtesta dagens lista över hela historiken

Anta att du i dag väljer ut de 50 största kryptomarknaderna med perpetual-kontrakt och sedan backtestar dem från 2021. Listan utesluter kontrakt som försvunnit, tappat likviditet eller avnoterats. Den ger också äldre datum tillgång till marknader som kanske inte ens hade startat då.

Skadan är lätt att missa: strategin ser stabilare ut eftersom tillgångarna som misslyckades har försvunnit ur urvalet. En momentumregel kan till exempel se utmärkt ut över dagens 50 marknader, medan den historiska versionen upprepade gånger skulle ha allokerat till tillgångar som senare kollapsade eller förlorade sin notering på handelsplatsen. Du har testat en portfölj som valts ut med facit i hand.

Bygg medlemskapet som en daterad post. För varje tillgång ska du registrera när den blev kvalificerad, när den slutade vara kvalificerad och varför. Vid varje ombalansering tillämpar du reglerna med enbart den information som fanns tillgänglig då. En marknad ska inkluderas efter sin faktiska notering och eventuell föreskriven uppvärmningsperiod. Om den avnoteras måste den slutliga positionen hanteras enligt en definierad regel för utträde eller avveckling; att ta bort dess rader är ingen exitregel.

Misstag två: att rangordna efter ett mått som beräknats efter beslutet

Även ett historiskt univers kan läcka information om medlemskapsregeln använder ett fönster som inkluderar framtida data. ”Handla de 20 mest likvida aktierna varje månad” låter rimligt, tills likviditeten rangordnas med hela månaden som strategin ska handla under.

Tänk dig att du ombalanserar den första handelsdagen. Om du rangordnar efter månadens genomsnittliga omsättning i dollar använder du i smyg de följande tre veckorna för att avgöra vad som kvalificerade sig på dag ett. Skadan märks ofta som ovanligt god kapacitet: strategin undviker tillgångar som blev illikvida senare under månaden, trots att den inte kunde ha vetat det vid inträdet.

Sätt mätperiodens slut före urvalstidpunkten. Vid en månadsvis ombalansering under första handelssessionen kan du rangordna efter de 20 föregående avslutade sessionerna, fram till föregående session. Gör sedan exekveringsfördröjningen tydlig: om rangordningen bygger på gårdagens stängningskurs, kan ordern då läggas vid dagens öppning enligt det arbetsflöde du antar?

UrvalsregelVersion med punkt-i-tid-dataVanlig läcka
Topp 20 efter omsättning i dollarRangordna avslutade sessioner fram till före ombalanseringenInkludera ombalanseringsdagen eller -månaden
Noterad på handelsplatsAnvänd faktiska tider för notering och avnoteringAnvänd en aktuell symboltjänst för gamla datum
Minsta historiklängdRäkna observationer som fanns tillgängliga vid urvalstidpunktenKräv att tillgången överlever i framtiden för att passera filtret

Misstag tre: att behandla saknad historik som bevis för att en tillgång inte var kvalificerad

En dataleverantörs arkiv är inte nödvändigtvis en komplett historik över den dåvarande marknaden. En saknad symbol kan betyda att tillgången aldrig existerade, att handelsplatsen ändrade sin namnkonvention, att leverantören inte sparade avnoterade instrument eller att dataflödet helt enkelt har ett avbrott. De fallen får olika följder.

Skadan är ett prydligt univers med oförklarade luckor. Forskare kräver ofta ett helt tillbakablickande fönster och utesluter sedan tyst allt som saknar ett sådant. Det kan vara en rimlig uppvärmningsregel, men innebär också att nylistade tillgångar utesluts med avsikt. Än värre: om den saknade historiken främst gäller misslyckade marknader blir ”endast kompletta data” ännu ett överlevnadsfilter.

Håll kvalificering, datatillgänglighet och strategins uppvärmning som separata fakta. Registrera varför en tillgång uteslöts varje dag. Bevara uppgifter om saknade data i forskningsloggen i stället för att tyst radera dem. Om källan inte kan fastställa om en marknad var noterad eller möjlig att handla, säg det och mät hur mycket resultatet beror på den osäkerheten.

Gör universet reproducerbart

En användbar granskning börjar med en historisk ombalansering. Återskapa kandidatlistan från daterade noteringar och data som fanns vid den tidpunkten. Beräkna om rangordningsunderlaget med enbart avslutade observationer. Jämför sedan det resulterande medlemskapet med listan som backtestet faktiskt använde.

Spara regeln, dess bryttidpunkt, medlemskapsbesluten och källversionen tillsammans med körningen. Om du inte kan förklara varför en tillgång inkluderades och en annan uteslöts ett visst datum kan du ännu inte avgöra om strategin hittade en edge eller ärvde ett urval format av framtiden.

Misstag i universet visar sig sällan som omöjliga priser. De märks som en strategi som råkade undvika marknaderna när de slutade vara bekväma att handla på.

survivorship biaspunkt-i-tid-datauniverskonstruktionbacktesting
← Alla inlägg