8. oktober 2026 · research

Hvorfor bliver min limitordre udført, når markedet aldrig nåede den?

Hvorfor bliver min limitordre udført, når markedet aldrig nåede den?

Et backtest kan udføre din limitordre, selv når der ikke var nogen handelsmulighed. Hvis en bars laveste pris gik under din købsgrænse, registrerer mange motorer et fill. Men den laveste pris fortæller kun, at mindst én rapporteret handel fandt sted til den pris eller lavere. Den siger intet om, hvor meget der blev handlet, hvor meget der lå i kø foran dig, eller om din ordre nåede at være aktiv.

Den forskel betyder mest, når strategiens edge afhænger af hyppige passive fills. En model, der behandler hvert pristouch som et fuldt fill, kan gøre en tålmodig indgang til en imaginær kilde til alpha.

Betyder det, at min ordre blev udført, når en bar rammer min limitpris?

Nej. Det betyder, at barens registrerede prisinterval omfattede din limit. Om din ordre kunne blive udført, afhænger af markedets ordrebog, handelsflowet, din position i køen og tidspunktet, hvor ordren ankom.

Forestil dig en købsgrænse på $100.00. Baren åbner på $100.20, når et lavpunkt på $99.98 og lukker på $100.10. En handel kan være blevet registreret to cent under din pris, men hvis der lå en stor kø foran dig ved $100.00, og kun en lille mængde blev handlet dér, er det ikke sikkert, at din ordre blev berørt. Med kun OHLCV kan du ikke se den kø.

Der er også en anden komplikation: En bar samler hændelser over tid. Hvis dit signal beregnes ud fra barens lukkepris, kan du ikke gå ud fra, at din ordre lå i markedet tidligere i baren, da lavpunktet indtraf. Baren komprimerer den rækkefølge af hændelser, der kunne besvare spørgsmålet.

Hvad kan OHLCV-data faktisk fortælle mig om et limitfill?

OHLCV kan udelukke nogle fills og gøre andre sandsynlige. Det kan ikke fastslå køprioritet eller garantere, hvor stor en mængde der var tilgængelig for din ordre.

ObservationHvad det understøtterHvad det ikke kan bevise
Barens laveste pris forblev over en købsgrænseIngen rapporteret handel nåede prisen i løbet af barenAt ordren ville blive udført
Barens laveste pris ramte købsgrænsenPrisen blev registreret ved limitprisenAt der blev handlet en mængde, efter din ordre ankom
Barens laveste pris faldt under købsgrænsenDer blev handlet til eller under prisenAt en tilstrækkelig mængde nåede frem til din position i køen
Barens samlede volumen oversteg din ordrestørrelseMarkedet handlede mindst den mængde et sted i barenAt volumen blev handlet til din pris efter din ankomst

En barbaseret motor har derfor brug for en antagelse om fills. Behandl den antagelse som en model med en kendt blind vinkel, ikke som et faktum udledt af lysestagen.

Hvordan bør jeg modellere limitfills i et backtest?

Begynd med timingen af ordren. Fastlæg, hvornår signalet bliver tilgængeligt, hvornår ordren når handelspladsen, og hvilke efterfølgende markedshændelser der kan påvirke den. For et signal, der først kendes ved barens luk, er en konservativ barbaseret regel at lade ordren være aktiv fra næste bar.

Skil derefter prisbetingelserne fra fillmængden. At en limit bliver berettiget til handel, betyder ikke, at hele ordren bliver udført. Hvis du har registrerede handler, men ikke historik over ordrebogen, kan du kræve, at den handlede volumen ved eller over din limit overstiger et multiplum af din ordrestørrelse. Det multiplum er en grov buffer for køen, ikke en universel konstant. Afprøv flere værdier, og rapportér, hvordan resultatet ændrer sig.

Antag for eksempel, at strategien placerer en købsgrænse på 2 BTC, og at der handles 3 BTC til den valgte pris, efter ordren bliver aktiv. En model, der kræver 5 BTC i kvalificerende volumen, lader ordren stå uudført; en model med et volumenmultiplum på 1.0 udfører den. Ingen af resultaterne genskaber køen. Sammenligningen viser, hvor meget strategien afhænger af en antagelse, du ikke kan observere.

Lad uudførte ordrer blive i simuleringen. Annullér dem, når strategien ville annullere dem, og lad den mistede handel forblive mistet. Hvis du lader en strategi få et fill, hver gang dens limit bliver ramt, samtidig med at du ignorerer ordrer, der udløber uden at blive ramt, skævvrider det både eksekveringen og antallet af muligheder.

Hvornår har jeg brug for ordrebogsdata?

Brug opdateringer af ordrebogen og handler, når køposition eller delvise fills er afgørende for strategien: market making, kortvarige passive quotes eller indgange, der afhænger af at være tæt på forrest i en overfyldt prisniveaukø. Selv da afslører historiske offentlige data muligvis ikke din præcise plads i køen. Du skal modellere ordreankomst, annulleringer foran dig, matchningsregler og din egen markedspåvirkning.

For langsommere strategier kan detaljerede ordrebøger øge kompleksiteten uden at løse den vigtigste usikkerhed. En nyttig barbaseret undersøgelse kan stadig sammenligne en øvre grænse med fill ved pristouch med strengere scenarier, der kræver en vis volumen. Hvis den tilsyneladende edge forsvinder, så snart du kræver plausible fills, er det værdifuld information for analysen.

Hvordan kan jeg se, om mit resultat afhænger af optimistiske fills?

Kør den samme strategi med et lille sæt tydelige fillregler, og sammenlign mere end det endelige afkast. Følg antallet af udførte ordrer, andelen af delvise fills, liggetiden, annulleret mængde, mistede kursbevægelser efter manglende fills og omsætningen. En strategi kan bevare sit hovedresultat, selv om den bygger på markant færre og mere bekvemme handler.

Papirhandel er det næste nyttige tjek: Indsend den faktiske ordrelogik, og registrer kvitteringer, fills og annulleringer. Papirfills afhænger stadig af handelspladsens eller simulatorens egne regler, men de afprøver timing og ordrehåndtering, som en lysestage ikke kan vise.

En limit, der bliver ramt, siger noget om prisen. Et fill er en påstand om eksekvering. Dit backtest bør synliggøre afstanden mellem de to påstande.

limitordrerbacktestingmarkedsmikrostrukturfillmodellereksekvering
← Alle indlæg