Standardrådet lyder: vill du ha ett rättvisande backtest ska du skaffa tickdata. Jag tycker att det rådet är fel för de flesta strategier, och att följa det gör oftast backtestet sämre, inte bättre. Inte för att tickdata är felaktig – det är den mest exakta data du kan få – utan för att de flesta använder den som ersättning för noggrannhet. Upplösning och noggrannhet är inte samma sak.
Så här går det fel. En analytiker bygger en strategi på 1-minutsstaplar och får en Sharpe-kvot de gillar. Sedan säger någon – en mentor, ett foruminlägg eller deras egen gnagande tvekan – att backtestet inte är rättvisande eftersom det bygger på staplar. Då bygger de om hela datapipelinen med tickdata: varje avslut, varje uppdatering av orderboken, tidsstämplad på mikrosekunden. Backtestet går långsammare, koden blir tre gånger mer komplicerad och Sharpe-kvoten … rör sig knappt, eller rör sig åt ett håll som ingen kan förklara. Ändå lanserar de strategin, eftersom tickdata känns mer rigorös. Men att något känns rigoröst är inte samma sak som att det är det.
Vad tickupplösning faktiskt ger dig
Tickdata visar sekvensen och priset för varje avslut och, om du betalar för det, varje uppdatering av orderboken. Det är verklig information. Den låter dig återskapa din position i kön, uppskatta sannolikheten för avslut på en viss prisnivå och se negativt urval – om marknaden rör sig mot dig direkt efter ditt hypotetiska avslut. Allt detta är mycket viktigt om din innehavstid mäts i sekunder och din edge i delar av en tick.
Men de flesta strategier vi ser på Stratmill – och de flesta strategier som privatpersoner och halvprofessionella analytiker faktiskt kör – håller positioner i minuter till dagar. På den tidshorisonten avgörs inte backtestets tillförlitlighet av om du modellerade det 40:e avslutet under en viss minut. Det avgörs av om du modellerade spreaden, fundingräntan, slippagekurvan och det faktum att din limitorder ligger bakom andras order i kön. Du kan få alla fyra saker fel med tickdata och alla fyra rätt med 1-minutsstaplar. Upplösning och tillförlitlighet är oberoende av varandra.
Det är den sista siffran som folk underskattar. Ett backtest på ticknivå är inte bara ”samma backtest med fler rader”. På de flesta börser kommer avslut in i en annan ordning än de registreras av ditt system, korrigeras i efterhand, delas upp mellan flera matchningsmotorer och – på flera handelsplatser vi har hämtat data från – ibland dupliceras eller tappas helt vid återanslutning. Att bygga en tickpipeline som faktiskt är mer korrekt än en välbyggd stapelpipeline, inte bara mer detaljerad, är ett riktigt systemprojekt. De flesta team genomför inte det projektet. De pekar ett backtestverktyg mot en leverantörs tickfil och kallar det klart. Då har de bytt ut en känd och dokumenterad uppsättning approximationer (OHLCV) mot en okänd och odokumenterad uppsättning (vad leverantörens avstämningslogik för tickdata råkar göra en dålig dag).
Bruset du betalar för
Det finns en annan kostnad som handlar mindre om teknik och mer om statistik. Enskilda avslut växlar mellan köp- och säljkursen – det kallas bid-ask bounce och har varit ett känt fenomen i litteraturen om marknadsmikrostruktur sedan 1980-talet. Om din signal arbetar på en snabbare tidshorisont än några sekunder kan backtestning på ticknivå få dig att se mönster i något som bara är kursväxlingen. Jag har sett en analytiker hitta ett vackert medelvärdesåtergångsmönster i data för varje enskilt avslut. Det försvann så fort de aggregerade till 5-sekundersstaplar, eftersom mönstret bara var kursväxlingen.
En quant jag känner – tidigare inom market making och driver nu en liten kryptobok – uttryckte det så här: ”Tickdata är ett förstoringsglas. Riktar du det mot din edge, toppen. Riktar du det mot ditt brus ägnar du sex månader åt att modellera bruset med imponerande detaljrikedom.” Nu backtestar han nästan allt på 1-sekunds- eller 1-minutsstaplar och går bara ner på ticknivå för den specifika frågan ”hade den här limitordern faktiskt gått till avslut?”. Det är en fråga om sannolikheten för avslut, inte om signalen.
Den uppdelningen är rätt instinkt, och det är just den de flesta som förespråkar tickdata missar. Det rätta sättet att använda tickdata är inte att köra hela strategin på den, utan att använda den selektivt för en eller två frågor som stapeldata faktiskt inte kan besvara.
När kritikerna har rätt
Med det sagt finns det strategier där tickdata är ett krav, och det vore att överdriva min poäng att påstå något annat. Om du kör något som liknar market making – ställer köp- och säljkurser, hanterar lager tick för tick och bryr dig om din position i kön på en viss prisnivå – kan stapeldata inte återge ditt problem alls. Hela strategins ekonomi ryms inom minuten, inte mellan minuter. Detsamma gäller arbitrage mellan handelsplatser där latensen spelar roll och frågan bokstavligen är ”vilket avslut skedde först”, samt market making i optioner vid stora orderstorlekar, där några hundra millisekunders negativt urval efter ett avslut är hela spelet. I sådana lägen är backtestning på staplar inte en förenkling, utan ett kategorimisstag: du testar inte en version av strategin med lägre upplösning, utan en annan strategi som bara råkar ha samma namn som den verkliga.
| Strategins tidshorisont | Vad stapeldata döljer | Krävs tickdata? |
|---|---|---|
| Market making / köbaserad | Sannolikhet för avslut, negativt urval, position i kön | Ja – ett krav |
| Latens / arbitrage mellan handelsplatser | Ordningen på avsluten, vilken handelsplats som rörde sig först | Ja |
| Intradagmomentum, medelvärdesåtergång (minuter–timmar) | Tidpunkt för avslut inom stapeln, spreadkostnad | Bara för frågan om sannolikhet för avslut, inte för signalen |
| Swinghandel / flera dagar, riktningshandel med optioner | Nästan ingenting av betydelse | Nej – staplar räcker och är ofta renare |
Poängen är alltså inte att tickdata är dålig. Det är att valet att använda den ofta blir ett sätt att undvika svårare och mindre glamorösa frågor: Är min kostnadsmodell rätt? Är mitt antagande om avslut rätt? Hade den här ordern faktiskt gått till avslut, eller antar jag att den fylldes till ett pris som orderboken aldrig egentligen erbjöd? De frågorna går att besvara med 1-minuts- eller till och med 1-sekundsstaplar, om du är ärlig med positionen i kön och spreaden. Tickdata ger mer precisa svar till flera gånger så hög teknisk kostnad, för strategier där den extra precisionen inte ändrar slutsatsen. Lägg den extra insatsen där tidshorisonten faktiskt kräver det och hoppa över den överallt annars – det är bättre användning av analysteamets tid än att som standard välja den mest detaljerade data som finns, bara för att högre detaljrikedom känns mer rigorös.
← Alla inlägg


