12. november 2026 · eksekvering

Backtesten din fylte til den offisielle sluttkursen. Du var aldri med i auksjonen.

Backtesten din fylte til den offisielle sluttkursen. Du var aldri med i auksjonen.

Den offisielle sluttkursen i en aksjefil ser ut som hvilken som helst annen kurs. Tidsstempel 16:00:00 Eastern, ett tall, klar til å fylles. Daglige signaler merker den. Rebalanseringer treffer den. En forskningsagent vil behandle den som et sitat som lå i boken og ventet på deg.

Sluttkursen er en auksjon, ikke et sitat. Det er uncross-kursen til on-close-ordrer som måtte være akseptert før en cutoff. Hvis backtesten fylte der uten å bli med i den batchen, tok den en print du ikke ville ha vært en del av.

Å fylle 16:00 som om uncrossen var en markedordre

Den vanlige snarveien er: beregn signalet ved eller like før slutt, fyll til den offisielle sluttkursen, stemple 16:00. På en stille tirsdag i AAPL er løgnen noen cent. På dagene som dominerer en daglig-rebalanseringsbok, er det hele handelen.

Kl. 16:00:00.000 kjører sluttkrysset, eller har nettopp kjørt. En markedbar ordre du sender da går ikke inn i det krysset. Den lander i det som er igjen: rest av vist størrelse, en odd lot, utvidet handel på ARCA eller Nasdaq. Den printen kan ligge to cent unna den offisielle sluttkursen, eller førti basispunkter, og det er et annet likviditetspool. På en Russell-rekonstitusjon, et månedsslutt eller en triple-witching-fredag er sluttauksjonen ofte en tosifret andel av dagens volum. Det var likviditeten. Du var ikke med i den.

3:50NYSE on-close-cutoff (ET)
3:55Nasdaq closing-cross-cutoff (ET)
~10%typisk large-cap-volum i sluttauksjonen

Vi paperhandlet dette ved et uhell. En parameterjustering landet på 15:48. Backtesten fylte likevel hvert navn til den offisielle sluttkursen. OMS-en sendte vanlige markedordrer kl. 16:00:03 fordi ingen hadde koblet inn MOC. After-hours-prints, en håndfull avvisninger, og et avvik på 19 basispunkter mot filen på en dag filen sa vi var flat mot slutt. Strategien hadde ikke knekt. Fyllregelen hadde.

Jeg tenker fortsatt på 15:49 som et fysisk sted. Noen endrer en vekt. Noen andre følger med på klokken. Cutoffen bryr seg ikke om hvem av dere som har rett.

MOC er ordren som faktisk ber om den uncrossen, og selv MOC er ikke et løfte. Et halt, en LULD-pause, en kansellert auksjon, et navn som aldri åpnet: du kan være flat kl. 16:00 med en aktiv on-close som dør. LOC har lov til å bomme helt. Hvis uncrossen er $40.12 og limitten din er $40.00, eier du ingenting. Mange backtester booker likevel sluttkursen.

Verre: noen leverandørfiler lagrer en composite-sluttkurs som aldri ble printet på noen enkelt handelsplass. Du kan ikke bli med i en composite. Hvis strategien ville ha sendt NYSE MOC, er fyllet som teller NYSE-uncrossen, i den størrelsen auksjonen ville ha absorbert.

Å kalle den siste printen i ordinær handel for sluttkursen

Noen pipelines avviser den offisielle sluttkursen på prinsipp og tar den siste SIP-printen før 16:00, fordi den printen i det minste «skjedde». På en mega-cap ligger siste og offisiell ofte en eller to cent fra hverandre, og du merker det ikke. På en mid-cap kan den siste printen være 200 aksjer kl. 15:59:51, signert av den som løftet en restvisning. Den offisielle sluttkursen to sekunder senere er en uncross på en million aksjer til en annen kurs.

Indeksen, ETF-opprettelseskurven og hver MOC-rebalansering handlet uncrossen. Backtesten din handlet resten. Og en siste print kommer ikke med størrelsen din vedlagt. Hvis den printen er 400 aksjer og klippet ditt er 5,000, fikk du ikke den kursen. Du fikk et tidsstempel som tilfeldigvis var sist.

Jeg har sett en mid-cap-fil der siste-print versus offisiell sluttkurs flyttet 28 cent på en rebalanseringstorsdag. Backtesten som brukte siste print så mer «mikrostrukturbevisst» ut. Det var bare et annet, tynnere marked, og den antok fortsatt at vi kunne ha vært de 200 aksjene.

Å skyve fyllet til morgendagens åpning for å være konservativ

Den tredje unnvikelsen dukker opp i kodegjennomgang som en kommentar: ikke anta at vi kan handle slutt, så fyll neste åpning. Det høres voksent ut. Det bygger en annen strategi.

Et slutt-til-slutt-signal eksekvert på neste åpning har spist overnattingsgappet. For mange aksjefaktorer er det gappet en stor del av bevegelsen du trodde du eide. Å fylle åpningen gjør ikke backtesten forsiktig. Det flytter P&L inn i en sesjon du ikke satte deg fore å handle, og det kaster deg inn i en åpningsauksjon du heller ikke modellerte.

På papiret er vraket lett å lese feil. Backtestens daglige P&L stemmer fortsatt med signalet. Papirboken holder en natt med indeksgap og en morgen med opening-cross-slippage. Folk argumenterer så om implementation shortfall når den ærlige beskrivelsen er at de to systemene ikke gjør den samme handelen.

Men åpningen er også en auksjon. Hvis du misset gårsdagens cutoff, får du ikke automatisk en ren 9:30-last. Du får MOO/LOO-mekanikk, en ubalanse og et gap. Å kalle det et konservativt sluttfyll skjuler bare et annet umodellert kryss under en dydig kommentar.

Fyllet du booketDet handelsplassen faktisk krevdeSlik ser vraket ut
Offisiell sluttkurs, ingen ordertypeMOC eller LOC akseptert før den handelsplassens cutoffAfter-hours-print, en avvisning eller en composite-kurs ingen hostet
Siste SIP-print før 16:00En handel du kunne ha vært, i din størrelseEn rest på 200 aksjer behandlet som et klippfyll
Neste åpning som en «tryggere» sluttEn opening-cross-modell, pluss overnattingsgappetEn annen strategi, fortsatt en auksjon, fortsatt misset
Hvis papirkontoen ikke kan sende MOC eller LOC, får ikke backtesten den offisielle sluttkursen. Endre fyllet. Ikke tilnærm uncrossen med en markedordre kl. 16:00.

Det ærlige skillet er lite. Enten sier forskningskontrakten at vi er med i sluttauksjonen, og da er ordren on-close, tidsstemplet før 15:50 på NYSE eller 15:55 på Nasdaq, dimensjonert mot forventet sluttvolum, og tillatt å utløpe uoppfylt hvis det er en LOC. Eller vi er ikke med i sluttauksjonen, og da er after-hours eller neste åpning en navngitt policy med sin egen auksjon, og equity-kurven slutter å bære en 16:00-etikett.

Vi feiler nå en backtest som booker den offisielle sluttkursen uten at en on-close-ordre sitter innenfor cutoffen for den handelsplassen. Det har drept noen pent utseende dagsignalkurver. De kurvene var aldri eksekverbare til kursen de hevdet.

backtestingmarkedsmikrostrukturaksjersluttauksjoneksekvering
← Alle innlegg