Strasmore Research
Formazione Matt ConnorDi Matt Connor · Aggiornato 2026-08-02

Asta di apertura: come si apre un titolo

Cos’è l’asta di apertura, come un unico cross alle 9:30 Eastern fissa il prezzo ufficiale di ogni titolo e perché può differire dal primo trade della giornata.

L’asta di apertura è un’unica operazione incrociata alle 9:30 Eastern che determina il prezzo ufficiale di apertura di ogni titolo. Prima della campanella, la borsa di quotazione raccoglie tutti gli ordini destinati all’apertura, calcola il prezzo al quale si abbina il maggior numero di azioni ed esegue l’intero insieme in un unico print, il corrispettivo mattutino dell’asta di chiusura che conclude la giornata. Tutti i dati numerici riportati di seguito provengono dal consolidated tape, il registro pubblico di ogni operazione su azioni statunitensi, con la query SQL esatta allegata a ciascun pannello.

Che cos’è l’asta di apertura? Una definizione in linguaggio semplice

Le borse non si attivano semplicemente alle 9:30 abbinando gli ordini uno alla volta. Durante la notte e nella fase pre-market, la borsa di quotazione accumula gli ordini destinati all’apertura, oltre agli ordini limit resting idonei presenti nel book. Al suono della campanella, incrocia l’intero insieme in un’unica transazione a un solo prezzo. Quel print ha una propria etichetta della condizione di vendita (codice 17, "Market Center Opening Trade", ricevute nell’ultimo pannello), e il suo prezzo diventa l’official open: l’“open” nel registro dei prezzi della giornata, il riferimento alla base di “gapped up” e “gapped down”. L’asta e il mercato continuo fanno parte dello stesso tape; ciò che cambia all’apertura è il meccanismo.

L’asta di apertura sul tape reale: SPY, AAPL, NVDA

Il pannello seguente prende il 2 luglio 2026, una seduta completa verificata (la ricevuta è nel pannello successivo), e rapporta l’incrocio di apertura di SPY, AAPL e NVDA al resto della giornata. Il “matched volume” conta solo le azioni che il tape aggiunge al volume consolidato; i messaggi amministrativi (sale conditions 15, 16, 38) sono esclusi da ogni denominatore.

QueryL'asta di apertura rispetto al resto della giornata: SPY, AAPL, NVDA il 2 luglio 2026
tickerazioni d’asta kprezzo d’astaora d’asta ETnumero di eseguiti di aperturaeseguiti di apertura alle 09:30azioni del più piccolo eseguito di aperturaazioni dei primi 5 minuti kasta % dei primi 5 minutiasta % della giornataazioni d’asta di chiusura mchiusura vs apertura x
SPY122747.2209:30:0022412959.40.211.6513.5
AAPL323.3294.109:30:0011323338185617.40.4310.8933.7
NVDA690197.1209:30:0011690026500613.80.4817.3825.2
L'esatto SQL dietro ogni numero
SELECT
    ticker,
    round(toFloat64(maxIf(size, has(conditions, 17))) / 1e3, 1) AS auction_shares_k,
    toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17))) AS auction_price,
    formatDateTime(toTimeZone(argMaxIf(sip_timestamp, (size, sip_timestamp), has(conditions, 17)), 'America/New_York'), '%H:%i:%S') AS auction_time_et,
    countIf(has(conditions, 17)) AS opening_print_count,
    countIf(has(conditions, 17) AND formatDateTime(toTimeZone(sip_timestamp, 'America/New_York'), '%H:%i:%S') = '09:30:00') AS open_prints_at_0930,
    minIf(size, has(conditions, 17)) AS smallest_open_print_shares,
    round(toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]) AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) >= 570 AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) < 575)) / 1e3) AS first5_shares_k,
    round(100 * toFloat64(maxIf(size, has(conditions, 17))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]) AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) >= 570 AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) < 575)), 1) AS auction_pct_of_first5,
    round(100 * toFloat64(maxIf(size, has(conditions, 17))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))), 2) AS auction_pct_of_day,
    round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS closing_auction_shares_m,
    round(toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(maxIf(size, has(conditions, 17))), 1) AS close_vs_open_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)
