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.
| data sessione | giorno settimana | barre sessione regolare | minuto prima barra | minuto ultima barra | prima barra ET | ultima barra ET | totale azioni M | % premarket | % regolare | % post-close 30min | % serale | % primi 30min | % ultimi 30min | % mezz'ora midday |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-10-14 | Wednesday | 390 | 240 | 1199 | 04:00 | 19:59 | 55.7 | 2.6 | 86.2 | 9 | 2.1 | 8.1 | 25.1 | 3.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 tLa 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:
| ET mezz'ora | azioni M |
|---|---|
| 04:00 | 0.05 |
| 04:30 | 0.02 |
| 05:00 | 0.01 |
| 05:30 | 0 |
| 06:00 | 0.02 |
| 06:30 | 0.01 |
| 07:00 | 0.05 |
| 07:30 | 0.02 |
| 08:00 | 0.13 |
| 08:30 | 0.83 |
| 09:00 | 0.33 |
| 09:30 | 4.52 |
| 10:00 | 2.77 |
| 10:30 | 2.46 |
| 11:00 | 2.76 |
| 11:30 | 2.16 |
| 12:00 | 2.84 |
| 12:30 | 1.97 |
| 13:00 | 1.97 |
| 13:30 | 3.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_hourIn 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:
| contract | data sessione | trades 3:45-4:00 | trades 4:00-4:15 | ultimo trade ET | minuto ultimo trade |
|---|---|---|---|---|---|
| AAPL options (single name) | 2026-10-14 | 11803 | 3 | 16:00 | 960 |
| SPY options (ETF) | 2026-10-14 | 64434 | 29698 | 16:14 | 974 |
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 contractGli 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.
| data festività | giorno settimana | festività | stato giorno | chiusura anticipata ET | giorni distanza |
|---|---|---|---|---|---|
| 2026-11-26 | Thu | Thanksgiving | closed | 40 | |
| 2026-11-27 | Fri | Thanksgiving | early-close | 01:00 PM | 41 |
| 2026-12-24 | Thu | Christmas | early-close | 01:00 PM | 68 |
| 2026-12-25 | Fri | Christmas | closed | 69 | |
| 2027-01-01 | Fri | New Years Day | closed | 76 | |
| 2027-01-18 | Mon | Martin Luther King, Jr. Day | closed | 93 | |
| 2027-02-15 | Mon | Washington's Birthday | closed | 121 | |
| 2027-03-26 | Fri | Good Friday | closed | 160 | |
| 2027-05-31 | Mon | Memorial Day | closed | 226 | |
| 2027-06-18 | Fri | Juneteenth | closed | 244 | |
| 2027-07-05 | Mon | Independence Day | closed | 261 | |
| 2027-09-06 | Mon | Labor Day | closed | 324 |
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 dateLa 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.
| data sessione | giorno settimana | barre sessione mattutina | ultima barra ET | minuto ultima barra | totale azioni M | % premarket | % regolare | % post-close 30min | % serale | % primi 30min | % ultimi 30min | % close-open |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025-12-24 | Wednesday | 210 | 16:59 | 1019 | 39.9 | 1.2 | 89.6 | 7.8 | 1.4 | 10.9 | 24.2 | 13.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 tLa 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.
| ET mezz'ora | azioni M |
|---|---|
| 04:00 | 0.03 |
| 04:30 | 0 |
| 05:00 | 0.01 |
| 05:30 | 0.01 |
| 06:00 | 0.01 |
| 06:30 | 0.01 |
| 07:00 | 0.05 |
| 07:30 | 0.03 |
| 08:00 | 0.1 |
| 08:30 | 0.11 |
| 09:00 | 0.13 |
| 09:30 | 4.36 |
| 10:00 | 3.84 |
| 10:30 | 3.46 |
| 11:00 | 4.98 |
| 11:30 | 3.79 |
| 12:00 | 5.69 |
| 12:30 | 9.66 |
| 13:00 | 3.11 |
| 13:30 | 0.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_hourIl 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:
| giorni trading | sessioni complete | sessioni ridotte | sessioni irregolari | sessioni weekend | prima sessione | ultima sessione |
|---|---|---|---|---|---|---|
| 253 | 251 | 2 | 0 | 0 | 2025-10-13 | 2026-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
)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.