Strasmore Research
Formazione Matt ConnorDi Matt Connor · Aggiornato 2026-10-18 · data as of October 18, 2026 · refreshed weekly

Orari di apertura e chiusura del mercato azionario

Gli orari regolari di NYSE e Nasdaq vanno dalle nove e trenta alle sedici ET. Sono disponibili sessioni premarket e after-hours escluse le festività e i fine settimana.

Orari di negoziazione del mercato azionario statunitense

Gli orari di negoziazione del mercato azionario statunitense vanno dalle nove e trenta alle sedici, ora della costa orientale, dal lunedì al venerdì. Sia il NYSE che il Nasdaq aprono le negoziazioni regolari alle nove e trenta ET e le chiudono alle sedici ET. Attorno a questa sessione regolare si collocano due finestre estese: il premarket trading a partire dalle quattro ET e l'after-hours trading fino alle venti ET. I mercati restano chiusi nei fine settimana e durante circa dieci festività all'anno.

Ogni dato presente in questa pagina è calcolato sulla base di registrazioni di scambi reali; la query esatta alla base di ogni numero è accessibile con un clic. (Per una panoramica rapida, la prossima chiusura e la sessione più recente, consultare il mercato azionario è aperto oggi).

A che ora aprono e chiudono i mercati azionari?

La sessione di trading regolare, ovvero l'orario a cui fanno riferimento i prezzi quotati, i livelli degli indici e i notiziari serali, va dall'apertura delle contrattazioni alle 9:30 ET fino alla chiusura alle 16:00 ET: sei ore e mezza, cinque giorni a settimana. Entrambe le principali borse statunitensi seguono lo stesso orario e un ordine di borsa standard opera in questa finestra di default.

L'intera giornata di trading elettronico è più ampia rispetto all'orario ufficiale:

  • Premarket: dalle 4:00 alle 9:30 ET, trading elettronico prima dell'apertura ufficiale.
  • Sessione regolare: dalle 9:30 alle 16:00 ET, dove si concentra la maggior parte dei volumi giornalieri.
  • After-hours: dalle 16:00 alle 20:00 ET, trading elettronico dopo la chiusura ufficiale.

Due aste delimitano la giornata regolare. Un'asta di apertura stabilisce il prezzo ufficiale di apertura di ogni titolo alle 9:30, mentre la asta di chiusura, un'unica grande operazione incrociata pochi istanti dopo le 16:00, determina il prezzo ufficiale di chiusura riportato ovunque quella sera. Tutti gli orari in questa pagina sono espressi in Eastern Time: la stessa sessione regolare si svolge dalle 6:30 alle 13:00 sulla costa occidentale degli Stati Uniti.

Come si presentano gli orari di mercato sul tape?

Le definizioni sono una cosa; il tape è la prova. I riquadri sottostanti analizzano una recente sessione completa sul tape di SPY, 2026-10-14, un Wednesday, la sessione più recente il cui registro è completo (il feed dei dati ha un ritardo di uno o due giorni), verificata conteggiando le barre a un minuto della sessione regolare: 390 in totale, una per ogni minuto tra le due campane. La prima barra della sessione ha stampato alle 04:00 ET e l'ultima alle 19:59 ET; il tape copre l'intera giornata estesa, dalle 4:00 alle 20:00.

QueryGiornata di trading completa su SPY, suddivisa per finestra temporale (ultima sessione completa)
data sessionegiorno settimanabarre sessione regolareminuto prima barraminuto ultima barraprima barra ETultima barra ETtotale azioni M% premarket% regolare% post-close 30min% serale% primi 30min% ultimi 30min% mezz'ora midday
2026-10-14Wednesday390240119904:0019:5955.72.686.292.18.125.13.5
L'esatto SQL dietro ogni numero
WITH
(
    SELECT max(d)
    FROM
    (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York')) AS d,
            countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60
                     + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
                AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
                     + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960) AS rth_bars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= today() - 21
          AND window_start < today() - 2
        GROUP BY d
        HAVING rth_bars = 390
    )
) AS session_day
SELECT
    toString(session_day)                     AS session_date,
    formatDateTime(session_day, '%W')         AS weekday,
    b.regular_session_bars                    AS regular_session_bars,
    b.first_bar_minute_of_day                 AS first_bar_minute_of_day,
    b.last_bar_minute_of_day                  AS last_bar_minute_of_day,
    b.first_bar_et                            AS first_bar_et,
    b.last_bar_et                             AS last_bar_et,
    t.total_shares_m                          AS total_shares_m,
    t.premarket_pct                           AS premarket_pct,
    t.regular_pct                             AS regular_pct,
    t.post_close_30min_pct                    AS post_close_30min_pct,
    t.evening_pct                             AS evening_pct,
    t.first_30min_pct                         AS first_30min_pct,
    t.last_30min_pct                          AS last_30min_pct,
    t.midday_half_hour_pct                    AS midday_half_hour_pct
