24 augusti 2026 · research

Varför gör min backtest fler affärer än min paperstrategi?

Varför gör min backtest fler affärer än min paperstrategi?

En backtest räknar ofta affärer som om en signal direkt blev en position. Paperhandel lägger in en order däremellan. Den ordern kan ligga kvar, fyllas delvis, annulleras eller avvisas, eller fortfarande vara aktiv efter att signalen har ändrats. Om din simulerade strategi hoppar över den livscykeln kan antalet affärer och exponeringen skilja sig markant från det som paperkontot registrerar.

Den praktiska lösningen är att göra order till beständiga objekt med tillstånd och tidsstämplar. En signal är en instruktion om att försöka handla, inte ett bevis på att en affär har genomförts.

Varför har min paperstrategi färre affärer än min backtest?

Börja med order som aldrig fylldes. En backtest kan anta att varje limitorder fylldes så fort marknaden nådde dess pris. På en live-marknad säger en prisberöring inte om din order låg före i kön, om tillräcklig volym omsattes eller om priset fortfarande fanns tillgängligt när ordern nådde handelsplatsen.

Tänk dig en strategi som lägger en köporder med limit på $100 och annullerar den efter 30 sekunder. Marknaden handlas till $100.00, men bara en liten volym omsätts där och andra order har företräde. Din order kanske fylls till en del, eller inte alls. En backtest som bygger på prisberöring registrerar en full position. Ett paperkonto som modellerar köantaganden kanske inte registrerar någon fyllning alls.

Marknadsorder ger en annan typ av avvikelse. En backtest kan fylla hela kvantiteten vid nästa stapels öppning, medan paperhandel avvisar en kvantitet som bryter mot en handelsplats regel eller fyller den i delar medan orderboken rör sig. En stapel sammanfattar affärer; den garanterar inte att hela din order hade kunnat handlas till ett enda pris.

Vad bör en backtest göra när en signal ändras innan ordern fylls?

Låt den gamla ordern ligga kvar tills simulatorn tar emot och behandlar en annullering. Om signalen vänder medan en köporder ligger kvar kan strategin vilja annullera den och skicka en säljorder. Den avsikten tar inte bort köpordern omedelbart. Den kan fyllas medan annulleringen behandlas, så att kontot blir långt precis när den nya signalen säger kort.

Modellera detta som en sekvens: signalen ändras, strategin skickar en annulleringsbegäran, handelsplatsen bekräftar den eller rapporterar en fyllning, och först därefter känner strategin till orderns slutliga tillstånd. Även en enkel, fast fördröjning kan synliggöra kapplöpningar som en backtest med omedelbar annullering döljer.

I en avsiktligt enkel modell kan en annulleringsfördröjning på 1 sekund och behandling vid nästa händelse vara mer upplysande än att låtsas att annullering sker omedelbart. Rätt fördröjning beror på handelsplatsen och systemet; poängen är att över huvud taget representera en fördröjning. Även om din order är en marknadsorder utan annulleringsfönster spelar samma sak roll för delfyllningar och försenade rapporter.

Vilka ordertillstånd bör en paperhandelssimulator registrera?

Använd en liten tillståndsmaskin och spara varje övergång med sin tid. Handelsplatser använder olika benämningar, men de grundläggande skillnaderna är desamma:

Registrera fylld kvantitet separat från begärd kvantitet, tillsammans med fyllningspriser och avgifter. En delvis fylld order är både en affär och en aktiv skyldighet för den återstående kvantiteten. Om den bara behandlas som öppen eller avslutad går information förlorad som strategin behöver för att dimensionera nästa åtgärd.

OrderhändelseVad strategin behöver vetaVanlig genväg i backtesting
DelfyllningUtförd kvantitet, återstående kvantitet, genomsnittsprisMarkera hela ordern som fylld till ett pris
AnnulleringsbegäranBegärans tidpunkt och slutlig bekräftelse på annullering eller fyllningTa bort ordern omedelbart
AvvisningOrsak och om ett nytt försök är giltigtAnta att den begärda affären genomfördes
FörfallTidpunkten då ordern slutade kunna fyllasLåt den vara öppen tills priset berörs senare

Hur jämför jag backtestaffärer med paperhandel på ett rättvist sätt?

Jämför först orderhändelser, sedan positioner och sist P&L. Om backtesten fyllde en order som paperkontot aldrig fyllde är den senare skillnaden i P&L en följd, inte rätt ställe att leta efter felet.

Matcha varje avsedd order mellan körningarna med ett stabilt strategi- eller order-ID. Granska sedan inskickningstid, begärt pris och kvantitet, giltighetstid, fyllningar, annulleringar, avvisningar, avgifter och slutlig position. Spara också orsaken till utebliven simulerad fyllning: priset nådde aldrig limitpriset, den antagna kön framför ordern hann inte omsättas eller ordern förföll.

Ett litet exempel tydliggör förloppet. Signalen begär 10 enheter. Båda systemen skickar ordern kl. 10:00:00. Backtesten antar en full fyllning kl. 10:00:01. Paperhandeln fyller 4 enheter kl. 10:00:01, tar emot en annulleringsbegäran kl. 10:00:02 och rapporterar sedan ytterligare en fyllning på 2 enheter innan annulleringen bekräftas kl. 10:00:03. Den rättvisande jämförelsen är 6 fyllda enheter mot 10, med 4 annullerade. Om allt slås ihop till en enda ”affär” döljs den exponering strategin faktiskt hade.

Behöver jag en fullständig börssimulator för att få det här rätt?

Nej. En backtest kan börja med några tydliga antaganden: om det räcker att limitpriset berörs, hur stor volym som måste handlas förbi priset för att kön framför den antagna ordern ska omsättas, hur länge order ligger öppna och hur annulleringsfördröjningar fungerar. Kör strategin med mer än en rimlig inställning. Om resultatet bygger på att varje vilande limitorder fylls helt har du lärt dig något användbart om modellen.

Paperhandel är inte heller facit för exekveringskvalitet. Den kan använda simulerade fyllningar och sakna en verklig kö. Värdet här är mer avgränsat: den visar om strategin och dess orderhanterare är överens om väntande kvantitet, annullering, position och beteende vid nya försök när händelser kommer över tid.

En liten glädje med det här arbetet: en bra orderlogg kan göra en annars förbryllande avvikelse odramatisk. ”Den andra underordern fylldes efter annulleringsbegäran” är bättre än ”paperhandeln verkar konstig”. När backtesten och paperkontot inte stämmer överens, följ orderlivscykeln innan du ändrar signalen.

paperhandelorderhanteringbacktestingexekveringstrategiforskning
← Alla inlägg