Een strategie plaatst om 10:00 een limietorder. Om 10:03 verandert het signaal. De backtest vervangt de order ongemerkt om 10:04 en telt vervolgens een uitvoering om 10:05. Bij papertrading kan de oorspronkelijke order nog steeds bij de handelsplaats openstaan. Als die wordt uitgevoerd terwijl de vervangende order ook actief is, heeft de strategie 2 orders en een positiemodel dat doet alsof er maar 1 was.
Openstaande orders hebben een eigen status en klok nodig. Een backtest moet weten wanneer elke order is geplaatst, wanneer die kan worden geannuleerd, of de annulering de handelsplaats heeft bereikt en wat er gebeurt als een uitvoering en annulering elkaar kruisen. Drie veelgebruikte sluiproutes wissen die feiten uit.
Fout 1: Een nieuw signaal behandelen als een onmiddellijke annulering
Veel backtests berekenen bij elke candle de doelpositie opnieuw en overschrijven vervolgens de openstaande order met wat het nieuwste signaal voorschrijft. Daardoor verdwijnt de order precies op het moment dat de strategie van gedachten verandert. Echte handelsplaatsen werken niet zo. Een annuleringsverzoek kost tijd en een order kan worden uitgevoerd voordat de handelsplaats het verwerkt.
Neem een kooplimietorder voor 100 aandelen tegen $50.00. Om 10:03 verzwakt het signaal, dus stuurt de strategie een annuleringsverzoek. Om 10:03:00.080 wordt de order voor 60 aandelen uitgevoerd; de annulering wordt bevestigd om 10:03:00.110. De resterende 40 aandelen worden geannuleerd, maar de positie omvat nu 60 aandelen. Een backtest op basis van candles die de order om 10:03 verwijdert, kan 0 rapporteren. Een backtest die van onmiddellijke annulering uitgaat en toch later een uitvoering registreert, verzint blootstelling in de tegenovergestelde richting.
Volg de levenscyclus van de order expliciet: geplaatst, bevestigd, gedeeltelijk uitgevoerd, annulering in behandeling, geannuleerd of volledig uitgevoerd. Behoud uitvoeringen die plaatsvinden voordat de annulering is bevestigd. Kies voor een grove candlesimulatie een conservatieve volgorderegel en vermeld die wanneer beide gebeurtenissen binnen dezelfde candle kunnen vallen.
Fout 2: Een openstaande order een onbeperkte houdbaarheid geven
Een limietorder die om 10:00 op basis van een signaal is geprijsd, kan verouderd raken, ook als het signaal geen expliciete uitstapregel heeft. Het orderboek beweegt, de volatiliteit verandert en de marktwaarde van het instrument kan verschuiven. Toch kan een simulator die de order actief laat totdat die wordt uitgevoerd, maanden later alsnog een uitvoering registreren en die toeschrijven aan een these die niet meer bestaat.
Stel een geldigheidsbeleid voor orders in dat bij de strategie past. Een signaal met een horizon van 1 minuut kan een vervaltijd van 30 seconden gebruiken; bij een dagelijkse herbalancering kan een order tot het slot actief blijven. Dat zijn keuzes voor de strategie, geen universele standaardinstellingen. Als de strategie bij elke candle een nieuwe prijs vaststelt, modelleer dan het annuleren en vervangen in plaats van de order magisch naar de nieuwe prijs te verplaatsen.
| Orderbeleid | Gebruikelijk doel | Vraag voor de backtest |
|---|---|---|
| Onmiddellijk uitvoeren of annuleren | Beschikbare liquiditeit benutten en dan stoppen | Welk deel kon bij plaatsing worden uitgevoerd? |
| Korte vervaltijd | Snel signaal met een kort uitvoeringsvenster | Was de order nog geldig toen de prijs terugkeerde? |
| Tot het einde van de sessie | Langzame herbalancering of intentie om aan de slotveiling deel te nemen | Ondersteunt de handelsplaats die looptijd daadwerkelijk? |
Fout 3: Elke prijsaanraking als uitvoering tellen
Als het dieptepunt van een candle een kooplimiet raakt, betekent dat niet per se dat de order is uitgevoerd. Er kan een wachtrij vóór de order hebben gestaan, er kan weinig volume op die prijs zijn verhandeld of er kan een korte transactie hebben plaatsgevonden voordat de order aankwam. Een verouderd ordermodel combineert vaak alle 3 fouten: het laat de order te lang actief, gaat ervan uit dat die vooraan in de rij staat en kent vervolgens een volledige uitvoering toe zodra de prijs wordt geraakt.
Voorkom op zijn minst uitvoeringen voordat de order is aangekomen en beperk de gesimuleerde hoeveelheid tot een aannemelijk handelsvolume op de limietprijs. Gebruik voor strategieën waarbij de wachtrijpositie ertoe doet handels- en orderboekgegevens of een bewust conservatief wachtrijmodel. Een uitvoering op basis van een prijsaanraking kan nog steeds nuttig zijn voor een grove eerste selectie, maar vermeld dat het een optimistische benadering is en vergelijk die met een strengere aanname.
Een praktische controle: registreer voor elke order het aanmaaktijdstip, de actieve periode, het annuleringsverzoek en de bevestiging, het tijdstip en de hoeveelheid van de uitvoering en de resterende hoeveelheid. Speel vervolgens een paar transacties rond signaalomkeringen opnieuw af. Kun je niet uitleggen waarom elke order nog actief was toen die werd uitgevoerd, dan moet de backtest de uitvoeringen beter tellen.
Modelleer de order die je met papertrading wilt testen
De orderstatus verbindt de intentie van de strategie met de daadwerkelijke blootstelling. De positie verandert door uitvoeringen, niet door signaaldoelen of annuleringsverzoeken. Vervangingen moeten een controleerbaar spoor achterlaten en gedeeltelijke uitvoeringen moeten meegenomen worden naar de volgende beslissing. Dat maakt de backtest omslachtiger, maar ook de vergelijking met papertrading betekenisvol: beide systemen kunnen om aanwijsbare redenen verschillend omgaan met de uitvoering.
Houd de onzekerheid in de resultaten wanneer het ordermodel onzeker is. Test orders met een korte en lange looptijd, varieer de annuleringsvertraging en laat zien hoeveel de prestaties afhangen van optimistische aannames over de wachtrij. De strategie kan goed zijn. Maar het schijnbare voordeel kan ook de opbrengst zijn van een order die het echte systeem uren geleden al had geannuleerd.
← Alle artikelen