FROM
(
    SELECT
        countIf(et_min >= 570 AND et_min < 960)   AS regular_session_bars,
        min(et_min)                               AS first_bar_minute_of_day,
        max(et_min)                               AS last_bar_minute_of_day,
        formatDateTime(min(et_ts), '%H:%i')       AS first_bar_et,
        formatDateTime(max(et_ts), '%H:%i')       AS last_bar_et
    FROM
    (
        SELECT
            toTimeZone(window_start, 'America/New_York') AS et_ts,
            toHour(toTimeZone(window_start, 'America/New_York')) * 60
            + toMinute(toTimeZone(window_start, 'America/New_York')) AS et_min
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND toDate(toTimeZone(window_start, 'America/New_York')) = session_day
    )
) AS b
CROSS JOIN
(
    SELECT
        round(sum(shares) / 1e6, 1)                                                                   AS total_shares_m,
        round(100.0 * sumIf(shares, NOT is_close AND et_min < 570) / sum(shares), 1)                  AS premarket_pct,
        round(100.0 * sumIf(shares, is_close OR (et_min >= 570 AND et_min < 960)) / sum(shares), 1)   AS regular_pct,
        round(100.0 * sumIf(shares, NOT is_close AND et_min >= 960 AND et_min < 990) / sum(shares), 1) AS post_close_30min_pct,
        round(100.0 * sumIf(shares, NOT is_close AND et_min >= 990) / sum(shares), 1)                 AS evening_pct,
        round(100.0 * sumIf(shares, NOT is_close AND et_min >= 570 AND et_min < 600) / sum(shares), 1) AS first_30min_pct,
        round(100.0 * sumIf(shares, is_close OR (et_min >= 930 AND et_min < 960)) / sum(shares), 1)   AS last_30min_pct,
        round(100.0 * sumIf(shares, NOT is_close AND et_min >= 750 AND et_min < 780) / sum(shares), 1) AS midday_half_hour_pct
    FROM
    (
        SELECT
            toFloat64(size)    AS shares,
            has(conditions, 8) AS is_close,
            toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60
            + toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_min
        FROM global_markets.stocks_trades
        WHERE ticker = 'SPY'
          AND sip_timestamp >= toDateTime(session_day, 'America/New_York')
          AND sip_timestamp <  toDateTime(session_day + 1, 'America/New_York')
          AND NOT hasAny(conditions, [15, 16, 38])
    )
) AS t
Provalo tu stesso

La ripartizione dei volumi è l'elemento chiave. Viene letta operazione per operazione dal tape consolidato e il print dell'asta di chiusura viene conteggiato nella sessione regolare che conclude. Dei 55.7 milioni di azioni SPY scambiate nell'intero arco di sedici ore, la sessione regolare ne ha gestite 86.2%. Il premarket di cinque ore e mezza ha registrato 2.6%. La mezz'ora immediatamente successiva alla campana di chiusura ha registrato 9%, una finestra che intercetta le grandi operazioni negoziate riportate sul tape una volta terminata la sessione, mentre le restanti tre ore e mezza serali hanno registrato complessivamente 2.1%.

I bucket di mezz'ora mostrano l'andamento della giornata:

