Du har en liten kryptofuturesstrategi som handler flere kontrakter, og du har nettopp flyttet den fra backtesting til papirkonto. Den første rebalanseringen ber om 0.037 BTC. Simulatoren godtar ordren; handelsplassen avviser den fordi kontraktens kvantumstrinn er 0.001, og ordren rundes ned til under minste nominelle verdi. Posisjonen din forblir flat, mens backtesten registrerer en utførelse.
Det er lett å avfeie dette avviket som en formateringsfeil. Men det kan også endre hvilke aktiva du holder, når du rebalanserer, og hvor mye risiko som gjenstår etter at en ordre mislykkes. Behandle hver handelsplass' handelsfiltre som en del av strategiens utførelsesregler, og sørg for at backtesten og papirkontoadapteren bruker de samme reglene i samme rekkefølge.
Hvilke børsfiltre kan gjøre en ordre ugyldig?
Begynn med instrumentmetadataene ordren faktisk trenger: kvantumssteg, minste kvantum, minste nominelle verdi, prissteg og eventuelle grenser for ordrestørrelse eller prisintervall. Navnene og virkeområdet varierer mellom handelsplasser. Et spotpar kan ha en annen minstegrense enn den evigvarende kontrakten sin; et filter kan endres mens strategien kjører.
Tenk deg en målposisjon verdt $12 i en kontrakt der minste ordreverdi er $10. Hvis kvantumssteget runder ordren ned til $9.80, er ordren ugyldig selv om det urundede målet lå over minstegrensen. En avrunding opp til $10.20 kan gjøre ordren gyldig, men den overskyter også målet med $0.20. Denne forskjellen kan ha mye å si når kontoen er liten eller strategien handler mange instrumenter.
| Regel | Begrensning | Konsekvens for backtesten |
|---|---|---|
| Kvantumssteg | Tillatte endringer i ordrestørrelse | Avrundet størrelse avviker fra målet |
| Minste kvantum eller nominelle verdi | Minste godkjente ordre | Noen handler blir no-op-er eller krever avrunding opp |
| Pristick | Tillatte limit- og triggerpriser | Prisavrunding endrer sannsynligheten for at ordren blir utført |
| Prisgrense eller størrelsesgrense | Grenser for ordreverdier definert av handelsplassen | Ordrer kan bli avvist i volatile markeder eller ved store rebalanseringer |
Hvor i ordreprosessen bør du runde av?
Rund av ordreverdiene etter at du har beregnet ønsket posisjonsendring og før du avgjør om ordren skal sendes inn. Behold det urundede målet for analyse, og beregn deretter en gjennomførbar ordre ut fra gjeldende posisjon, kontraktsmultiplikator og handelsplassens trinnverdier. Med et kvantumssteg for salg på 0.001 blir en ønsket reduksjon på 0.0017 enten 0.001 eller 0.002, avhengig av hvilken regel du har fastsatt. Valgene gir ulike restposisjoner, så «rund av til presisjonen» er ingen fullstendig policy.
For kvantum unngår avrunding ned mot null at eksponeringen øker mer enn den ønskede endringen, men det kan etterlate små restposisjoner som aldri blir handlet. Avrunding til nærmeste verdi gir mindre gjennomsnittlig feil, men kan overskride målet. Håndtering av minste nominelle verdi krever en egen beslutning: hopp over handelen, samle opp til den passerer grensen, eller øk størrelsen og godta at den overskyter målet. Ikke veksle mellom disse alternativene uten å si fra.
Ta også vare på årsaken til at en ordre ikke ble lagt inn. «Ingen ordre: under minste nominelle verdi» forteller deg noe annet enn «utført til null». I en porteføljerebalansering kan en hoppet over ordre føre til at kontanter blir stående ubrukt eller at eksponeringen i det gamle aktivumet beholdes; registrer dette i kontotilstanden.
Hvordan holder du backtesting og papirkontohandel samkjørt?
Bruk én valideringsfunksjon for ordrer i begge løpene der systemarkitekturen tillater det. Gi den de samme instrumentreglene som gjaldt på det aktuelle tidspunktet, ønsket ordre og kontotilstand. Den bør returnere enten en normalisert ordre eller en konkret årsak til avvisning. Simulatoren kan så bruke sine utførelsesantakelser på normaliserte ordrer, mens papirkontoadapteren sender tilsvarende verdier til handelsplassen.
Lagre et datert øyeblikksbilde av filtermetadataene sammen med hver kjøring. Hvis et kvantumssteg eller en minstegrense endres, må du vite hvilken regel backtesten brukte. Hvis du henter dagens metadata for å spille av en strategi fra i fjor, kan gamle ordrer se ugyldige ut, eller historiske ordrer se mulige ut selv om de ikke var det.
Når papirkontoens handelsplass rapporterer en avvisning, sammenlign de innsendte verdiene med filterøyeblikksbildet før du endrer signalet. Hvis backtestens ordrenormalisering ga 0.037 BTC mens handelsplassen tillot steg på 0.001 BTC, ligger avviket i adapteren eller metadataene. Hvis den innsendte ordren var gyldig, men aldri ble utført, ser du på utførelsesforhold som pris, likviditet eller gyldighetsperiode.
Hva bør du kontrollere før du stoler på sammenligningen?
Før en enkel revisjonslogg for hver rebalansering: målposisjon, gjeldende posisjon, rå ordre, normalisert ordre, gjeldende filterversjon og endelig status. Sammenlign deretter postene fra papirhandelen og simuleringen for samme beslutningstidspunkt.
- Brukte begge løpene samme kontraktsmultiplikator og kvantumsenheter?
- Brukte de samme avrundingsretning og samme policy for minste ordre?
- Var filterverdiene gyldige da ordren ble opprettet?
- Førte en avvist eller hoppet over ordre til samme posisjon og kontantbeholdning i begge kontoene?
Strategien kan fortsatt være god selv om den første rebalanseringen på papirkonto mislykkes. Men før simulatoren kan forklare hvorfor ordren ville blitt godtatt, rundet av, hoppet over eller avvist, beskriver egenkapitalkurven et annet utførelsessystem enn det du prøver å kjøre.
← Alle innlegg

