25 september 2026 · research

Hur vet jag om marknadsdata från ett backtest faktiskt gick att handla på?

Hur vet jag om marknadsdata från ett backtest faktiskt gick att handla på?

En rad med marknadsdata kan vara helt korrekt och ändå vara oanvändbar som underlag för ett backtest. Affären ägde rum, priset stämmer och tidsstämpeln är giltig, men flödet kan ha levererat den sent, en leverantör kan ha korrigerat den i efterhand eller den noterade marknaden kan ha varit otillgänglig för din strategi.

För att avgöra om historiska data gick att handla på behöver du granska mer än händelsetidsstämpeln. Du måste veta vad raden beskriver, när den blev tillgänglig för systemet, vilken handelsplats eller vilket instrument den avser och om noteringen eller affären rimligen kunde ligga till grund för din order.

Räcker ett korrekt historiskt pris för ett backtest?

Nej. Korrekthet besvarar frågan: ”Vilket pris registrerade källan till slut?” Ett backtest måste också kunna svara på: ”Vad kunde min strategi känna till när den fattade beslutet?” och ”Vad hade den kunnat exekvera?” Det är två olika frågor.

Tänk dig att en kryptohandel registreras 12:00:00.120, men att din dataleverantörs flöde levererar den till din process först 12:00:00.480. En strategi som fattar beslut vid .200 kan inte använda den affären, trots att händelsetiden föregår beslutet. Om den historiska filen bara bevarar händelsetiden kan backtestet i tysthet ge strategin information som dess liveprocess ännu inte hade fått.

Tid eller fältVad det visarBacktestfel om uppgiften saknas
HändelsetidNär börsen säger att händelsen inträffadeAtt förväxla marknadstid med när informationen blev tillgänglig för strategin
MottagningstidNär din insamlare tog emot meddelandetAtt använda fördröjda data som om de kom fram direkt
Sekvens- eller uppdaterings-IDVar händelsen hör hemma i flödets ordningAtt tillämpa uppdateringar i fel ordning eller hoppa över dem utan att märka det
RevisionstidNär ett korrigerat historiskt värde blev käntAtt backtesta med ett värde som inte fanns i det ursprungliga flödet

Om ditt arkiv saknar mottagningstider bör du vara tydlig med den begränsningen. Du kan testa ett antagande om fördröjning eller begränsa slutsatsen till forskning baserad på händelsetid. Du kan inte återskapa den exakta informationsmängden med hjälp av tidsstämplar som aldrig sparades.

Hur avgör jag om en notering gick att handla på?

Börja med marknaden som din order skulle ha nått. En samlad bästa köp- och säljkurs kan sammanfatta flera handelsplatser. Den visar inte att ditt konto hade tillgång till den visade volymen, att noteringen fortfarande fanns när ordern kom fram eller att handelsplatsen skulle godta din ordertyp.

För en marknadsorder är ett avslut på mittkursen oftast en fiktion. En mer användbar uppskattning tar hänsyn till den synliga orderboken i förhållande till orderstorleken och lägger sedan till avgifter samt antaganden om fördröjning eller marknadspåverkan. Om du bara har data från bästa köp- och säljkurs bör du begränsa slutsatsen: du kan uppskatta den första nivån, men inte dra slutsatser om djup som aldrig registrerades.

För en limitorder innebär det inte att du får avslut bara för att priset når din limit. Order som ligger före din kan först ta den tillgängliga volymen. Köplatsen går oftast inte att avgöra utifrån vanliga ögonblicksbilder, så en avslutsregel som bygger på att priset nås bör ses som ett optimistiskt scenario, inte som ett faktum om vad som hände.

En 1-minutsstapel kan visa att lägsta priset passerade din limit. Den kan inte visa om din vilande order nådde handelsplatsen före prisfallet, hur mycket som handlades där eller hur många order som låg före dig i kön.

Vad bör jag kontrollera innan jag litar på ett marknadsdataarkiv?

Jag börjar med de grundläggande egenskaperna. De avslöjar fler brister i analysen än en avancerad exekveringsmodell som byggts ovanpå ett trasigt dataflöde.

Den sista kontrollen låter nästan för självklar. En gång ägnade jag en hel förmiddag åt att undersöka en skenbar förändring i volatilitetsregimen. Det visade sig att ett kvantitetsfält hade bytt enhet efter en migrering av dataflödet. Diagrammet var snyggt; enheten var fel.

Hur kan jag testa om datatillgängligheten påverkar resultatet?

Gör ett litet känslighetstest kring strategins beslutsgräns. Förskjut användbara data med realistiska fördröjningar, ta bort uppdateringar när sekvensen inte är sammanhängande och jämför avslut med den faktiska orderboken på handelsplatsen där du har den. Redovisa både ursprungsresultatet och resultatet med försämrade data. Om en liten fördröjning raderar effekten kan strategin vara beroende av ett informationsövertag som din insamling inte tillförlitligt kan ge.

Som ett konkret exempel kan du anta att en signal utlöses när bästa köppris stiger med ett tick. Spela upp den en gång med börsens händelsetid och en gång med insamlarens mottagningstid. Om versionen med händelsetid gör 40 affärer och versionen med mottagningstid gör 27, är den skillnaden en del av strategins underlag. Detsamma gäller resultatet i varje uppspelning. Dölj inte den svagare uppspelningen för att dess data ser mindre prydlig ut.

Pappershandel är ett användbart nästa steg eftersom den blottlägger fördröjningar i dataflödet, inaktuella noteringar, felaktiga symbolmappningar och begränsningar hos handelsplatserna i samma driftmiljö som ditt forskningssystem använder. Den återskapar fortfarande inte varje livekö eller all marknadspåverkan. Var tydlig med den gränsen.

Vad innebär ”handlingsbara data” i praktiken?

Det innebär att backtestet kan förklara när en observation inträffade, när strategin kunde använda den, vilken marknad den kom från och vilket exekveringsunderlag som stöder det antagna avslutet. En ren prisserie är en utgångspunkt. Analysen blir trovärdig när antagandena om tidpunkt, åtkomst och avslut håller för granskning – och när resultatet fortfarande är rimligt efter att du gjort antagandena mindre gynnsamma.

marknadsdatabacktestingdatateknikexekveringpappershandel
← Alla inlägg