QueryVolumi SPY per mezz'ora, dal premarket all'after-hours (stessa sessione, orario ET)
32 rows (showing 20)
ET mezz'oraazioni M
04:000.05
04:300.02
05:000.01
05:300
06:000.02
06:300.01
07:000.05
07:300.02
08:000.13
08:300.83
09:000.33
09:304.52
10:002.77
10:302.46
11:002.76
11:302.16
12:002.84
12:301.97
13:001.97
13:303.77
L'esatto SQL dietro ogni numero
WITH
(
    SELECT max(d)
    FROM
    (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York')) AS d,
            countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60
                     + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
                AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
                     + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960) AS rth_bars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= today() - 21
          AND window_start < today() - 2
        GROUP BY d
        HAVING rth_bars = 390
    )
) AS session_day
SELECT
    formatDateTime(toStartOfInterval(if(has(conditions, 8),
                                         toTimeZone(sip_timestamp, 'America/New_York') - INTERVAL 10 MINUTE,
                                         toTimeZone(sip_timestamp, 'America/New_York')),
                                      INTERVAL 30 MINUTE), '%H:%i') AS et_half_hour,
    round(sum(toFloat64(size)) / 1e6, 2) AS shares_m
FROM global_markets.stocks_trades
WHERE ticker = 'SPY'
  AND sip_timestamp >= toDateTime(session_day, 'America/New_York')
  AND sip_timestamp <  toDateTime(session_day + 1, 'America/New_York')
  AND NOT hasAny(conditions, [15, 16, 38])
GROUP BY et_half_hour
ORDER BY et_half_hour
Provalo tu stesso

In questa sessione, la mezz'ora di chiusura, incluso il print dell'asta, ha registrato il 25.1% del volume totale giornaliero, contro il 3.5% della mezz'ora di pausa pranzo tra le 12:30 e le 13:00; la mezz'ora di apertura ha registrato il 8.1%. La chiusura pesante ha un'ancora meccanica: gli index fund, i mutual fund e le istituzioni che operano su benchmark effettuano le transazioni ai prezzi di chiusura ufficiali e i loro ordini confluiscono nell'asta di chiusura. Complessivamente, il volume si è distribuito in 32 distinti bucket di mezz'ora nell'arco della giornata estesa.

Cosa sono il premarket e l'after-hours trading?

Il premarket (dalle 4:00 alle 9:30 ET) e l'after-hours (dalle 16:00 alle 20:00 ET) sono finestre di negoziazione esclusivamente elettroniche che precedono e seguono la sessione regolare. La partecipazione è ridotta, gli spread bid-ask sono più ampi e la maggior parte dei broker accetta solo limit order in queste sessioni. Le notizie societarie si concentrano in questi orari: i risultati trimestrali vengono pubblicati subito dopo la chiusura delle 16:00 e nelle ore precedenti l'apertura, ovvero le finestre in cui il prezzo di un titolo può registrare un gap significativo rispetto alla chiusura precedente. Un prezzo stampato alle 19:00 non offre alcuna garanzia sull'apertura del titolo il mattino seguente.

I volumi suddivisi per sessione, i costi misurati dello spread bid-ask e gli orari effettivi di pubblicazione delle notizie sono disponibili in after-hours e premarket trading, l'articolo di approfondimento correlato a questa pagina. In sintesi, come visibile nei pannelli sopra: le sessioni estese sono reali e negoziabili, ma presentano volumi ridotti rispetto alla sessione regolare.

Quali sono gli orari di negoziazione di opzioni e futures?

Le opzioni su singole società sono negoziate dalle 9:30 alle 16:00 ET, senza sessioni pre-market o after-hours. Le opzioni su una selezione limitata di ETF su indici ampi e prodotti indicizzati, come SPY, QQQ, IWM, e opzioni su indici come SPX e VIX, beneficiano di quindici minuti aggiuntivi, fino alle 16:15 ET. Il tape mostra la distinzione su 2026-10-14, la stessa sessione analizzata in precedenza:

QueryOpzioni su singoli titoli vs. ETF alla chiusura delle 16:00: scambi su AAPL e SPY a fine sessione
contractdata sessionetrades 3:45-4:00trades 4:00-4:15ultimo trade ETminuto ultimo trade
AAPL options (single name)2026-10-1411803316:00960
SPY options (ETF)2026-10-14644342969816:14974
L'esatto SQL dietro ogni numero
WITH
(
    SELECT max(d)
    FROM
    (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York')) AS d,
            countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60
                     + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
                AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
                     + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960) AS rth_bars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= today() - 21
          AND window_start < today() - 2
        GROUP BY d
        HAVING rth_bars = 390
    )
) AS session_day
SELECT
    if(startsWith(ticker, 'O:SPY'), 'SPY options (ETF)', 'AAPL options (single name)') AS contract,
    toString(session_day)                                                              AS session_date,
    countIf(sip_timestamp >= toDateTime(concat(toString(session_day), ' 15:45:00'), 'America/New_York')
        AND sip_timestamp <  toDateTime(concat(toString(session_day), ' 16:00:00'), 'America/New_York')) AS trades_345_to_400,
    countIf(sip_timestamp >= toDateTime(concat(toString(session_day), ' 16:00:00'), 'America/New_York')
        AND sip_timestamp <  toDateTime(concat(toString(session_day), ' 16:15:00'), 'America/New_York')) AS trades_400_to_415,
    formatDateTime(toTimeZone(max(sip_timestamp), 'America/New_York'), '%H:%i') AS last_trade_et,
    toHour(toTimeZone(max(sip_timestamp), 'America/New_York')) * 60
    + toMinute(toTimeZone(max(sip_timestamp), 'America/New_York'))              AS last_trade_minute_of_day