Provalo tu stesso

Leggete prima la riga di AAPL: un incrocio di apertura di 323.3 migliaia di azioni a $294.1, con timestamp alle 09:30:00 ET. L’incrocio di NVDA ha interessato 690 migliaia di azioni, quello di SPY 122 migliaia. Il solo incrocio rappresentava 17.4% di tutte le azioni AAPL abbinate nei primi cinque minuti della seduta (1856 migliaia di azioni), 13.8% per NVDA e 9.4% per SPY; tuttavia, rispetto alle azioni scambiate nell’intera giornata, i valori erano appena 0.43%, 0.48% e 0.21%: meno della metà dell’uno per cento.

Le ultime due colonne mostrano il confronto: lo closing cross di AAPL, nello stesso giorno, ha abbinato 10.89 milioni di azioni, 33.7 volte il volume dell’apertura; quello di NVDA è stato 25.2 volte maggiore, quello di SPY 13.5 volte. I fondi indicizzati e i desk che operano in base ai benchmark effettuano le transazioni ai prezzi ufficiali di chiusura, e questo flusso si concentra nell’incrocio delle 16:00; al mattino non esiste un equivalente. L’asta di chiusura è la transazione più grande della giornata; l’asta di apertura è il punto in cui inizia ufficialmente la seduta.

Perché l’apertura ufficiale può differire dal primo trade della giornata?

Quando parte l’asta, il titolo viene solitamente scambiato da ore. La negoziazione pre-market inizia già alle 4:00 a.m. ET, ma nessuno di questi prints determina l’apertura ufficiale. La ricevuta a una riga qui sotto copre AAPL dall’1 al 2 luglio 2026 e si apre con un controllo della sessione: il 2 luglio SPY ha registrato esattamente 390 barre minuto della sessione regolare, una sessione completa verificata, non presunta.

QueryIl resoconto: l'asta di apertura di AAPL rispetto a tutto ciò che ha scambiato prima, 1–2 luglio 2026
barre della sessione SPY 2 luglionumero di eseguiti di chiusura del 1° luglioprezzo di chiusura precedentenumero di eseguiti di aperturaprezzo d’astaasta ETgap overnight %primo scambio ETprezzo del primo scambioscambi prima dell’apertura ufficialescambi da campanella a crossmessaggi di apertura ufficialemessaggi di apertura della sede di quotazionedifferenza di prezzo del messaggio di apertura della quotazione
3901294.381294.109:30:00.491313-0.104:00:00296.115832173210
L'esatto SQL dietro ogni numero
WITH
    (
        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 argMax(sip_timestamp, (size, sip_timestamp))
        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' AND has(conditions, 17)
    ) AS auction_ts,
    (
        SELECT argMax(exchange, (size, sip_timestamp))
        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' AND has(conditions, 17)
    ) AS listing_exchange
