24. august 2026 · research

Hvorfor handler min backtest oftere end min papirstrategi?

Hvorfor handler min backtest oftere end min papirstrategi?

En backtest tæller ofte handler, som om et signal direkte blev til en position. Papirhandel indsætter en ordre imellem. Ordren kan ligge i markedet, blive delvist filled, blive annulleret eller afvist eller forblive aktiv, efter signalet har ændret sig. Hvis din simulerede strategi springer dette ordreforløb over, kan dens antal handler og eksponering have meget lidt at gøre med det, papirhandelskontoen registrerer.

Den praktiske løsning er at gøre ordrer til vedvarende objekter med tilstande og tidsstempler. Et signal er en instruktion om at forsøge at handle; det er ikke bevis på, at en handel fandt sted.

Hvorfor har min papirstrategi færre handler end min backtest?

Begynd med ordrer, der aldrig blev filled. En backtest antager måske, at enhver limitordre blev filled, så snart markedet ramte dens pris. På et live marked fortæller et prisram ikke, om din ordre lå foran i køen, om der blev handlet tilstrækkelig volumen, eller om kursen stadig var tilgængelig, da ordren nåede handelsplatformen.

Forestil dig en strategi, der lægger en købslimitordre på $100 og annullerer den efter 30 sekunder. Markedet handler til $100.00, men kun en lille mængde bliver handlet dér, og andre ordrer har prioritet. Din ordre bliver måske filled delvist eller slet ikke. En backtest baseret på prisram registrerer en fuld position. En papirkonto, der tager højde for antagelser om køen, registrerer måske slet intet fill.

Markedsordrer giver en anden uoverensstemmelse. En backtest kan fylde hele mængden til næste bars åbningskurs, mens papirhandel afviser en mængde, der overskrider en handelspladss begrænsning, eller fylder ordren i bidder, mens ordrebogen bevæger sig. En bar opsummerer handler; den garanterer ikke, at hele din ordre kunne handles til én pris.

Hvad skal en backtest gøre, hvis et signal ændrer sig, før ordren bliver filled?

Lad den gamle ordre forblive aktiv, indtil simulatoren modtager og behandler en annullering. Hvis signalet vender, mens en købsordre ligger i markedet, vil strategien måske annullere den og sende en salgsordre. Den hensigt fjerner ikke straks købsordren. Den kan blive filled, mens annulleringen er undervejs, så kontoen ender med en lang position, netop som det nye signal siger kort.

Modellér dette som en sekvens: Signalet ændrer sig, strategien sender en annulleringsanmodning, handelspladsen bekræfter den eller melder om et fill, og først derefter kender strategien ordrens endelige tilstand. Selv en enkel, fast forsinkelse kan afsløre kapløb, som en backtest med øjeblikkelig annullering skjuler.

I en bevidst enkel model kan en annulleringsforsinkelse på 1 sekund og behandling ved næste hændelse være mere oplysende end at lade, som om annullering sker øjeblikkeligt. Den rette forsinkelse afhænger af handelspladsen og systemet; pointen er at repræsentere en forsinkelse. Hvis din ordre er en markedsordre uden annulleringsvindue, er det samme problem stadig relevant for delvise fills og forsinkede rapporter.

Hvilke ordretilstande skal en simulator til papirhandel registrere?

Brug en lille tilstandsmaskine, og gem hver overgang med dens tidspunkt. Den præcise terminologi varierer fra handelsplads til handelsplads, men de grundlæggende forskelle er de samme:

Registrér den filled mængde separat fra den ønskede mængde sammen med fillpriser og gebyrer. En delvist filled ordre er både en handel og en aktiv forpligtelse for den resterende mængde. Hvis du behandler den som enten blot åben eller helt afsluttet, går information tabt, som strategien skal bruge til at fastsætte størrelsen på sin næste handling.

OrdrehændelseHvad strategien skal videAlmindelig genvej i backtests
Delvist fillHandlet mængde, resterende mængde, gennemsnitsprisMarkér hele ordren som filled til én pris
AnnulleringsanmodningAnmodningstidspunkt og efterfølgende bekræftelse af annullering eller fillFjern ordren med det samme
AfvisningÅrsag, og om det er gyldigt at prøve igenAntag, at den ønskede handel fandt sted
UdløbTidspunktet, hvor ordren ikke længere kunne blive filledLad den forblive åben indtil et senere prisram

Hvordan sammenligner jeg handler i backtests og papirhandel på en retfærdig måde?

Sammenlign først ordrehændelser, derefter positioner og til sidst P&L. Hvis backtesten filled en ordre, som papirkontoen aldrig filled, er den efterfølgende forskel i P&L en konsekvens, ikke stedet, hvor du skal lede efter fejlen.

For hver tilsigtet ordre skal du matche de to kørsler ved hjælp af et stabilt strategi- eller ordre-id. Undersøg derefter indsendelsestidspunkt, ønsket pris og mængde, gyldighedstid, fills, annulleringer, afvisninger, gebyrer og den endelige position. Gem også årsagen til et simuleret manglende fill: Prisen nåede aldrig limitkursen, den antagne kø foran ordren blev ikke afviklet, eller ordren udløb.

Et lille eksempel gør forløbet tydeligt. Signalet beder om 10 enheder. Begge systemer sender en ordre kl. 10:00:00. Backtesten antager et fuldt fill kl. 10:00:01. Papirhandel fylder 4 enheder kl. 10:00:01, modtager en annulleringsanmodning kl. 10:00:02 og melder derefter om endnu et fill på 2 enheder, før annulleringen bekræftes kl. 10:00:03. Den retvisende sammenligning er 6 filled enheder mod 10, hvor 4 blev annulleret. Hvis du samler begge forløb i én “handel”, skjuler du den eksponering, strategien faktisk havde.

Har jeg brug for en fuld børssimulator for at få det rigtigt?

Nej. En backtest kan begynde med nogle få tydelige antagelser: om et prisram på limitkursen er nok, hvor meget volumen der skal handles gennem prisen for at afvikle den antagne kø foran ordren, hvor længe ordrer forbliver åbne, og hvordan annulleringsforsinkelser fungerer. Kør strategien med mere end én plausibel indstilling. Hvis resultatet afhænger af, at alle hvilende limitordrer bliver fuldt filled, har du lært noget nyttigt om modellen.

Papirhandel er heller ikke den endegyldige sandhed om eksekveringskvalitet. Den kan bruge simulerede fills og mangle en reel kø. Værdien her er mere afgrænset: Den viser, om strategien og dens ordrehåndtering er enige om afventende mængde, annullering, position og adfærd ved nye forsøg, efterhånden som hændelser indtræffer over tid.

En lille glæde ved arbejdet: En god ordrelog kan gøre en ellers ubegribelig forskel kedeligt forståelig. “Den anden underordre blev filled efter annulleringsanmodningen” er bedre end “papirhandlen ser mærkelig ud”. Når backtesten og papirkontoen er uenige, så følg ordreforløbet, før du ændrer signalet.

papirhandelordrehåndteringbacktestingeksekveringstrategiforskning
← Alle indlæg