Vores backtest talte 91 udførte ordrer ud af 100 afgivne. I paper trading fik den samme strategi 63 udførte. Den mediane tid fra signal til ordrebekræftelse var 84 millisekunder, og 12 af de paper-ordrer, der ikke blev udført, var limitordrer, som backtesten antog var udført, så snart prisen ramte dem.
Afvigelsen på 28 procentpoint lignede et strategiproblem, indtil vi adskilte ordrebeslutninger fra beslutninger om udførelse. Strategien valgte næsten samme retning, størrelse og pris i begge kørsler. Eksekveringsforløbet var anderledes: Nogle ordrer ankom for sent, nogle forblev åbne, og nogle ramte et marked, der allerede havde flyttet sig.
Hvad betyder ordrelighed mellem backtest og paper trading?
Ordrelighed betyder, at backtesten og papersystemet træffer sammenlignelige beslutninger ud fra de samme tilgængelige oplysninger og derefter tager højde for deres forskellige eksekveringsmodeller. Det betyder ikke, at hver simuleret udførelse skal svare til en paper-udførelse. Historiske bars kan ikke genskabe køpositionen, og en paper-handelsplads kan bruge en anden matchningsmodel end en livebørs.
Det nyttige spørgsmål er mere afgrænset: Kan du for hver ordre, strategien havde til hensigt at afgive, forklare, hvad der skete bagefter? Antallet af handler og det endelige afkast skjuler for meget. Gem en sammenkædet registrering for hver beslutning med et stabilt ID, der følger signal-, ordre-, bekræftelses-, annullerings- og udførelseshændelserne.
| Sammenligning | Hvad den afslører | Eksempel |
|---|---|---|
| Beslutningstidspunkt og retning | Forskellige input eller planlægning | Paper-signalet udløses én bar senere |
| Ønsket størrelse og pris | Afrunding, risiko eller regler for handelspladsen | Backtesten afgiver en ordre på 0.013 BTC; paper-systemet afrunder til 0.01 |
| Overgange i ordrestatus | Manglende registrering af afgivelse, afvisning og annullering | Backtesten behandler en annulleringsanmodning som gennemført |
| Udført mængde og pris | For optimistisk udførelsesmodel eller markedsbevægelser | En limitpris, der rammes, giver fuld udførelse i backtesten, men ingen udførelse i paper trading |
Hvorfor stod limitordrer, der blev ramt, for så mange af de manglende udførelser?
Vores backtest brugte 1-minutsbars. Hvis en limitpris lå inden for en bars høj-lav-interval, markerede den ordren som udført. Den regel besvarer, om markedet handlede til den pris på et tidspunkt i løbet af minuttet. Den besvarer ikke, om vores ordre var aktiv på det tidspunkt, om den stod først i køen, eller om der blev handlet tilstrækkelig mængde, efter at den var ankommet.
Paper-loggene afslørede timingproblemet. Strategien beregnede et signal kl. 12:03:00.000, men markedsdatahændelsen nåede ordreprocessen 31 millisekunder senere. Risikotjek tog yderligere 22 millisekunder, og handelssimuleringssystemet bekræftede ordren 31 millisekunder efter det. Ved en hurtig bevægelse kan en historisk bar få en pris til at se opnåelig ud, selvom limitordren ankom, efter at markedet havde forladt den.
Der var også en anden komplikation: Tolv paper-ordrer var stadig åbne, da backtesten allerede var gået videre. Simulatoren accepterede en annulleringsanmodning, som om ordren forsvandt øjeblikkeligt. I papersystemet kom annulleringsbekræftelsen senere; tre ordrer blev udført i mellemtiden. Det ændrede den position, som det næste signal så.
Hvordan måler jeg afvigelsen uden at narre mig selv?
Start med en lille afstemningsrapport grupperet efter ordreintention. Sørg for, at nævneren er synlig. »Udførelsesrate« kan betyde udførte ordrer pr. afgiven ordre, udført mængde divideret med ønsket mængde eller udførte ordrer divideret med de ordrer, der nåede frem til handelspladsen. De størrelser besvarer forskellige spørgsmål.
- Sammenkæd hændelser med et beslutnings-ID eller klientordre-ID, ikke med et tidsstempel, du har gættet dig til bagefter.
- Sammenlign først beslutningerne: signaltidspunkt, retning, ønsket mængde, ordretype og limitpris.
- For ensartede beslutninger skal du sammenligne bekræftelsesforsinkelse, afvisninger, åbningstidspunkt, annulleringstidspunkt, udført mængde og volumenvejet udførelsespris.
- Rapportér rater efter ordretype og markedsforhold. En samlet udførelsesrate på 63 % kan dække over 90 % for markedsordrer og 35 % for passive limitordrer.
Hold kategorierne klart adskilt. En afvist ordre er ikke en ordre uden udførelse; en delvist udført ordre er ikke fuldt udført; og en ordre, der annulleres efter en delvis udførelse, har stadig ændret positionen. Tæl både ordrer og ønsket mængde, så en gruppe af små ordrer ikke får resultatet til at se bedre ud, end det er.
Hvad bør ændres i backtesten?
Brug en udførelsesregel, der passer til dataenes opløsning og den tilsigtede ordretype. Med bars er en limitpris, der rammes, tegn på en mulig udførelse, ikke bevis på en. Du kan modellere delvise udførelser konservativt, kræve at prisen handler forbi limitprisen eller udelukke passive ordrer, hvis køposition ikke kan estimeres. Hvert valg besvarer et forskelligt spørgsmål; dokumentér det, og sammenlign resultatet med mere end én plausibel regel.
Modellér også ordrestatus. En ordre forbliver aktiv, indtil systemet modtager en afsluttende hændelse, og en annulleringsanmodning fjerner ikke eksponeringen. Hvis strategien kan afgive en ny ordre, mens den første afventer, skal backtesten afspejle den timingkonflikt eller forhindre den med vilje.
En udførelsesmodel er en påstand om, hvad din ordre kunne have opnået. Giv den en regel, du kan forklare, og kontrollér den derefter mod paper-loggene.
Ved vores afvigelse på 28 procentpoint var det overraskende ikke, at en backtest baseret på minutbars overvurderede passive udførelser. Det var, at strategiens position afveg, før den traf sin næste beslutning, fordi timingen af annulleringer var udeladt. Da vi rettede modellen for ordrestatus og holdt op med at behandle enhver ramt limitpris som en udførelse, blev sammenligningen med paper trading mindre flatterende og mere nyttig.
Det er den praktiske målestok for ordrelighed: Hver betydningsfuld forskel mellem simuleret adfærd og paper-adfærd har en registreret årsag, og backtesten hævder ikke sikkerhed, hvor dataene ikke kan give den.
← Alle indlæg