SELECT
    bars_jul02 AS spy_session_bars_jul02,
    countIf(has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00') AS jul01_close_print_count,
    toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00')) AS prior_close_price,
    countIf(has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00') AS opening_print_count,
    toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00')) AS auction_price,
    formatDateTime(toTimeZone(auction_ts, 'America/New_York'), '%H:%i:%S.%f') AS auction_et,
    round(100 * (toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00')) - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00'))) / toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00')), 2) AS overnight_gap_pct,
    formatDateTime(toTimeZone(minIf(sip_timestamp, sip_timestamp >= '2026-07-02 00:00:00' AND NOT hasAny(conditions, [15, 16, 38])), 'America/New_York'), '%H:%i:%S') AS first_trade_et,
    toFloat64(argMinIf(price, (sip_timestamp, sequence_number), sip_timestamp >= '2026-07-02 00:00:00' AND NOT hasAny(conditions, [15, 16, 38]))) AS first_trade_price,
    countIf(sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < auction_ts AND NOT hasAny(conditions, [15, 16, 38])) AS trades_before_official_open,
    countIf(sip_timestamp >= toDateTime('2026-07-02 09:30:00', 'America/New_York') AND sip_timestamp < auction_ts AND NOT hasAny(conditions, [15, 16, 38])) AS bell_to_cross_trades,
    countIf(has(conditions, 16) AND sip_timestamp >= '2026-07-02 00:00:00') AS official_open_msgs,
    countIf(has(conditions, 16) AND sip_timestamp >= '2026-07-02 00:00:00' AND exchange = listing_exchange) AS listing_venue_open_msgs,
    round(toFloat64(anyIf(price, has(conditions, 16) AND sip_timestamp >= '2026-07-02 00:00:00' AND exchange = listing_exchange)) - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00')), 4) AS listing_open_msg_price_difference
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
Provalo tu stesso

Il primo print di AAPL del 2 luglio conteggiato nei volumi è stato eseguito alle 04:00:00 ET al prezzo di $296.1. L’apertura ufficiale non è stata definita fino alle 09:30:00.491313 ET, quando il cross è stato eseguito a $294.1. A quel punto erano già stati registrati 15832 prints di AAPL, tra cui 173 nella frazione di secondo compresa tra le 9:30:00.000 e il cross: si tratta di trade continui su altre venue, che iniziano a eseguire gli ordini all’apertura. Poco dopo sono arrivati 2 messaggi “Market Center Official Open” (sale condition 16), cioè la registrazione dell’apertura ufficiale di ciascun market center, senza aggiungere volumi. Quelli dell’exchange di quotazione ripetono esattamente il prezzo dell’asta (differenza: 0).

La ricevuta misura anche il gap overnight. La chiusura ufficiale precedente di AAPL, esattamente il 1 closing print del primo luglio, era pari a $294.38. L’asta della mattina successiva è stata eseguita a $294.1, con una variazione overnight di -0.1%. Nella notte non è successo molto e il gap è stato contenuto. Quando gli utili o le notizie arrivano durante la notte, il pre-market incorpora per primo la nuova informazione; l’asta registra poi il movimento nel dato ufficiale.

Come funziona l’asta di apertura? Ordini market-on-open e limit-on-open

Due tipi di ordine dedicati alimentano l’apertura e rispecchiano i corrispondenti ordini per la chiusura:

  • Un ordine market-on-open (MOO) viene eseguito al prezzo stabilito dall’asta, senza protezione sul prezzo, e garantisce quasi sempre la partecipazione all’apertura ufficiale.
  • Un ordine limit-on-open (LOO) partecipa all’asta solo se il prezzo di apertura è pari o migliore del suo limite. Offre protezione sul prezzo, ma comporta il rischio di non essere eseguito nell’incrocio.

Entrambi restano presso l’exchange fino all’incrocio e non vengono negoziati nel pre-market durante l’attesa. Gli exchange smettono di accettare o modificare gli ordini di apertura poco prima delle 9:30; gli orari limite variano in base all’exchange e molti broker fissano scadenze anticipate.

Cos’è lo sbilanciamento dell’asta di apertura?

Nella fase che precede l’apertura, gli exchange pubblicano i dati sullo sbilanciamento dell’asta: il numero di azioni in coda per l’acquisto rispetto a quelle in vendita, oltre a un prezzo indicativo al quale l’incrocio si concluderebbe in quel momento. Uno sbilanciamento in acquisto di un milione di azioni significa che, fino a quel momento, un milione di azioni in acquisto all’apertura non ha trovato una controparte. I trader del pre-market monitorano questi flussi e prendono posizione di conseguenza.

La barra al minuto delle 9:30 non coincide nemmeno con l’apertura ufficiale

La maggior parte delle piattaforme grafiche include l’apertura nella prima candela a un minuto: tutti gli scambi eseguiti dalle 9:30:00.000 alle 9:30:59.999, su ogni venue, comprendendo l’asta e quasi un minuto di contrattazione continua. La sua “apertura” è il primo print rilevato nella finestra, non necessariamente quello dell’asta.

QueryLa barra delle 9:30 rispetto a quella delle 12:30: SPY, AAPL, NVDA il 2 luglio 2026
tickerapertura della barra 09:30apertura ufficialeapertura barra meno ufficiale (centesimi)volume barra 09:30 kscambi barra 09:30volume barra 12:30 kx 09:30 vs 12:30
SPY747.4747.221847986321333.6
AAPL294.12294.12743146621216.1
NVDA197.14197.1221688363192267.5
L'esatto SQL dietro ogni numero
WITH auctions AS (
    SELECT ticker, toFloat64(argMax(price, (size, sip_timestamp))) AS official_open
    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'
      AND has(conditions, 17)
    GROUP BY ticker
)
SELECT
    b.ticker AS ticker,
    toFloat64(anyIf(b.open, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York'))) AS bar_0930_open,
    a.official_open AS official_open,
    round(100 * (toFloat64(anyIf(b.open, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York'))) - a.official_open), 0) AS bar_open_minus_official_cents,
    round(sumIf(b.volume, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York')) / 1e3) AS bar_0930_vol_k,
    anyIf(b.transactions, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York')) AS bar_0930_trades,
    round(sumIf(b.volume, b.window_start = toDateTime('2026-07-02 12:30:00', 'America/New_York')) / 1e3) AS bar_1230_vol_k,
    round(sumIf(b.volume, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York')) / sumIf(b.volume, b.window_start = toDateTime('2026-07-02 12:30:00', 'America/New_York')), 1) AS x_0930_vs_1230
FROM global_markets.delayed_stocks_minute_aggs AS b
INNER JOIN auctions AS a ON a.ticker = b.ticker
WHERE b.ticker IN ('SPY', 'AAPL', 'NVDA')
  AND b.window_start >= toDateTime('2026-07-02 00:00:00', 'America/New_York')
  AND b.window_start < toDateTime('2026-07-03 00:00:00', 'America/New_York')
GROUP BY b.ticker, a.official_open
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA'], b.ticker)
Provalo tu stesso

Il 2 luglio tutte e tre le barre delle 9:30 hanno aperto sopra l’apertura ufficiale: la barra di AAPL indica $294.12 contro i $294.1 ufficiali, con una differenza di 2 centesimi; SPY era 18 centesimi e NVDA 2 centesimi sopra i rispettivi prezzi di apertura. Un print precedente all’incrocio, eseguito su un’altra venue, è stato registrato per primo in ciascuna barra. Quando l’apertura indicata da un grafico differisce di pochi centesimi dall’apertura ufficiale, questo è solitamente il meccanismo.

Le colonne dei volumi mostrano il peso del primo minuto. La barra delle 9:30 di AAPL ha registrato 743 mila azioni in 14662 trade, 6.1 volte il volume della barra di mezzogiorno delle 12:30, pari a 121 mila azioni; il rapporto di NVDA è stato di 7.5 volte e quello di SPY di 3.6 volte. I minuti con volumi così elevati hanno un peso effettivo nel VWAP, il prezzo medio ponderato per i volumi.

Come si presenta l’intera giornata intorno all’apertura?

Raggruppando tutti gli scambi di AAPL del 2 luglio in intervalli di 64 quindici minuti, dalle 4:00 alle 20:00, il picco iniziale assume il giusto contesto: gli intervalli del pre-market registrano volumi appena percettibili, i volumi aumentano nettamente alle 9:30, si riducono verso la pausa pranzo e crescono fino alla chiusura, quando la giornata termina come era iniziata, con un unico scambio di 10.89 milioni di azioni AAPL.

QueryVolumi di AAPL per quarto d'ora, 2 luglio 2026: pre-market–after-hours (ET)
64 rows (showing 20)
ora ETazioni m
04:000.1
04:150.01
04:300
04:450
05:000.01
05:150
05:300.01
05:450.01
06:000.01
06:150.01
06:300.01
06:450
07:000.02
07:150.01
07:300.01
07:450.01
08:000.02
08:150.02
08:300.04
08:450.03
L'esatto SQL dietro ogni numero
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 15 MINUTE), '%H:%i') AS et_time,
    round(sum(volume) / 1e6, 2) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
  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')
GROUP BY et_time
ORDER BY et_time
Provalo tu stesso

Come identificare il print dell’asta di apertura? Codici delle condizioni di vendita

Quale print corrisponde all’asta? Lo mostra il tape stesso; il dizionario dei codici è fornito nello stesso archivio e la ricevuta riportata sotto è una query, non un’affermazione.

QueryLe etichette del tape per l'apertura, direttamente dal dizionario dei codici
nameidconteggia ai fini del volume
Closing Prints81
Market Center Official Close150
Market Center Official Open160
Market Center Opening Trade171
Corrected Consolidated Close (per listing market)380
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, 17, 38)
ORDER BY id
Provalo tu stesso

Conta un’asimmetria. La chiusura riceve un’unica etichetta consolidata (codice 8, «Closing Prints»); l’etichetta dell’apertura è invece specifica per venue: il codice 17, «Market Center Opening Trade», contrassegna il primo trade di ciascun market center, mentre quello della listing exchange è l’asta. Il tape di SPY del 2 luglio riporta 2 print di questo tipo: il cross da 122 mila azioni e un print da 4 azioni eseguito su un’altra venue. AAPL e NVDA ne mostrano invece esattamente uno ciascuna (1 e 1), tutti nella seconda delle 9:30:00 (la colonna open_prints_at_0930 lo conferma). Ogni dato d’asta riportato sopra è il print di questo tipo più grande della sessione. Il codice 16, «Market Center Official Open», è il relativo riscontro amministrativo privo di volume (0 nella colonna del volume) ed è escluso da ogni denominatore insieme ai codici 15 e 38.

Domande frequenti sull’asta di apertura

A che ora si svolge l’asta di apertura?

Alle 9:30 ET, con l’inizio della sessione regolare; i titoli meno liquidi possono incrociare gli ordini qualche istante più tardi. Il 2 luglio 2026 gli incroci di SPY, AAPL e NVDA sono stati tutti registrati alle 09:30:00 ET, con precisione al secondo. Nei giorni con chiusura anticipata programmata si accorcia il pomeriggio, non la mattina; l’asta di chiusura si sposta invece alle 13:00. Vedi festività di mercato e chiusure anticipate.

Qual è il prezzo ufficiale di apertura?

È il prezzo dell’asta di apertura sulla borsa di quotazione del titolo. Il 2 luglio 2026 l’incrocio di AAPL è stato eseguito a $294.1, il prezzo ufficiale di apertura della giornata, anche se 15832 eseguiti di AAPL erano stati registrati prima quella mattina.

Posso operare nell’asta di apertura?

Sì. Gli ordini market-on-open (MOO) e limit-on-open (LOO) sono standard presso la maggior parte dei broker: un MOO viene eseguito al prezzo stabilito dall’asta, mentre un LOO partecipa solo al proprio limite o a un prezzo migliore. L’inserimento degli ordini termina poco prima delle 9:30, e presso molti broker anche prima.

Perché un titolo ha aperto molto lontano dalla chiusura del giorno precedente?

Gli ordini si accumulano per tutta la notte mentre la borsa è chiusa, e l’asta incrocia quell’interesse accumulato in un unico eseguito. In una notte tranquilla il gap è ridotto: la variazione overnight di AAPL del 2 luglio 2026 è stata pari a -0.1%.

L’asta di apertura è più grande di quella di chiusura?

No, l’asta di chiusura ha dimensioni molto maggiori. Il 2 luglio 2026 l’incrocio di chiusura di AAPL è stato pari a 33.7 volte quello di apertura, quello di NVDA a 25.2 volte e quello di SPY a 13.5 volte. I flussi legati alla replica dei benchmark vengono eseguiti al prezzo ufficiale di chiusura; l’asta di chiusura copre quel punto di riferimento.


Tutti i dati riportati sopra vengono generati da una query archiviata e verificabile; espandi il codice SQL sotto ogni pannello per controllarlo. Per analizzare nel dettaglio l’incrocio di apertura di un ticker che segui, poni le stesse domande in inglese semplice sul terminale Strasmore.