Cos'è la closing auction e il closing cross
Scopri come l'asta di chiusura stabilisce il prezzo ufficiale tramite il closing cross e come gli ordini market-on-close determinano il volume maggiore.
L'asta di chiusura (definita Nasdaq come closing cross) è un'unica grande operazione incrociata alle 16:00 orario Eastern che stabilisce il prezzo ufficiale di chiusura di ogni titolo. Invece di incrociare compratori e venditori un ordine alla volta, la borsa di quotazione raccoglie gli ordini di chiusura durante tutto il pomeriggio e incrocia l'intero pool a un unico prezzo, in un'unica rilevazione — il termine dell'asta di apertura che avvia la giornata — un singolo record di operazione che, per i singoli titoli, rappresenta regolarmente la più grande operazione dell'intera giornata. Ogni dato presente in questa pagina è misurato tramite il consolidated tape — il registro pubblico unificato di ogni operazione azionaria statunitense — con la relativa query SQL associata a ogni pannello.
Cos'è la closing auction? Una definizione semplice
Per la maggior parte della sessione, un titolo viene scambiato in modo continuo: gli ordini arrivano, vengono abbinati e registrati uno alla volta — per i titoli più attivi, migliaia di volte al minuto. La closing auction è un meccanismo differente sulla stessa rilevazione. Nella fase finale della giornata, la borsa di quotazione raggruppa tutti gli ordini contrassegnati per la chiusura, calcola l'unico prezzo che permette l'abbinamento del maggior numero di azioni e esegue l'intero gruppo in un'unica transazione alle 16:00 ET.
Viene registrata sulla rilevazione pubblica come qualsiasi altro trade, con un'etichetta specifica — condizione di vendita 8, "Closing Prints" — e il suo prezzo diventa il prezzo di chiusura ufficiale quotato ovunque quella sera stessa. Il mercato continuo e l'auction non sono due mercati distinti; sono un'unica rilevazione, e l'auction ne rappresenta una singola e enorme riga.
Perché esiste l'asta di chiusura?
La chiusura rappresenta il prezzo di riferimento del mercato. I fondi comuni calcolano il proprio NAV giornaliero basandosi sui prezzi ufficiali di chiusura, i provider di indici calcolano i benchmark partendo da essi e le desk istituzionali vengono valutate rispetto a questi valori, insieme a metriche come il VWAP, il prezzo medio ponderato per volume. Un investitore che opera al prezzo di chiusura segue esattamente tutti questi riferimenti; l'asta è il meccanismo che stabilisce tale prezzo: per la maggior parte degli investitori, è l'unico venue in cui l'esecuzione al prezzo di chiusura è garantita.
Questa attrazione genera un effetto cumulativo. Gli ordini di grandi dimensioni si accumulano su entrambi i lati; un cross li pareggia alla massima dimensione, permettendo a un ordine massiccio di essere eseguito a un prezzo unico invece di scivolare attraverso il bid-ask spread del mercato continuo, dove i market makers forniscono quotazioni su entrambi i lati per tutta la giornata.
L'auction di chiusura sul tape reale: un singolo print rispetto al trade mediano
Il pannello sottostante analizza il 2 luglio 2026 — l'ultima sessione prima del weekend festivo del 4 luglio, una giornata di trading completa e verificata (i dati sono nel pannello successivo) — e confronta l'auction di chiusura di SPY, AAPL e NVDA con tutti gli altri dati del loro tape. Il "volume matched" indica le azioni che il conteggio contabile del tape attribuisce al volume consolidato; le ri-trasmissioni amministrative (sale conditions 15, 16 e 38) sono escluse da ogni denominatore, in linea con il nostro deep-dive sulla microstruttura tick-by-tick; il pannello sottostante con il dizionario dei codici ne è la prova.
L'esatto SQL dietro ogni numero
SELECT
ticker,
round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS auction_shares_m,
formatDateTime(toTimeZone(argMaxIf(sip_timestamp, size, has(conditions, 8)), 'America/New_York'), '%H:%i:%S') AS auction_time_et,
countIf(has(conditions, 8)) AS auction_print_count,
countIf(has(conditions, 8) AND formatDateTime(toTimeZone(sip_timestamp, 'America/New_York'), '%H:%i:%S') = '16:00:00') AS auction_prints_at_1600,
round(quantileDeterministicIf(0.5)(toFloat64(size), toUInt64(sip_timestamp), NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))) AS median_trade_shares,
round(toFloat64(maxIf(size, has(conditions, 8))) / quantileDeterministicIf(0.5)(toFloat64(size), toUInt64(sip_timestamp), NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38])) / 1000) AS auction_vs_median_thousand_x,
round(100 * toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))), 1) AS auction_pct_of_volume,
round(toFloat64(maxIf(size, NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))) / 1e6, 2) AS biggest_other_trade_m,
round(toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(maxIf(size, NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))), 2) AS auction_vs_biggest_other_x
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA')
AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA'], ticker)Leggere prima la riga di AAPL. Il trade mediano di AAPL quel giorno è stato di 20 azioni. L'auction di chiusura ha incrociato 10.89 milioni di azioni in un singolo print — circa 545 mila volte il mediano — rappresentando il 14.4% di ogni azione AAPL scambiata durante la giornata, inclusi gli extended hours. Il divario tra l'auction e il mediano di NVDA è ancora più ampio — un print mediano di 5 azioni contro un cross da 17.38 milioni di azioni, ovvero 3475 mila volte il suo mediano — rappresentando il 12.2% del suo volume giornaliero. Ogni titolo mostra esattamente un print di auction — la colonna auction_print_count ne è la prova — registrato alle 16:00:00 ET con precisione al secondo (auction_prints_at_1600 indica il timing esatto).
L'affermazione nel titolo è supportata dai dati. Per entrambi i singoli titoli, il cross è stato il trade più grande dell'intera giornata: il print continuo più grande di AAPL è stato di 1.8 milioni di azioni, l'auction era 6.05 volte superiore; il più grande di NVDA è stato di 5.47 milioni, il cross era 3.18 volte più grande. SPY è l'eccezione: un singolo block print da 2.5 milioni di azioni ha superato il suo cross da 1.65 milioni di azioni — in un ETF con volumi elevati, un singolo block trade può superare l'auction. SPY mostra anche la quota di auction più piccola tra i tre con il 2.9% — eppure anche il suo cross è stato 66 mila volte superiore al suo trade mediano di 25 azioni.
La chiusura ufficiale è l'asta, non l'ultimo tick
Un'ipotesi comune è che il prezzo di chiusura sia semplicemente l'ultimo trade prima della campana. I dati del tape smentiscono questa idea. Il report di una riga riportato sotto riguarda AAPL per il 2 luglio 2026, con i controlli di sessione per ogni data indicata in questo post: SPY ha registrato esattamente 390, 390 e 390 candele minute della sessione regolare il 16 giugno, il 30 giugno e il 2 luglio — tre sessioni complete dalle 9:30 alle 16:00, verificate e non ipotizzate.
L'esatto SQL dietro ogni numero
WITH
(
SELECT countIf(window_start >= toDateTime('2026-06-16 09:30:00', 'America/New_York') AND window_start < toDateTime('2026-06-16 16:00:00', 'America/New_York'))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-16 00:00:00', 'America/New_York') AND window_start < toDateTime('2026-06-17 00:00:00', 'America/New_York')
) AS bars_jun16,
(
SELECT countIf(window_start >= toDateTime('2026-06-30 09:30:00', 'America/New_York') AND window_start < toDateTime('2026-06-30 16:00:00', 'America/New_York'))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-30 00:00:00', 'America/New_York') AND window_start < toDateTime('2026-07-01 00:00:00', 'America/New_York')
) AS bars_jun30,
(
SELECT countIf(window_start >= toDateTime('2026-07-02 09:30:00', 'America/New_York') AND window_start < toDateTime('2026-07-02 16:00:00', 'America/New_York'))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-07-02 00:00:00', 'America/New_York') AND window_start < toDateTime('2026-07-03 00:00:00', 'America/New_York')
) AS bars_jul02,
(
SELECT maxIf(sip_timestamp, has(conditions, 8))
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
) AS auction_ts,
(
SELECT argMaxIf(exchange, size, has(conditions, 8))
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
) AS listing_exchange
SELECT
bars_jun16 AS spy_session_bars_jun16,
bars_jun30 AS spy_session_bars_jun30,
bars_jul02 AS spy_session_bars_jul02,
countIf(has(conditions, 8)) AS auction_print_count,
toFloat64(argMaxIf(price, size, has(conditions, 8))) AS auction_price,
formatDateTime(toTimeZone(auction_ts, 'America/New_York'), '%H:%i:%S.%f') AS auction_et,
toFloat64(argMaxIf(price, (sip_timestamp, sequence_number), sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))) AS last_tick_price,
formatDateTime(toTimeZone(maxIf(sip_timestamp, sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38])), 'America/New_York'), '%H:%i:%S.%f') AS last_tick_et,
round((toFloat64(argMaxIf(price, size, has(conditions, 8))) - toFloat64(argMaxIf(price, (sip_timestamp, sequence_number), sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38])))) * 100, 1) AS auction_minus_last_tick_cents,
countIf(has(conditions, 15)) AS official_close_reprints,
countIf(has(conditions, 15) AND exchange = listing_exchange) AS listing_venue_reprints,
round(toFloat64(anyIf(price, has(conditions, 15) AND exchange = listing_exchange)) - toFloat64(argMaxIf(price, size, has(conditions, 8))), 4) AS listing_reprint_price_difference
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'Il trading continuo prosegue fino al momento dell'esecuzione dell'asta — in questo giorno, una frazione di secondo dopo le 16:00:00. L'ultimo trade continuo di AAPL per il conteggio dei volumi prima dell'asta è stato registrato alle 16:00:00.215052 ET a $308.1; alle 16:00:00.373202 ET l'asta è stata eseguita a $308.63 — 53 centesimi sopra quel tick finale. La chiusura ufficiale di quella sera è stata il prezzo dell'asta, non quello dell'ultimo tick. Il tape ha poi trasmesso 2 messaggi "Market Center Official Close" (condizione di vendita 15) — ciascuno riporta il record del proprio prezzo di chiusura ufficiale, non è una ri-trasmissione della chiusura consolidata; le varie sedi possono riportare prezzi differenti. Il messaggio della borsa di quotazione coincide esattamente con il prezzo dell'asta (la differenza misura 0), e nessuno di questi messaggi aggiunge volumi. Il trading continua nella sessione after-hours per altre quattro ore; nessuno di quei prezzi modifica la chiusura ufficiale.
Come funziona l'asta di chiusura? Ordini market-on-close e limit-on-close
Due tipologie specifiche di ordini di chiusura alimentano l'asta, insieme agli ordini limit ordinari già presenti nel book continuo, che possono partecipare al cross:
- Un ordine market-on-close (MOC) viene eseguito al prezzo stabilito dall'asta. Non è presente alcuna protezione del prezzo; il compromesso è l'esecuzione quasi garantita alla chiusura ufficiale (se un titolo viene sospeso prima della campana, il cross potrebbe non avvenire e gli ordini di chiusura potrebbero non essere eseguiti).
- Un ordine limit-on-close (LOC) partecipa all'asta solo se il prezzo dell'asta è pari al suo limite o migliore. È presente la protezione del prezzo, con il rischio di non partecipare affatto al cross.
Entrambi rimangono in borsa fino al cross; nessuno dei due viene scambiato nel mercato continuo durante l'attesa. Le borse smettono di accettare o modificare gli ordini di chiusura negli ultimi minuti (i termini esatti variano a seconda della borsa e cambiano nel tempo), e la maggior parte dei broker impone scadenze proprie più anticipate. Alla campana, il book è bloccato e un unico prezzo esegue tutte le operazioni.
Cos'è un imbalance dell'asta di chiusura?
Prima del cross, le borse pubblicano i dati sull'imbalance: il numero di azioni in coda per l'acquisto rispetto alla vendita alla chiusura, insieme a un prezzo indicativo al quale il cross verrebbe eseguito in quel momento. Un buy imbalance di un milione di azioni significa che, al momento, ci sono un milione di azioni in acquisto alla chiusura non accoppiate. I trader del mercato continuo monitorano questi flussi e si posizionano in base ad essi negli ultimi minuti.
I giorni di fine trimestre amplificano l'asta di chiusura
Alcune date del calendario concentrano una quota maggiore di scambi nell'asta di chiusura. Il rebalancing degli indici, le scadenze e i flussi dei fondi di fine mese e di fine trimestre dipendono dai prezzi ufficiali di chiusura; tali flussi convergono nell'asta. Il 30 giugno 2026 è stato l'ultimo giorno di trading del secondo trimestre. La tabella seguente confronta l'asta di chiusura di ogni ticker in quella data con una sessione ordinaria di metà mese, il 16 giugno — entrambe sessioni complete verificate nel report sopra.
L'esatto SQL dietro ogni numero
SELECT
ticker,
countIf(has(conditions, 8) AND sip_timestamp < '2026-06-17 00:00:00') AS jun16_auction_print_count,
countIf(has(conditions, 8) AND sip_timestamp >= '2026-06-30 00:00:00') AS jun30_auction_print_count,
round(toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp < '2026-06-17 00:00:00')) / 1e6, 2) AS jun16_auction_shares_m,
round(toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp >= '2026-06-30 00:00:00')) / 1e6, 2) AS jun30_auction_shares_m,
round(toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp >= '2026-06-30 00:00:00')) / toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp < '2026-06-17 00:00:00')), 1) AS jun30_vs_jun16_x,
round(100 * toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp < '2026-06-17 00:00:00')) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]) AND sip_timestamp < '2026-06-17 00:00:00')), 1) AS jun16_auction_pct,
round(100 * toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp >= '2026-06-30 00:00:00')) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]) AND sip_timestamp >= '2026-06-30 00:00:00')), 1) AS jun30_auction_pct
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA')
AND ((sip_timestamp >= '2026-06-16 00:00:00' AND sip_timestamp < '2026-06-17 00:00:00')
OR (sip_timestamp >= '2026-06-30 00:00:00' AND sip_timestamp < '2026-07-01 00:00:00'))
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA'], ticker)L'asta di fine trimestre di AAPL ha superato le 21.71 milioni di azioni — 2.9 volte la sua asta del 16 giugno da 7.49 milioni — e quel singolo dato ha rappresentato il 33.2% del volume totale giornaliero di AAPL. Un terzo del trading di una sessione in un'unica transazione, a un unico prezzo. L'asta di NVDA è cresciuta da 23.47 milioni a 41.14 milioni di azioni, raggiungendo il 24.7% del suo volume giornaliero. Al 2 luglio, ogni ticker ha registrato esattamente un'asta per sessione — le due colonne del conteggio delle transazioni sono la prova. Questo schema di volumi è ciò che i filtri di volume relativo servono a segnalare. La quota dell'asta di SPY è rimasta contenuta in entrambe le date (2.7% e 3.6%). Per una panoramica completa della sessione, consultare il nostro riepilogo di mercato del 30 giugno 2026; per un'anomalia dei dati della stessa settimana di fine trimestre, la fine del trimestre che non è stata registrata.
Come identificare il print dell'auction di chiusura? Codici sale condition
Quale print appartiene all'auction? Lo indica il tape. Ogni trade include codici sale-condition, e il relativo dizionario è disponibile nello stesso database — la ricevuta qui sotto è una query, non un'affermazione.
L'esatto SQL dietro ogni numero
SELECT
name,
id,
toUInt8(JSONExtractBool(update_rules, 'consolidated', 'updates_volume')) AS counts_toward_volume
FROM global_markets.stocks_condition_codes
WHERE asset_class = 'stocks' AND type = 'sale_condition' AND id IN (8, 15, 16, 38)
ORDER BY idIl codice 8, "Closing Prints", identifica il print dell'auction stesso, e il dizionario indica che contribuisce al volume consolidato (counts_toward_volume = 1). Il codice 15, "Market Center Official Close", rappresenta il report amministrativo di ogni market center relativo alla propria chiusura ufficiale; il dizionario lo classifica come non aggiornante del volume (0). I codici 16 e 38 — "Market Center Official Open" e "Corrected Consolidated Close (per listing market)" — sono la stessa tipologia di contabilità per l'apertura e per le correzioni, analogamente esclusi (0 e 0). Ogni valore di auction sopra riportato filtra tramite questi codici invece che tramite l'orario, e ogni denominatore del volume esclude i tre codici amministrativi.
FAQ
A che ora si svolge l'auction di chiusura?
Pochi istanti dopo le 16:00 ET, al termine della sessione regolare; nei giorni con volumi eccezionalmente elevati, l'esecuzione può avvenire più tardi. Il 2 luglio 2026, l'auction per SPY, AAPL e NVDA è stata registrata esattamente alle 16:00:00 ET. Nei giorni con chiusura anticipata prevista, l'auction si svolge invece alle 13:00 ET; consultare festività e chiusure anticipate per il calendario.
Cos'è un ordine market-on-close (MOC)?
Un ordine di acquisto o vendita al prezzo stabilito dall'auction di chiusura. La partecipazione alla chiusura ufficiale è quasi certa (salvo sospensioni prima della campana) e non prevede controllo sul prezzo. Un ordine limit-on-close (LOC) aggiunge un prezzo limite e partecipa all'auction solo se il prezzo di chiusura è pari o migliore di tale limite.
Il prezzo di chiusura corrisponde all'ultima operazione della giornata?
No. La chiusura ufficiale è determinata dal prezzo dell'auction. Il 2 luglio 2026, l'ultima operazione continua di AAPL prima dell'auction è stata di $308.1 e l'auction ha registrato $308.63, con uno scarto di 53 centesimi. Anche le operazioni nella sessione after-hours non modificano la chiusura ufficiale.
Perché il volume di trading è così elevato alla chiusura?
Gli index fund, i fondi comuni e le istituzioni con benchmark di riferimento operano ai prezzi ufficiali di chiusura; i loro ordini si accumulano in un'unica auction. Il 2 luglio 2026, una singola auction ha coperto il 14.4% del volume totale di AAPL per la giornata; il 30 giugno, alla fine del trimestre, lo stesso valore ha raggiunto il 33.2%.
Anche gli ETF hanno un'auction di chiusura?
Sì: ogni azione quotata e ogni ETF svolge la propria auction sul relativo exchange di quotazione. L'auction rappresenta solitamente una quota minore del volume giornaliero di un ETF: l'auction di SPY del 2 luglio 2026 è stata pari al 2.9% del suo volume totale, contro il 14.4% di AAPL.
Ogni dato sopra riportato deriva da una query salvata e verificabile; espandere la SQL sotto ogni pannello per l'audit. Per analizzare l'auction di chiusura di un ticker monitorato, porre le stesse domande in inglese sul terminale Strasmore.