FROM global_markets.options_trades
WHERE (startsWith(ticker, 'O:SPY') OR startsWith(ticker, 'O:AAPL'))
  AND match(ticker, '^O:(SPY|AAPL)[0-9]{6}[CP][0-9]{8}$')
  AND sip_timestamp >= toDateTime(concat(toString(session_day), ' 15:45:00'), 'America/New_York')
  AND sip_timestamp <  toDateTime(concat(toString(session_day), ' 23:00:00'), 'America/New_York')
GROUP BY contract
ORDER BY contract
Provalo tu stesso

Gli ultimi quindici minuti della sessione regolare sono stati intensi su entrambi i tape: 11803 scambi su opzioni AAPL, 64434 su SPY. Nei quindici minuti successivi alla chiusura, le dinamiche si sono separate: AAPL ha registrato 3 scambi isolati (l'ultimo alle 16:00 ET), mentre SPY ha totalizzato 29698 scambi, l'ultimo alle 16:14 ET. La scadenza segue un proprio calendario, illustrato in quando si negoziano le opzioni 0DTE.

I futures seguono un orario del tutto differente: i futures sugli indici azionari del CME sono negoziati quasi ventiquattro ore su ventiquattro, dalla domenica alle 18:00 ET al venerdì alle 17:00 ET, con una pausa giornaliera di un'ora alle 17:00; il tape overnight è ciò che alimenta ogni titolo di giornale del tipo "i futures sono in rialzo questa mattina". Il mercato obbligazionario è negoziato over-the-counter secondo gli orari raccomandati dalla SIFMA, approssimativamente dalle 8:00 alle 17:00 ET, con un proprio calendario di festività: le obbligazioni chiudono per il Columbus Day e il Veterans Day, mentre le azioni restano negoziabili.

Quando chiude il mercato azionario?

I mercati azionari statunitensi chiudono durante i fine settimana, per circa dieci festività all'anno e in anticipo, alle ore 13:00 ET, in alcune giornate a orario ridotto programmate. Il calendario sottostante proviene direttamente dal programma delle borse e si aggiorna automaticamente: ogni festività viene rimossa al suo passaggio e quella successiva avanza.

QueryProssime festività e chiusure anticipate del mercato azionario USA, da calendario di borsa
data festivitàgiorno settimanafestivitàstato giornochiusura anticipata ETgiorni distanza
2026-11-26ThuThanksgivingclosed40
2026-11-27FriThanksgivingearly-close01:00 PM41
2026-12-24ThuChristmasearly-close01:00 PM68
2026-12-25FriChristmasclosed69
2027-01-01FriNew Years Dayclosed76
2027-01-18MonMartin Luther King, Jr. Dayclosed93
2027-02-15MonWashington's Birthdayclosed121
2027-03-26FriGood Fridayclosed160
2027-05-31MonMemorial Dayclosed226
2027-06-18FriJuneteenthclosed244
2027-07-05MonIndependence Dayclosed261
2027-09-06MonLabor Dayclosed324
L'esatto SQL dietro ogni numero
SELECT
    toString(date)                       AS holiday_date,
    formatDateTime(date, '%a')           AS weekday,
    any(name)                            AS holiday,
    any(status)                          AS day_status,
    any(if(status = 'early-close',
           formatDateTime(toTimeZone(close, 'America/New_York'), '%I:%i %p'),
           ''))                          AS early_close_et,
    dateDiff('day', today(), date)       AS days_away
FROM global_markets.stocks_market_holidays
WHERE date >= today()
GROUP BY date
ORDER BY date
Provalo tu stesso

La prossima chiusura programmata è Thanksgiving il 2026-11-26, tra 40 giorni, e il calendario caricato elenca 12 chiusure datate in avanti, ciascuna indicata come chiusura completa o chiusura anticipata. In una giornata a chiusura anticipata, la sessione regolare termina alle ore 13:00 ET anziché alle 16:00, con tre ore e mezza di contrattazioni invece di sei ore e mezza, e l'asta di chiusura che stampa alle ore 13:00. Queste mezze giornate si concentrano attorno al Thanksgiving e al Natale. Le regole per il recupero nel fine settimana (una festività di sabato comporta la chiusura del mercato il venerdì precedente, una di domenica il lunedì successivo), il calendario completo e le modalità per verificare una chiusura passata dal tape sono trattati in festività del mercato azionario e chiusure anticipate.

Com'è strutturata una mezza giornata sul tape?

Il calendario indica le chiusure anticipate; il tape mostra come si presentano. La più recente mezza giornata sul tape di SPY è stata il 2025-12-24, un Wednesday: 210 barre da un minuto della sessione regolare dalle 9:30 fino all'asta di chiusura delle 13:00.

QueryUltima sessione a chiusura anticipata su SPY, suddivisa per finestra temporale
data sessionegiorno settimanabarre sessione mattutinaultima barra ETminuto ultima barratotale azioni M% premarket% regolare% post-close 30min% serale% primi 30min% ultimi 30min% close-open
2025-12-24Wednesday21016:59101939.91.289.67.81.410.924.213.3
L'esatto SQL dietro ogni numero
WITH
(
    SELECT max(d)
    FROM
    (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York')) AS d,
            countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60
                     + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
                AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
                     + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960) AS rth_bars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= today() - 400
          AND window_start < today() - 2
        GROUP BY d
        HAVING rth_bars >= 150 AND rth_bars <= 240
    )
) AS half_day
SELECT
    toString(half_day)                          AS session_date,
    formatDateTime(half_day, '%W')              AS weekday,
    b.morning_session_bars                      AS morning_session_bars,
    b.last_bar_et                               AS last_bar_et,
    b.last_bar_minute_of_day                    AS last_bar_minute_of_day,
    t.total_shares_m                            AS total_shares_m,
    t.premarket_pct                             AS premarket_pct,
    t.regular_pct                               AS regular_pct,
    t.post_close_30min_pct                      AS post_close_30min_pct,
    t.evening_pct                               AS evening_pct,
    t.first_30min_pct                           AS first_30min_pct,
    t.last_30min_pct                            AS last_30min_pct,
    round(t.last_30min_pct - t.first_30min_pct, 1) AS close_minus_open_pct
