Il close ufficiale in un file azionario sembra un prezzo qualsiasi. Timestamp 16:00:00 Eastern, un numero, pronto da eseguire. I segnali daily lo marcano. I ribilanciamenti lo colpiscono. Un agente di ricerca lo tratterà come una quotazione che stava sul book, in attesa di te.
Il close è un'asta, non una quotazione. È il prezzo di uncross degli ordini on-close che dovevano essere accettati prima di un cutoff. Se il backtest ha eseguito lì senza entrare in quel batch, ha preso un print di cui non avresti fatto parte.
Eseguire alle 16:00 come se l'uncross fosse un market order
La scorciatoia abituale è: calcolare il segnale al close o poco prima, eseguire al close ufficiale, timbrare 16:00. In un martedì tranquillo su AAPL la bugia è di pochi centesimi. Nei giorni che dominano un book di ribilanciamento daily, è l'intero trade.
Alle 16:00:00.000 il closing cross è in corso, o è appena avvenuto. Un ordine marketable che invii in quel momento non entra in quel cross. Finisce in quello che resta: size displayed residua, un odd lot, extended hours su ARCA o Nasdaq. Quel print può distare due centesimi dal close ufficiale, o quaranta basis point, ed è un pool di liquidità diverso. In una reconstitution Russell, a fine mese, o in un venerdì di triple witching il close è spesso una quota a due cifre del volume della giornata. Quella era la liquidità. Tu non c'eri.
Lo abbiamo paper-tradato per sbaglio. Un tweak di parametro è arrivato alle 15:48. Il backtest ha comunque eseguito ogni nome al close ufficiale. L'OMS ha inviato market order ordinari alle 16:00:03 perché nessuno aveva cablato il MOC. Print after-hours, una manciata di reject, e uno shortfall di 19 basis point rispetto al file in un giorno in cui il file diceva che eravamo flat al close. La strategia non si era rotta. Si era rotta la regola di fill.
Penso ancora a 15:49 come a un luogo fisico. Qualcuno sta cambiando un peso. Qualcun altro sta guardando l'orologio. Al cutoff non importa chi di voi ha ragione.
Il MOC è l'ordine che richiede davvero quell'uncross, e nemmeno il MOC è una promessa. Un halt, una pausa LULD, un'asta cancellata, un nome che non ha mai aperto: puoi essere flat alle 16:00 con un on-close working che muore. Il LOC è autorizzato a mancare del tutto. Se l'uncross è $40.12 e il tuo limit è $40.00, non possiedi nulla. Un sacco di backtest contabilizzano comunque il close.
Peggio, alcuni file dei vendor memorizzano un close composito che non è mai stato printato su nessuna venue. Non puoi unirti a un composito. Se la strategia avesse inviato un MOC NYSE, il fill che conta è l'uncross NYSE, nella size che l'asta avrebbe assorbito.
Chiamare close l'ultimo print delle regular hours
Alcune pipeline rifiutano il close ufficiale per principio e prendono l'ultimo print SIP prima delle 16:00, perché almeno quel print "è successo." Su un mega-cap, last e ufficiale spesso distano un centesimo o due e non te ne accorgi. Su un mid-cap l'ultimo print può essere 200 share alle 15:59:51, firmato da chiunque abbia liftato un display residuo. Il close ufficiale due secondi dopo è un uncross da un milione di share a un prezzo diverso.
L'indice, il basket di creazione dell'ETF e ogni ribilanciamento MOC hanno tradato l'uncross. Il tuo backtest ha tradato il residuo. E un last print non arriva con la tua size attaccata. Se quel print è 400 share e il tuo clip è 5,000, non hai ottenuto quel prezzo. Hai ottenuto un timestamp che per caso era last.
Ho visto un file mid-cap in cui last-print contro close ufficiale si è mosso di 28 centesimi in un giovedì di ribilanciamento. Il backtest che usava il last sembrava più "consapevole della microstruttura." Era solo un mercato diverso, più sottile, e assumeva comunque che avremmo potuto essere quelle 200 share.
Far slittare il fill all'open di domani per essere conservativi
Il terzo escamotage compare in code review come commento: non assumere che possiamo tradare il close, quindi esegui al prossimo open. Sembra da adulti. Costruisce un'altra strategia.
Un segnale close-to-close eseguito al prossimo open si è mangiato l'overnight gap. Per molti fattori azionari quel gap è una fetta grande del movimento che pensavi di possedere. Eseguire all'open non rende il backtest cauto. Trasloca il P&L in una sessione che non ti eri proposto di tradare, e ti butta in un'asta di apertura che non hai modellato nemmeno tu.
Sulla carta il disastro è facile da leggere male. Il P&L daily del backtest si allinea ancora con il segnale. Il paper book contiene una notte di gap dell'indice e una mattina di slippage dell'opening cross. Poi la gente discute di implementation shortfall quando la descrizione onesta è che i due sistemi non stanno facendo lo stesso trade.
Ma anche l'open è un'asta. Se hai saltato il cutoff di ieri, non ottieni automaticamente un last pulito alle 9:30. Ottieni la meccanica MOO/LOO, un imbalance e un gap. Chiamare quello un fill conservativo al close nasconde soltanto un secondo cross non modellato sotto un commento virtuoso.
| Fill che hai contabilizzato | Cosa serviva davvero alla venue | Che aspetto ha il disastro |
|---|---|---|
| Close ufficiale, nessun order type | MOC o LOC accettato prima del cutoff di quella venue | Print after-hours, un reject, o un prezzo composito che nessuno ha ospitato |
| Ultimo print SIP prima delle 16:00 | Un trade di cui avresti potuto essere parte, nella tua size | Un residuo da 200 share trattato come fill di un clip |
| Prossimo open come close "più sicuro" | Un modello di opening cross, più l'overnight gap | Una strategia diversa, ancora un'asta, ancora mancata |
La distinzione onesta è piccola. O il contratto di ricerca dice che siamo nel close, nel qual caso l'ordine è on-close, con timestamp precedente alle 15:50 su NYSE o alle 15:55 su Nasdaq, dimensionato sul volume atteso del close, e autorizzato a scadere unfilled se è un LOC. Oppure non siamo nel close, nel qual caso after-hours o next-open è una policy dichiarata con la propria asta, e la curva equity smette di indossare un'etichetta 16:00.
Ora bocciamo un backtest che contabilizza il close ufficiale senza un ordine on-close piazzato dentro il cutoff di quella venue. Ha ucciso alcune curve di segnale daily piuttosto belle. Quelle curve non erano mai eseguibili al prezzo che dichiaravano.
← Tutti gli articoli


