24 augustus 2026 · onderzoek

Waarom voert mijn backtest vaker transacties uit dan mijn paperstrategie?

Waarom voert mijn backtest vaker transacties uit dan mijn paperstrategie?

Een backtest telt transacties vaak alsof een signaal rechtstreeks in een positie verandert. Bij paper trading zit er een order tussen. Die order kan blijven staan, gedeeltelijk worden gevuld, worden geannuleerd of afgewezen, of actief blijven nadat het signaal is veranderd. Als je gesimuleerde strategie die levenscyclus overslaat, kunnen het aantal transacties en de blootstelling weinig te maken hebben met wat de paperrekening registreert.

De praktische oplossing is om orders als blijvende objecten met statussen en tijdstempels te behandelen. Een signaal is een instructie om te proberen een transactie uit te voeren; het bewijst niet dat er een transactie heeft plaatsgevonden.

Waarom voert mijn paperstrategie minder transacties uit dan mijn backtest?

Begin met orders die nooit zijn gevuld. Een backtest kan ervan uitgaan dat elke limietorder is gevuld zodra de markt de prijs aantikte. In een live markt zegt zo’n aanraking niet of jouw order vooraan in de wachtrij stond, of er voldoende volume is verhandeld, of de quote nog beschikbaar was toen de order de beurs bereikte.

Neem een strategie die een kooplimietorder op $100 plaatst en deze na 30 seconden annuleert. De markt noteert $100.00, maar daar wordt slechts een klein volume verhandeld en andere orders hebben voorrang. Jouw order wordt misschien voor een deel gevuld, of helemaal niet. Een backtest op basis van prijsaanraking registreert een volledige positie. Een paperrekening die rekening houdt met aannames over de wachtrij registreert mogelijk helemaal geen fill.

Bij marktorders ontstaat een ander verschil. Een backtest kan de volledige hoeveelheid vullen op de openingsprijs van de volgende bar, terwijl paper trading een hoeveelheid afwijst die een beursfilter overschrijdt, of de order in delen vult terwijl het orderboek beweegt. Een bar is een samenvatting van transacties; hij garandeert niet dat je volledige order tegen één prijs kon worden uitgevoerd.

Wat moet een backtest doen als een signaal verandert voordat de order is gevuld?

Houd de oude order actief totdat de simulator een annuleringsverzoek ontvangt en verwerkt. Als het signaal omslaat terwijl een kooporder openstaat, wil de strategie deze misschien annuleren en een verkooporder indienen. Die bedoeling verwijdert de kooporder niet meteen. Die kan nog worden gevuld terwijl de annulering onderweg is, waardoor de rekening long komt te staan net wanneer het nieuwe signaal short aangeeft.

Modelleer dit als een reeks gebeurtenissen: het signaal verandert, de strategie verstuurt een annuleringsverzoek, de beurs bevestigt de annulering of meldt een fill, en pas daarna kent de strategie de uiteindelijke orderstatus. Zelfs een eenvoudige vaste vertraging kan races aan het licht brengen die een backtest met onmiddellijke annulering verbergt.

Voor een bewust eenvoudig model kan een annuleringsvertraging van 1 seconde met verwerking bij de volgende gebeurtenis informatiever zijn dan doen alsof annuleren onmiddellijk gebeurt. De juiste vertraging hangt af van de beurs en het systeem; het gaat erom überhaupt een vertraging weer te geven. Ook bij een marktorder zonder annuleringsvenster blijven gedeeltelijke fills en vertraagde meldingen relevant.

Welke orderstatussen moet een paper trading-simulator registreren?

Gebruik een kleine toestandsmachine en leg elke overgang met het bijbehorende tijdstip vast. De precieze terminologie verschilt per beurs, maar de belangrijkste onderscheidingen zijn hetzelfde:

Registreer de gevulde hoeveelheid apart van de aangevraagde hoeveelheid, samen met fillprijzen en kosten. Een gedeeltelijk gevulde order is zowel een transactie als een openstaande verplichting voor het restant. Als je die simpelweg als open of afgerond behandelt, gaat informatie verloren die de strategie nodig heeft om de volgende actie te bepalen.

OrdergebeurtenisWat de strategie moet wetenVeelgebruikte vereenvoudiging in backtests
Gedeeltelijke fillUitgevoerde hoeveelheid, resterende hoeveelheid, gemiddelde prijsDe volledige order tegen één prijs als gevuld markeren
AnnuleringsverzoekTijdstip van het verzoek en uiteindelijke bevestiging van annulering of fillDe order meteen verwijderen
AfwijzingReden en of een nieuwe poging geldig isAannemen dat de aangevraagde transactie heeft plaatsgevonden
VerloopTijdstip waarop de order niet meer kon worden uitgevoerdDe order open laten staan tot een latere prijsaanraking

Hoe vergelijk ik backtesttransacties eerlijk met paper trading?

Vergelijk eerst de ordergebeurtenissen, dan de posities en pas als laatste de P&L. Als de backtest een order vulde die de paperrekening nooit heeft uitgevoerd, is het latere verschil in P&L een gevolg en niet de plek om de oorzaak te zoeken.

Koppel voor elke beoogde order de twee runs aan elkaar met een stabiele strategie- of orderidentificatie. Bekijk vervolgens het indieningstijdstip, de aangevraagde prijs en hoeveelheid, de geldigheidsduur, fills, annuleringen, afwijzingen, kosten en uiteindelijke positie. Noteer ook de reden waarom een gesimuleerde order niet werd gevuld: de limietprijs werd niet bereikt, de veronderstelde hoeveelheid orders vóór jou in de wachtrij werd niet weggewerkt, of de order verliep.

Een klein voorbeeld maakt de volgorde duidelijk. Het signaal vraagt om 10 eenheden. Beide systemen dienen de order in om 10:00:00. De backtest gaat uit van een volledige fill om 10:00:01. Paper trading vult 4 eenheden om 10:00:01, ontvangt om 10:00:02 een annuleringsverzoek en meldt vervolgens nog een fill van 2 eenheden voordat de annulering om 10:00:03 is bevestigd. De eerlijke vergelijking is 6 gevulde eenheden tegenover 10, met 4 geannuleerde eenheden. Als je beide samenvoegt tot één “transactie”, verberg je de blootstelling die de strategie daadwerkelijk had.

Heb ik een volledige beurssimulator nodig om dit goed te doen?

Nee. Een backtest kan beginnen met enkele expliciete aannames: of een aanraking van de limietprijs voldoende is, hoeveel volume tegen de prijs moet worden verhandeld om de veronderstelde orders vóór jou in de wachtrij weg te werken, hoelang orders open blijven en hoe annuleringsvertragingen werken. Voer de strategie uit met meerdere aannemelijke instellingen. Als de prestaties ervan afhangen dat elke openstaande limietorder volledig wordt gevuld, heb je iets nuttigs geleerd over het model.

Paper trading is ook geen absolute waarheid over de uitvoeringskwaliteit. Het kan gesimuleerde fills gebruiken en een echte wachtrij missen. De waarde ervan is hier beperkter: het laat zien of de strategie en het orderbeheer het eens zijn over openstaande hoeveelheden, annuleringen, posities en nieuwe pogingen terwijl gebeurtenissen zich in de tijd voordoen.

Een klein genoegen van dit werk: een goed orderlog kan een anders onbegrijpelijk verschil saai maken. “De tweede childorder werd gevuld nadat het annuleringsverzoek was verstuurd” is nuttiger dan “paper trading doet raar”. Als de backtest en de paperrekening van elkaar afwijken, volg dan eerst de levenscyclus van de order voordat je het signaal aanpast.

paper tradingorderbeheerbacktestinguitvoeringstrategieonderzoek
← Alle artikelen