FROM
(
    SELECT
        countIf(et_min >= 570 AND et_min < 780)     AS morning_session_bars,
        formatDateTime(max(et_ts), '%H:%i')         AS last_bar_et,
        max(et_min)                                 AS last_bar_minute_of_day
    FROM
    (
        SELECT
            toTimeZone(window_start, 'America/New_York') AS et_ts,
            toHour(toTimeZone(window_start, 'America/New_York')) * 60
            + toMinute(toTimeZone(window_start, 'America/New_York')) AS et_min
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= today() - 400
          AND toDate(toTimeZone(window_start, 'America/New_York')) = half_day
    )
) AS b
CROSS JOIN
(
    SELECT
        round(sum(shares) / 1e6, 1)                                                                   AS total_shares_m,
        round(100.0 * sumIf(shares, NOT is_close AND et_min < 570) / sum(shares), 1)                  AS premarket_pct,
        round(100.0 * sumIf(shares, is_close OR (et_min >= 570 AND et_min < 780)) / sum(shares), 1)   AS regular_pct,
        round(100.0 * sumIf(shares, NOT is_close AND et_min >= 780 AND et_min < 810) / sum(shares), 1) AS post_close_30min_pct,
        round(100.0 * sumIf(shares, NOT is_close AND et_min >= 810) / sum(shares), 1)                 AS evening_pct,
        round(100.0 * sumIf(shares, NOT is_close AND et_min >= 570 AND et_min < 600) / sum(shares), 1) AS first_30min_pct,
        round(100.0 * sumIf(shares, is_close OR (et_min >= 750 AND et_min < 780)) / sum(shares), 1)   AS last_30min_pct
    FROM
    (
        SELECT
            toFloat64(size)    AS shares,
            has(conditions, 8) AS is_close,
            toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60
            + toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_min
        FROM global_markets.stocks_trades
        WHERE ticker = 'SPY'
          AND sip_timestamp >= toDateTime(half_day, 'America/New_York')
          AND sip_timestamp <  toDateTime(half_day + 1, 'America/New_York')
          AND NOT hasAny(conditions, [15, 16, 38])
    )
) AS t
Provalo tu stesso

