18 oktober 2026 · research

Hur backtestar jag en strategi som handlar på en daglig signal?

Hur backtestar jag en strategi som handlar på en daglig signal?

En daglig strategi som beräknar sin signal från måndagens stängningskurs kan inte lägga en order vid måndagens stängning. Den kan skicka ordern när priset väl är känt och sedan handla till ett senare exekverbart pris. Det lilla valet av tidpunkt kan påverka resultatet mer än en smart indikator.

För en daglig backtest bör du skriva ned händelseförloppet innan du skriver signalen: när stapeln blir färdig, när strategin beräknar signalen, när ordern når marknaden och vilket pris den rimligen kan få avslut till. Om alla de händelserna inträffar samtidigt har backtesten hoppat över den svåra delen.

Kan jag använda dagens stängningskurs för att handla vid dagens stängning?

Vanligtvis inte. En signal som beror på den slutliga stängningskursen blir tillgänglig först när stängningsauktionen eller den sista affären har genomförts. Ett avslut till samma pris förutsätter att strategin kände till resultatet tillräckligt tidigt för att delta till ett pris som bidrog till att bestämma resultatet.

Tänk dig en enkel regel: köp när stängningskursen ligger över det 20-dagars glidande medelvärdet. Vid måndagens stängning blir regeln sann. En backtest som köper vid måndagens stängning har använt måndagens färdiga pris både för beslutet och avslutet. I en grundläggande modell med dagsstaplar är den rimliga approximationen att skapa ordern när måndagens stapel är färdig och avsluta den tidigast vid tisdagens öppning, med lämpliga kostnader.

Det finns strategier som skickar order till en stängningsauktion med hjälp av information som finns tillgänglig före auktionens stopptid. De kan backtestas, men signalen måste enbart använda data före stopptiden och avslutet måste återspegla auktionsexekveringen. ”Daglig signal” fastställer inte i sig något av detta.

Vilket avslutspris ska jag använda i en daglig backtest?

Det finns inget pris som alltid är rätt. Nästa öppningskurs är ett tydligt utgångsantagande när signalen bildas från en färdig dagsstapel och ordern skickas efteråt. Det är ingen garanti: ett kursgap över natten kan flytta marknaden, och en marknadsorder betalar spread, avgifter och eventuellt marknadspåverkan.

För måndagssignalen ovan kan vi anta att måndagens stängningskurs är $100 och att tisdagens öppningskurs är $103. En backtest från stängning till stängning kan visa en liten vinst om den låtsas att köpet skedde för $100. En position som öppnas nästa dag börjar på $103. Skillnaden på $3 är inte ”slippage” som går att justera bort; den är priskonsekvensen av att signalen blev känd först efter måndagens stängning.

Signalen blir tillgänglig Möjlig exekvering Modellantagande
Efter dagens stängning Nästa handelssessions öppning Ordern kan nå marknaden före eller vid öppningen
Före stängningsauktionens stopptid Stängningsauktion Signalen använder bara information före stopptiden; auktionsavslut modelleras
Efter dagens stängning Ett senare intradagspris Strategin väntar; exekveringen kräver intradagsdata och ett angivet schema

På kryptomarknader är ”daglig stängning” en konvention eftersom handeln fortsätter över tidsgränsen. En strategi kan fortfarande använda en färdig daglig UTC-stapel, men den måste vänta tills stapeln är färdig och datan har kommit fram. Om datapipeline slutför en stapel flera sekunder för sent är det särskilt svårt att motivera en order till gränstidens pris.

Hur ska jag modellera order när jag bara har dagsstaplar?

Var tydlig med vad stapeln kan och inte kan visa. Daglig OHLCV kan stödja en approximation med nästa öppning, men visar inte spreaden när ordern når marknaden, prisrörelserna under dagen eller om en limitorder hamnade i kön innan priset nådde limitnivån.

För en daglig marknadsorder kan du börja med nästa öppningskurs och sedan belasta strategin med de kostnader den faktiskt skulle möta: handelsplatsens avgifter, en uppskattning av spreaden och en uppskattning av marknadspåverkan som passar orderstorleken. Stresstesta kostnaderna. Om resultatet bygger på att spreaden antas vara noll eller marknadspåverkan försumbar har dagsstaplarna inte gett stöd för den tilltron.

För en limitorder bevisar det inte att du fick avslut bara för att dagens lägsta pris passerade din limit. Marknaden kan ha handlats där innan din order kom fram, eller så kan det ha funnits större volym före dig i kön än den volym som handlades. Dagsstaplar är ofta för grova för att ge stöd åt en trovärdig kömodell. Använd finare data om påståendet bygger på intradagsutförande, eller gör avslutsantagandet avsiktligt konservativt och märk ut det.

Vilka tidskontroller avslöjar framtidsinformation i dagsstaplar?

Jag gillar några enkla kontroller eftersom de snabbt blottlägger antaganden:

En förskjutning med en handelssession är ett diagnostiskt test, inte en universell exekveringsmodell. En långsam portföljombalansering, en strategi för stängningsauktionen och ett kryptosystem som handlar dygnet runt behöver olika klockor. Poängen är att synliggöra tidsförloppet.

Blir en backtest mindre användbar med daglig data?

Nej. Daglig data kan passa utmärkt för en strategi vars beslut och innehavstider mäts i dagar eller veckor. Den är användbar för att undersöka om en övergripande regel är värd att forska vidare på. Den blir missvisande när backtesten påstår sig kunna ange avslut med en precision som staplarna inte visar.

Jag har sett mer än en strategi förbättras dramatiskt när någon ändrat ”signal vid stängning, avslut vid stängning” till ”signal vid stängning, avslut vid nästa öppning”. Resultatet kan vara en besvikelse, men det är värdefullt: det visar om idén håller när den faktiskt går att handla på. Spara tidsreglerna tillsammans med strategikoden. Annars kan nästa optimeringsrunda i tysthet återinföra det omöjliga avslutet.

dagliga signalerexekveringstidpunktbacktestingmarknadsdata
← Alla inlägg