27 september 2026 · onderzoek

De backtest slaagde. De paperstrategie miste 37% van de orders.

De backtest slaagde. De paperstrategie miste 37% van de orders.

Onze backtest telde 91 uitgevoerde orders van de 100 geplaatste orders. Bij paper trading kreeg dezelfde strategie er 63 uitgevoerd. De mediane tijd tussen signaal en orderbevestiging was 84 milliseconden, en 12 van de gemiste paperuitvoeringen waren limietorders die volgens de backtest al waren uitgevoerd zodra de koers ze aantikte.

Dat verschil van 28 procentpunten leek op een strategieprobleem, totdat we de orderbeslissingen loskoppelden van de uitvoeringsbeslissingen. De strategie koos in beide runs vrijwel dezelfde richting, omvang en prijs. Het uitvoeringstraject verschilde: sommige orders kwamen te laat aan, andere bleven openstaan en weer andere kwamen op de markt terecht nadat die al was bewogen.

Wat betekent orderpariteit tussen backtest en paper trading?

Pariteit betekent dat de backtest en het papersysteem vergelijkbare beslissingen nemen op basis van dezelfde beschikbare informatie, en expliciet rekening houden met hun verschillende uitvoeringsmodellen. Het betekent niet dat elke gesimuleerde uitvoering overeen moet komen met een paperuitvoering. Historische candles kunnen de positie in de wachtrij niet reconstrueren, en een paperhandelsplatform kan een ander matchingmodel gebruiken dan een live beurs.

De nuttige vraag is specifieker: kun je voor elke order die de strategie wilde plaatsen uitleggen wat er daarna gebeurde? Een aantal transacties en een eindrendement verhullen te veel. Bewaar voor elke beslissing een gekoppeld record, met een stabiele strategiebeslissings-ID die meegaat door de signaal-, order-, bevestigings-, annulerings- en uitvoeringsgebeurtenissen.

VergelijkingWat dit aan het licht brengtVoorbeeld
Beslissingstijd en richtingVerschillende invoer of planningHet papersignaal wordt 1 candle later geactiveerd
Gevraagde omvang en prijsAfronding, risico- of beursregelsDe backtest plaatst 0.013 BTC; paper trading rondt af naar 0.01
Overgangen in de orderstatusVerschillen bij plaatsing, afwijzing en annuleringDe backtest behandelt een annuleringsverzoek alsof de annulering al voltooid is
Uitgevoerde hoeveelheid en prijsEen te optimistisch uitvoeringsmodel of marktbewegingEen aangetikte limietorder wordt in de backtest volledig uitgevoerd, maar niet in paper trading

Waarom zorgden de aangetikte limietorders voor zoveel gemiste uitvoeringen?

Onze backtest gebruikte 1-minuutcandles. Als de limietprijs binnen het hoogste en laagste punt van een candle viel, registreerde de backtest de order als uitgevoerd. Die regel vertelt of de markt gedurende die minuut op die prijs handelde. Niet of onze order toen actief was, vooraan in de wachtrij stond of dat er na aankomst voldoende volume werd verhandeld.

De paperlogs brachten het timingprobleem aan het licht. De strategie berekende een signaal om 12:03:00.000, maar het marktdata-event bereikte het orderproces 31 milliseconden later. De risicocontroles duurden nog eens 22 milliseconden, waarna de venuesimulator de order 31 milliseconden later bevestigde. Bij een snelle beweging kan een historische candle een prijs bereikbaar doen lijken, terwijl de limietorder pas aankwam nadat de markt die prijs al had verlaten.

Er speelde nog iets: twaalf paperorders stonden nog open terwijl de backtest al was doorgegaan. De simulator accepteerde een annuleringsverzoek alsof de order onmiddellijk was verdwenen. In het papersysteem kwam de annuleringsbevestiging later; drie orders werden in die tussentijd uitgevoerd. Daardoor veranderde de positie die het volgende signaal zag.

Hoe meet ik het verschil zonder mezelf voor de gek te houden?

Begin met een beknopt reconciliatierapport, gegroepeerd op orderintentie. Houd de noemer zichtbaar. ‘Uitvoeringspercentage’ kan staan voor het aantal uitgevoerde orders gedeeld door het aantal geplaatste orders, de uitgevoerde hoeveelheid gedeeld door de gevraagde hoeveelheid, of het aantal uitgevoerde orders gedeeld door het aantal orders dat de beurs bereikte. Dat zijn verschillende vragen.

  1. Koppel gebeurtenissen met een beslissings-ID of clientorder-ID, niet met een achteraf geschat tijdstip.
  2. Vergelijk eerst de beslissingen: signaaltijd, richting, gevraagde hoeveelheid, ordertype en limietprijs.
  3. Vergelijk bij overeenkomende beslissingen de bevestigingsvertraging, afwijzingen, open tijd, annuleringsmoment, uitgevoerde hoeveelheid en volumegewogen uitvoeringsprijs.
  4. Rapporteer percentages per ordertype en marktomstandigheid. Een algemeen uitvoeringspercentage van 63% kan 90% voor marktorders en 35% voor passieve limietorders verhullen.

Houd de categorieën duidelijk gescheiden. Een afgewezen order is geen niet-uitgevoerde order; een gedeeltelijk uitgevoerde order is geen volledige uitvoering; en een order die na een gedeeltelijke uitvoering wordt geannuleerd, heeft de positie al veranderd. Tel zowel orders als gevraagde hoeveelheden, zodat een reeks kleine orders het resultaat niet rooskleuriger laat lijken dan het is.

91%uitvoeringspercentage backtestorders
63%uitvoeringspercentage paperorders
28 ppte onderzoeken verschil

Wat moet er veranderen in de backtest?

Gebruik een uitvoeringsregel die past bij de resolutie van de data en het beoogde ordergedrag. Bij candles is een aangetikte limiet een aanwijzing voor een mogelijke uitvoering, geen bewijs dat die heeft plaatsgevonden. Je kunt gedeeltelijke uitvoeringen conservatief modelleren, een koersdoorbraak vereisen of passieve orders uitsluiten waarvan de positie in de wachtrij niet kan worden geschat. Elke keuze beantwoordt een andere vraag; leg de keuze vast en vergelijk het resultaat met meerdere aannemelijke regels.

Modelleer ook de orderstatus. Een order blijft actief totdat het systeem een eindgebeurtenis ontvangt, en een annuleringsverzoek neemt de blootstelling niet weg. Als de strategie een tweede order kan plaatsen terwijl de eerste nog in behandeling is, moet de backtest die race weergeven of die mogelijkheid door het ontwerp voorkomen.

Een uitvoeringsmodel doet een uitspraak over wat je order had kunnen doen. Stel een uitlegbare regel op en toets die vervolgens aan de paperlogs.

Bij ons verschil van 28 procentpunten was het verrassendste niet dat een backtest met minuutcandles het aantal passieve uitvoeringen overschatte. Het was dat de positie van de strategie al vóór de volgende beslissing afweek, omdat de timing van annuleringen ontbrak. Nadat we het orderstatusmodel hadden aangepast en niet elke aangetikte limiet meer als uitvoering telden, werd de vergelijking met paper trading minder flatterend en nuttiger.

Dat is de praktische maatstaf voor pariteit: elk betekenisvol verschil tussen gesimuleerd en paperhandelsgedrag heeft een vastgelegde oorzaak, en de backtest claimt geen zekerheid die de data niet kunnen bieden.

paper tradingorderbeheerbacktestinguitvoeringhandelssystemen
← Alle artikelen