La struttura di una giornata completa sopravvive alla compressione. Dei 39.9 milioni di azioni SPY che hanno registrato scambi, la sessione regolare ridotta ne ha gestiti 89.6%, e la mezz'ora finale prima della chiusura delle 13:00, incluso il print dell'asta di chiusura, ne ha gestiti 24.2%; un volume nettamente superiore alla mezz'ora di apertura, pari a 10.9%, che conferma la stessa gravità dell'asta di chiusura di una giornata normale, anticipata di tre ore. La mezz'ora successiva alla chiusura ha registrato 7.8% (di nuovo la finestra per il report dei blocchi) e il resto del pomeriggio solo 1.4%. Anche l'extended hours termina in anticipo: l'ultima barra della giornata ha registrato un print alle 16:59 ET, dato che l'after-hours termina intorno alle 17:00 nelle mezze giornate, tre ore prima del consueto orario delle 20:00. Anche le opzioni chiudono in anticipo: alle 13:00 per i singoli titoli, alle 13:15 per i contratti su ETF e indici estesi.

QueryVolumi SPY per mezz'ora nella sessione a chiusura anticipata, dal premarket all'after-hours ridotto (orario ET)
26 rows (showing 20)
ET mezz'oraazioni M
04:000.03
04:300
05:000.01
05:300.01
06:000.01
06:300.01
07:000.05
07:300.03
08:000.1
08:300.11
09:000.13
09:304.36
10:003.84
10:303.46
11:004.98
11:303.79
12:005.69
12:309.66
13:003.11
13:300.11
L'esatto SQL dietro ogni numero
WITH
(
    SELECT max(d)
    FROM
    (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York')) AS d,
            countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60
                     + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
                AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
                     + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960) AS rth_bars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= today() - 400
          AND window_start < today() - 2
        GROUP BY d
        HAVING rth_bars >= 150 AND rth_bars <= 240
    )
) AS half_day
SELECT
    formatDateTime(toStartOfInterval(if(has(conditions, 8),
                                         toTimeZone(sip_timestamp, 'America/New_York') - INTERVAL 10 MINUTE,
                                         toTimeZone(sip_timestamp, 'America/New_York')),
                                      INTERVAL 30 MINUTE), '%H:%i') AS et_half_hour,
    round(sum(toFloat64(size)) / 1e6, 2) AS shares_m
FROM global_markets.stocks_trades
WHERE ticker = 'SPY'
  AND sip_timestamp >= toDateTime(half_day, 'America/New_York')
  AND sip_timestamp <  toDateTime(half_day + 1, 'America/New_York')
  AND NOT hasAny(conditions, [15, 16, 38])
GROUP BY et_half_hour
ORDER BY et_half_hour
Provalo tu stesso

Il volume si è distribuito in 26 bucket da mezz'ora, con la familiare forma di apertura intensa e chiusura più pesante compressa in tre ore e mezza.

Quante sono le giornate di borsa aperta in un anno?

Escludendo i fine settimana e le festività, un anno solare conta circa duecentocinquanta sessioni di negoziazione. Il conteggio basato sui prints conferma il numero esatto:

QuerySessioni di trading nell'ultimo anno, basate sul tape di SPY
giorni tradingsessioni completesessioni ridottesessioni irregolarisessioni weekendprima sessioneultima sessione
2532512002025-10-132026-10-14
L'esatto SQL dietro ogni numero
SELECT
    count()                              AS trading_days,
    countIf(rth_bars >= 380)             AS full_length_sessions,
    countIf(rth_bars <= 240)             AS shortened_sessions,
    countIf(rth_bars > 240 AND rth_bars < 380) AS irregular_sessions,
    countIf(is_weekend)                  AS weekend_sessions,
    toString(min(d))                     AS first_session,
    toString(max(d))                     AS last_session
