Du har en lille kryptofuturesstrategi, der handler flere kontrakter, og du har netop flyttet den fra backtest til paper trading. Den første rebalancering forsøger at købe 0.037 BTC. Din simulator accepterer ordren; handelspladsen afviser den, fordi kontraktens mængdetrin er 0.001, og ordren efter afrunding kommer under minimumsnotionalen. Din position forbliver flad, mens backtesten registrerer et fill.
Det er let at afskrive den forskel som en formateringsfejl. Men den kan også ændre, hvilke aktiver du ejer, hvornår du rebalancerer, og hvor stor risiko der er tilbage, når en ordre fejler. Behandl hver handelsplads’ handelsfiltre som en del af strategiens eksekveringsregler, og sørg for, at din backtest og paper-adapter anvender de samme regler i samme rækkefølge.
Hvilke børsfiltre kan gøre en ordre ugyldig?
Start med instrumentmetadataene, som din ordre faktisk kræver: mængdeinterval, minimumsmængde, minimumsnotional, prisinterval samt eventuelle grænser for ordrestørrelse eller prisbånd. Navne og anvendelsesområde varierer fra handelsplads til handelsplads. Et spotpar kan have et andet minimum end den tilhørende perpetual-kontrakt; et filter kan ændre sig, mens din strategi kører.
Forestil dig en målposition til en værdi af $12 i en kontrakt, hvor minimumsordreværdien er $10. Hvis mængdetrinnet får din ordre til at blive rundet ned til $9.80, er ordren ugyldig, selvom målet før afrunding lå over minimumskravet. En afrunding op til $10.20 kan gøre ordren gyldig, men den overskrider også målet med $0.20. Den forskel kan have betydning, når kontoen er lille, eller strategien handler mange instrumenter.
| Regel | Hvad den begrænser | Konsekvens for backtesten |
|---|---|---|
| Mængdetrin | Tilladte ændringer i ordrestørrelsen | Afrundet størrelse afviger fra målet |
| Minimumsmængde eller minimumsnotional | Mindste acceptable ordre | Nogle handler bliver til no-op eller kræver afrunding op |
| Pristick | Tilladte limit- og triggerpriser | Afrunding af prisen ændrer sandsynligheden for, at ordren bliver eksekveret |
| Prisinterval eller størrelsesloft | Handelspladsens grænser for ordreparametre | Ordrer kan blive afvist under volatile markeder eller store rebalanceringer |
Hvor i ordreflowet bør du runde af?
Rund ordreparametrene af, efter at du har beregnet den ønskede positionsændring, men før du beslutter, om ordren skal sendes. Behold målet før afrunding til analyse, og beregn derefter en eksekverbar ordre ud fra den aktuelle position, kontraktmultiplikatoren og handelspladsens intervaller. Med et mængdetrin for salg på 0.001 bliver en ønsket reduktion på 0.0017 enten til 0.001 eller 0.002, afhængigt af den regel, du har fastlagt. Valgene giver forskellige restpositioner, så “afrund til præcisionen” er ikke en fuldstændig politik.
For mængder undgår afrunding ned mod nul, at eksponeringen øges ud over den ønskede ændring, men det kan efterlade små restpositioner, som aldrig bliver handlet. Afrunding til nærmeste værdi holder den gennemsnitlige fejl mindre, men kan overskride målet. Håndtering af minimumsnotional kræver sin egen beslutning: Spring handlen over, opsaml indtil tærsklen er nået, eller øg størrelsen og accepter overskridelsen. Skift ikke stiltiende mellem disse metoder.
Sørg også for at gemme årsagen til, at en ordre ikke blev gennemført. “Ingen ordre: under minimumsnotional” betyder noget andet end “fill på nul”. Ved en porteføljerebalancering kan en sprunget ordre efterlade kontanter ubrugte eller fastholde eksponering i det gamle aktiv; registrér resultatet i kontotilstanden.
Hvordan holder du backtest og paper-eksekvering på linje?
Brug den samme ordregodkendelsesfunktion i begge forløb, hvis systemarkitekturen tillader det. Giv den de samme instrumentregler på det relevante tidspunkt, den ønskede ordre og kontotilstanden. Den bør returnere enten en normaliseret ordre eller en konkret afvisningsårsag. Simulatoren kan derefter anvende sine fill-forudsætninger på normaliserede ordrer, mens paper-adapteren sender tilsvarende parametre til handelspladsen.
Gem et dateret øjebliksbillede af filtermetadata sammen med hver kørsel. Hvis et mængdeinterval eller minimum ændres, skal du vide, hvilken regel backtesten brugte. Henter du dagens metadata for at genafspille en strategi fra for et år siden, kan gamle ordrer se ugyldige ud, eller historiske ordrer kan fremstå mulige, selvom de ikke var det.
Når paper-handelspladsen melder, at en ordre er afvist, skal du sammenligne de indsendte parametre og filterøjebliksbilledet, før du ændrer signalet. Hvis backtestens ordrenormalisering gav 0.037 BTC, mens handelspladsen kun tillod trin på 0.001 BTC, ligger uoverensstemmelsen i adapteren eller metadataene. Hvis den indsendte ordre var gyldig, men aldrig blev fyldt, drejer det sig om eksekveringsforhold som pris, likviditet eller gyldighedstid.
Hvad bør du undersøge, før du stoler på sammenligningen?
Gem et kort revisionsspor for hver rebalancering: målposition, aktuel position, rå ordre, normaliseret ordre, gældende filterversion og endelig status. Sammenlign derefter paper- og simuleringsregistreringerne for samme beslutningstidspunkt.
- Brugte begge forløb samme kontraktmultiplikator og samme mængdeenheder?
- Anvendte de samme afrundingsretning og politik for minimumsordrer?
- Var filterværdierne gyldige, da ordren blev oprettet?
- Efterlod en afvist eller sprunget ordre samme position og kontantbeholdning på begge konti?
Din strategi kan stadig være solid, selvom den første paper-rebalancering fejler. Men indtil simulatoren kan forklare, hvorfor ordren ville være blevet accepteret, afrundet, sprunget over eller afvist, beskriver dens egenkapitalkurve et andet eksekveringssystem end det, du forsøger at køre.
← Alle indlæg

