Den officielle close i en aktiefil ligner enhver anden pris. Tidsstempel 16:00:00 Eastern, ét tal, klar til fill. Daglige signaler markerer den. Rebalanceringer rammer den. En research-agent vil behandle den som et quote, der lå på bogen og ventede på dig.
Close er en auktion, ikke et quote. Det er uncross-prisen på on-close-ordrer, der skulle være accepteret inden en cutoff. Hvis backtesten fik fill der uden at være med i det batch, tog den et print, du ikke ville have været en del af.
At fylde 16:00, som om uncross var en market-ordre
Den sædvanlige genvej er: beregn signalet ved eller lige før close, fyld til den officielle close, stemple 16:00. På en stille tirsdag i AAPL er løgnen et par cent. På de dage, der dominerer en daily-rebalance-bog, er det hele handlen.
Kl. 16:00:00.000 kører closing cross, eller er netop kørt. En marketable ordre, du sender på det tidspunkt, går ikke ind i det cross. Den lander i det, der er tilbage: resterende displayed size, et odd lot, extended hours på ARCA eller Nasdaq. Det print kan ligge to cent fra den officielle close, eller fyrre basispoint, og det er en anden likviditetspulje. Ved en Russell-rekonstitution, en månedsultimo eller en triple-witching-fredag udgør close ofte en tocifret andel af dagens volumen. Det var likviditeten. Du var ikke med i den.
Vi paper-tradede dette ved et uheld. En parametertweak landede kl. 15:48. Backtesten fyldte stadig hvert navn til den officielle close. OMS'en sendte almindelige market-ordrer kl. 16:00:03, fordi ingen havde wired MOC. After-hours-prints, en håndfuld rejects og et shortfall på 19 basispoint versus filen på en dag, hvor filen sagde, at vi var flat til close. Strategien var ikke knækket. Fill-reglen var.
Jeg tænker stadig på 15:49 som et fysisk sted. Nogen ændrer en vægt. En anden kigger på uret. Cutoffen er ligeglad med, hvem af jer der har ret.
MOC er den ordre, der faktisk anmoder om den uncross, og selv MOC er ikke et løfte. Et halt, en LULD-pause, en aflyst auktion, et navn der aldrig åbnede: du kan være flat kl. 16:00 med en working on-close, der dør. LOC har lov til at misse helt. Hvis uncross er $40.12 og din limit er $40.00, ejer du ingenting. Masser af backtests booker alligevel close.
Værre endnu: nogle vendor-filer gemmer en composite close, der aldrig printede på nogen enkelt venue. Du kan ikke joine en composite. Hvis strategien ville have sendt NYSE MOC, er det fill, der tæller, NYSE-uncross, i den størrelse auktionen ville have absorberet.
At kalde det sidste regular-hours-print for close
Nogle pipelines afviser den officielle close af princip og tager det sidste SIP-print før 16:00, fordi det print i det mindste "skete." På en mega-cap ligger last og official ofte en eller to cent fra hinanden, og du opdager det ikke. På en mid-cap kan det sidste print være 200 aktier kl. 15:59:51, signeret af den, der løftede en resterende display. Den officielle close to sekunder senere er en uncross på en million aktier til en anden pris.
Indekset, ETF-creation-kurven og hver MOC-rebalance handlede uncross. Din backtest handlede resten. Og et last-print kommer ikke med din størrelse vedhæftet. Hvis det print er 400 aktier, og dit clip er 5,000, fik du ikke den pris. Du fik et tidsstempel, der tilfældigvis var last.
Jeg har set en mid-cap-fil, hvor last-print versus officiel close flyttede 28 cent på en rebalance-torsdag. Backtesten, der brugte last, så mere "mikrostruktur-bevidst" ud. Det var bare et andet, tyndere marked, og den antog stadig, at vi kunne have været de 200 aktier.
At rykke fill til morgendagens open for at være konservativ
Det tredje smuthul dukker op i code review som en kommentar: antag ikke, at vi kan handle close, så fyld næste open. Det lyder voksent. Det bygger en anden strategi.
Et close-to-close-signal eksekveret til næste open har spist overnight-gappet. For mange aktiefaktorer er det gap en stor del af den bevægelse, du troede, du ejede. At fylde open gør ikke backtesten forsigtig. Det flytter P&L ind i en session, du ikke havde sat dig for at handle, og det smider dig ind i en åbningsauktion, du heller ikke modellerede.
På papiret er vraget nemt at fejllæse. Backtestens daglige P&L ligger stadig på linje med signalet. Paper-bogen rummer en nat med indeks-gap og en morgen med opening-cross-slippage. Folk argumenterer så om implementation shortfall, når den ærlige beskrivelse er, at de to systemer ikke laver den samme handel.
Men open er også en auktion. Hvis du missede gårsdagens cutoff, får du ikke automatisk et rent 9:30-last. Du får MOO/LOO-mekanik, en imbalance og et gap. At kalde det en konservativ close-fill skjuler bare et andet umodelleret cross under en dydig kommentar.
| Den fill, du bookede | Hvad venue'et faktisk krævede | Sådan ser vraget ud |
|---|---|---|
| Officiel close, ingen ordretype | MOC eller LOC accepteret inden den venues cutoff | After-hours-print, et reject eller en composite-pris, ingen hostede |
| Sidste SIP-print før 16:00 | En handel, du kunne have været, i din størrelse | En leftover på 200 aktier behandlet som et clip-fill |
| Næste open som en "sikrere" close | En opening-cross-model plus overnight-gappet | En anden strategi, stadig en auktion, stadig missede |
Det ærlige skel er lille. Enten siger research-kontrakten, at vi er i close, og i så fald er ordren on-close, tidsstemplet før 15:50 på NYSE eller 15:55 på Nasdaq, dimensioneret efter forventet close-volumen og tilladt at udløbe ufyldt, hvis det er en LOC. Eller vi er ikke i close, og i så fald er after-hours eller next-open en navngiven politik med sin egen auktion, og equity-kurven holder op med at bære et 16:00-label.
Vi underkender nu en backtest, der booker den officielle close uden en on-close-ordre, der sidder inden for cutoff for den venue. Det har slået nogle pæne daily-signal-kurver ihjel. De kurver var aldrig eksekverbare til den pris, de hævdede.
← Alle indlæg