FROM
(
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS d,
        toDayOfWeek(toDate(toTimeZone(window_start, 'America/New_York'))) >= 6 AS is_weekend,
        countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60
                 + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
            AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
                 + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960) AS rth_bars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= today() - 370
      AND window_start < today() - 2
    GROUP BY d, is_weekend
    HAVING rth_bars > 0
)
Provalo tu stesso

Tra il 2025-10-13 e il 2026-10-14 il mercato ha registrato 253 sessioni regolari, 251 giornate a pieno regime più 2 sessioni ridotte, e esattamente 0 sessioni nel fine settimana, a conferma ufficiale che nessun sabato o domenica ha ospitato una sessione regolare.

Orari dei mercati azionari nel mondo

Gli orari statunitensi rappresentano una frazione di una rotazione globale pressoché continua. Il London Stock Exchange è operativo dalle otto alle sedici e trenta ora locale; la sua fase finale coincide solitamente con le prime due ore della sessione regolare statunitense, dalle nove e trenta alle undici e trenta ET, con le chiusure europee che avvengono a metà mattinata a New York. Tokyo negozia dalle nove alle quindici e trenta ora locale con una pausa pranzo, interamente durante l'orario notturno statunitense. In quasi ogni giorno lavorativo è presente una borsa principale aperta, ma un titolo quotato negli Stati Uniti registra prints esclusivamente durante gli orari statunitensi misurati in questa pagina.

FAQ sugli orari del mercato azionario

A che ora apre il mercato azionario?

Il NYSE e il Nasdaq avviano le negoziazioni regolari alle 9:30 Eastern Time, dal lunedì al venerdì. Il trading elettronico pre-market inizia molto prima, alle 4:00 ET, ma il prezzo di apertura ufficiale di ogni titolo viene stabilito durante l'asta di apertura delle 9:30.

Il mercato azionario è aperto nei fine settimana?

No. Le borse statunitensi non effettuano sessioni il sabato o la domenica; l'anno di dati del tape riportato sopra mostra 0 sessioni nel fine settimana. Dopo la chiusura di venerdì alle 16:00 e il termine delle contrattazioni after-hours alle 20:00, le negoziazioni riprendono con il pre-market di lunedì alle 4:00, festività escluse.

Cosa sono il pre-market e l'after-hours trading?

Si tratta di negoziazioni elettroniche al di fuori dell'orario regolare: il pre-market si svolge dalle 4:00 alle 9:30 ET e l'after-hours dalle 16:00 alle 20:00 ET. Entrambi operano con un numero inferiore di partecipanti e bid-ask spread più ampi rispetto alla sessione regolare; inoltre, la maggior parte dei broker accetta solo limit order in queste fasi.

Quando chiude il mercato in anticipo?

Nelle mezze giornate programmate, le negoziazioni regolari terminano alle 13:00 ET anziché alle 16:00; solitamente accade il venerdì dopo il Ringraziamento, la vigilia di Natale quando cade in un giorno feriale e il 3 luglio in alcuni anni. Il tape dell'ultimo anno mostra 2 sessioni ridotte.

Cosa succede se un titolo è sospeso alla chiusura?

Un titolo ancora sospeso al suono della campanella di chiusura non effettua un'asta di chiusura differita in quella giornata; le regole di borsa vietano un'asta di riapertura se la sospensione prosegue oltre le 15:50 ET circa, pertanto la sospensione continua semplicemente fino alla chiusura. In assenza di un'asta per stabilire un prezzo, la borsa utilizza come prezzo di chiusura ufficiale il volume-weighted average price degli scambi del titolo nei cinque minuti precedenti la sospensione, e non semplicemente l'ultimo prezzo battuto. Le sospensioni sono riferite al singolo titolo, mentre il resto del mercato chiude regolarmente alle 16:00.

Il mercato azionario chiude alle 16:00 o alle 16:30?

Le borse statunitensi chiudono le negoziazioni regolari alle 16:00 ET. Le quotazioni che continuano a muoversi dopo tale orario provengono dalla sessione after-hours, che prosegue fino alle 20:00 ET, mentre alcuni prodotti su indice vengono negoziati fino alle 16:15 ET.


Gli orari di mercato sono un programma; il tape è la ricevuta. Ogni pannello qui sopra è una query salvata che puoi aprire, modificare e rieseguire sul terminale Strasmore per verificare qualsiasi sessione, qualsiasi ticker o la prossima chiusura in programma.