Strasmore Research
Formazione Matt ConnorDi Matt Connor · Aggiornato 2026-07-24 · data as of July 24, 2026 · refreshed weekly

Il mercato azionario è aperto oggi

Verifica se il mercato azionario statunitense è aperto oggi. Consulta il calendario delle festività, gli orari di sessione e la gestione degli ordini.

Il mercato azionario statunitense è aperto dal lunedì al venerdì, dalle 9:30 alle 16:00 orario Eastern, fatta eccezione per le festività programmate e alcune chiusure anticipate alle 13:00. Determinare se il mercato è aperto oggi richiede tre verifiche: se è un giorno feriale, se è presente nel calendario delle festività e l'orario corrente della sessione. Questa pagina confronta tutti e tre i parametri con i record in tempo reale delle borse ad ogni aggiornamento; il timestamp "data as of" indica l'accuratezza dei dati. Per consultare gli orari delle singole sessioni, visita orari del mercato azionario; per il calendario completo, consulta festività e chiusure anticipate del mercato.

Il mercato azionario è aperto in questo momento?

Il pannello sottostante calcola la risposta in base all'ultimo aggiornamento dei dati di questa pagina. Il sistema verifica il giorno della settimana, controlla la data odierna nel feed delle festività delle borse e confronta l'orario Eastern-time con le sessioni ufficiali: premarket dalle 4:00, sessione regolare dalle 9:30, after-hours dalla chiusura fino alle 20:00.

QueryStato del mercato al refresh: controllo giorni feriali, festività e orario ET
L'esatto SQL dietro ogni numero
WITH
    toTimeZone(now(), 'America/New_York') AS now_et,
    toDate(now_et) AS today_et,
    toHour(now_et) * 60 + toMinute(now_et) AS min_now,
    (SELECT countDistinct(date) FROM global_markets.stocks_market_holidays
      WHERE date = toDate(toTimeZone(now(), 'America/New_York')) AND status = 'closed') AS today_full_holiday,
    (SELECT countDistinct(date) FROM global_markets.stocks_market_holidays
      WHERE date = toDate(toTimeZone(now(), 'America/New_York')) AND status = 'early-close') AS today_early,
    (SELECT any(name) FROM global_markets.stocks_market_holidays
      WHERE date = toDate(toTimeZone(now(), 'America/New_York'))) AS today_holiday_name,
    if(today_early = 1, 780, 960) AS close_min,
    if(today_early = 1, 1020, 1200) AS after_hours_end,
    (SELECT min(d) FROM (SELECT toDate(toTimeZone(now(), 'America/New_York')) + arrayJoin(range(1, 11)) AS d)
      WHERE toDayOfWeek(d) <= 5
        AND d NOT IN (SELECT date FROM global_markets.stocks_market_holidays WHERE status = 'closed')) AS next_sess_after_today,
    toDayOfWeek(today_et) <= 5 AND today_full_holiday = 0 AS today_is_session
SELECT
    toString(today_et) AS date_checked,
    formatDateTime(today_et, '%W') AS weekday,
    formatDateTime(now_et, '%H:%i') AS time_checked_et,
    multiIf(toDayOfWeek(today_et) >= 6, 'weekend',
            today_full_holiday = 1, concat('holiday — ', today_holiday_name),
            today_early = 1, concat('early close (1:00 pm) — ', today_holiday_name),
            'normal weekday') AS todays_calendar,
    multiIf(NOT today_is_session, 'CLOSED',
            min_now < 240, 'CLOSED (overnight)',
            min_now < 570, 'PREMARKET',
            min_now < close_min, 'OPEN',
            min_now < after_hours_end, 'AFTER-HOURS',
            'CLOSED (overnight)') AS market_status,
    toString(if(today_is_session AND min_now < close_min, today_et, next_sess_after_today)) AS next_regular_session,
    dateDiff('day', today_et, if(today_is_session AND min_now < close_min, today_et, next_sess_after_today)) AS days_to_next_session

Al momento delle 09:00 ET di Friday, 2026-07-24, lo stato calcolato è PREMARKET, con l'indicazione a calendario odierna "normal weekday". La prossima apertura della sessione regolare prevista — oggi stesso, qualora lo stato sia PREMARKET o OPEN — è alle 2026-07-24. Tale data esclude già i fine settimana e tutte le festività con chiusura totale, e non supera mai i pochi giorni di distanza, anche in caso di lunghi weekend festivi. Leggere questo dato dopo l'orario indicato? Gli stessi tre controlli richiedono pochi secondi se eseguiti manualmente: giorno della settimana, tabella delle festività sottostante e orario ET.

La prossima chiusura programmata — e tutto ciò che seguirà

Il calendario forward proviene direttamente dal feed della borsa. Un dettaglio importante: la tabella include oggi qualora oggi sia a sua volta un giorno festivo o con chiusura anticipata — la query richiede infatti ogni chiusura a partire da oggi, non strettamente dopo di essa — pertanto, in una mattina di festività, la prima riga e il pannello di stato superiore coincideranno.

QueryProssime chiusure NYSE e chiusure anticipate con countdown
L'esatto SQL dietro ogni numero
SELECT toString(date) AS closure_date,
       formatDateTime(date, '%a') AS falls_on,
       any(name) AS holiday,
       any(status) AS day_status,
       any(if(status = 'early-close', formatDateTime(toTimeZone(close, 'America/New_York'), '%H:%i'), '')) AS closes_at_et,
       dateDiff('day', today(), date) AS days_away
FROM global_markets.stocks_market_holidays
WHERE exchange = 'NYSE' AND date >= today()
GROUP BY date
ORDER BY date
LIMIT 16

La prossima interruzione programmata è il Labor Day del 2026-09-07 (closed), tra 45 giorni rispetto al timestamp di aggiornamento. Qualsiasi giorno feriale non presente in questa tabella è una sessione normale dalle 9:30 alle 16:00. I giorni con chiusura anticipata terminano il trading regolare alle 13:00 Eastern e si concentrano intorno al Thanksgiving, la vigilia di Natale e il Fourth of July; la auction di chiusura viene comunque eseguita in quei giorni — semplicemente viene pubblicata con tre ore di anticipo.

Quanti giorni all'anno è chiuso il mercato?

"Circa nove o dieci festività all'anno" è la risposta standard, ma questa pagina può effettuare un conteggio preciso invece di una stima. Il feed della borsa riporta solo le chiusure future, quindi quelle passate vengono recuperate dai dati storici: un giorno feriale in cui SPY ha registrato zero minute bars durante la sessione regolare è una chiusura completa, mentre un giorno con circa metà sessione (circa 210 barre invece di 390) indica una chiusura anticipata.

QueryChiusure dell'anno in corso: passate (da tape) e future (da calendar)
L'esatto SQL dietro ogni numero
WITH day_bars AS (
    SELECT cal.day AS day, ifNull(t.bars, 0) AS bars
    FROM (SELECT makeDate(toYear(today()), 1, 1) + arrayJoin(range(370)) AS day) AS cal
    LEFT JOIN (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime(makeDate(toYear(today()), 1, 1), 'America/New_York')
          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
        GROUP BY d
    ) AS t ON t.d = cal.day
    WHERE toDayOfWeek(cal.day) BETWEEN 1 AND 5
      AND cal.day <= today() - 4
),
past AS (
    SELECT countIf(bars = 0) AS past_full, countIf(bars BETWEEN 120 AND 330) AS past_early
    FROM day_bars
),
ahead AS (
    SELECT countDistinctIf(date, status = 'closed') AS ahead_full,
           countDistinctIf(date, status = 'early-close') AS ahead_early
    FROM global_markets.stocks_market_holidays
    WHERE date > today() - 4 AND toYear(date) = toYear(today())
)
SELECT category, already_passed, still_ahead, already_passed + still_ahead AS total, toString(toYear(today())) AS calendar_year
FROM (
    SELECT 'full closure' AS category, past.past_full AS already_passed, ahead.ahead_full AS still_ahead, 1 AS ord FROM past, ahead
    UNION ALL
    SELECT 'early close (1:00 pm)' AS category, past.past_early AS already_passed, ahead.ahead_early AS still_ahead, 2 AS ord FROM past, ahead
)
ORDER BY ord

2026 include 10 chiusure complete7 già trascorse, 3 ancora in arrivo — oltre a 2 chiusure anticipate alle 1:00 pm, di cui 2 da attendere. (Una chiusura avvenuta negli ultimi giorni può non apparire temporaneamente in nessuno dei due conteggi mentre il ritardo di ingestione dei dati viene risolto; il dato si corregge automaticamente al successivo aggiornamento.) I fine settimana completano il calcolo: sottraendo i circa 104 giorni del weekend e queste festività da 365, l'anno lascia circa 250 sessioni di trading.

Il registro dei dati: l'ultima sessione

Il calendario indica cosa dovrebbe accadere; il tape indica cosa è accaduto. Il pannello sottostante riporta l'ultima sessione effettivamente osservata sul nostro tape a barre minute di SPY, il relativo conteggio delle barre, il numero di operazioni su opzioni SPY registrate nella stessa giornata e l'ultima mezza giornata registrata sul trailing tape.

QueryUltima sessione su tape: bar count, SPY options prints e ultima mezza giornata
L'esatto SQL dietro ogni numero
WITH rth AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= today() - 450
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY d
),
last_sess AS (
    SELECT max(d) AS last_d
    FROM rth
    WHERE bars >= 120 AND d < toDate(toTimeZone(now(), 'America/New_York'))
),
opt AS (
    SELECT round(count() / 1e3, 0) AS spy_option_prints_thousands
    FROM global_markets.options_trades
    WHERE ticker >= 'O:SPY2' AND ticker < 'O:SPY3'
      AND sip_timestamp >= toDateTime((SELECT last_d FROM last_sess), 'America/New_York')
      AND sip_timestamp < toDateTime((SELECT last_d FROM last_sess) + 1, 'America/New_York')
),
last_early AS (
    SELECT toString(max(d)) AS last_early_close_date,
           argMax(bars, d) AS its_bars
    FROM rth WHERE bars BETWEEN 120 AND 330
)
SELECT toString((SELECT last_d FROM last_sess)) AS most_recent_session,
       formatDateTime((SELECT last_d FROM last_sess), '%W') AS weekday,
       (SELECT bars FROM rth WHERE d = (SELECT last_d FROM last_sess)) AS regular_minute_bars,
       (SELECT spy_option_prints_thousands FROM opt) AS spy_option_prints_thousands,
       (SELECT last_early_close_date FROM last_early) AS last_early_close,
       (SELECT its_bars FROM last_early) AS early_close_bars

L'ultima sessione sul nostro tape è 2026-07-22 (Wednesday), che ha registrato 390 barre minute della sessione regolare — una giornata intera dura circa trecentonovanta, una chiusura anticipata circa duecentodieci. La stessa sessione ha generato circa 1302 mila singole operazioni su opzioni SPY: il mercato delle opzioni segue il calendario azionario, inclusi festività e mezze giornate, e le expirations che cadono di venerdì di chiusura slittano di un giorno. L'ultima chiusura anticipata sul tape è stata 2025-12-24, con 211 barre minute — la struttura tipica di una mezza giornata alle 13:00. Una nota tecnica: questo database elabora i dati con un ritardo di uno-due giorni, quindi la "sessione più recente" qui può essere successiva di uno o due giorni rispetto all'ultima sessione reale.

Quando il mercato chiude senza preavviso

Le chiusure programmate sono presenti a calendario; quelle impreviste no. Sono rare — solo una manciata per decennio — e il tape ne conserva le tracce: un giorno feriale che avrebbe dovuto registrare trecentonovanta barre e non ne ha registrate nessuna.

QueryChiusure non programmate su tape: zero bar di sessione regolare in giorni feriali
L'esatto SQL dietro ogni numero
WITH events AS (
    SELECT arrayJoin([
        (toDate('2012-10-29'), 'Hurricane Sandy — day 1'),
        (toDate('2012-10-30'), 'Hurricane Sandy — day 2'),
        (toDate('2012-10-31'), 'Reopening after Sandy'),
        (toDate('2018-12-05'), 'Mourning — George H. W. Bush'),
        (toDate('2025-01-09'), 'Mourning — Jimmy Carter')
    ]) AS e
),
tape AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND ((window_start >= '2012-10-29 00:00:00' AND window_start < '2012-11-01 12:00:00')
        OR (window_start >= '2018-12-05 00:00:00' AND window_start < '2018-12-06 12:00:00')
        OR (window_start >= '2025-01-09 00:00:00' AND window_start < '2025-01-10 12:00:00'))
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY d
)
SELECT toString(e.1) AS closure_date,
       formatDateTime(e.1, '%a') AS falls_on,
       e.2 AS name,
       toUInt32(ifNull(t.bars, 0)) AS spy_regular_session_bars
FROM events
LEFT JOIN tape AS t ON t.d = events.e.1
ORDER BY e.1

L'uragano Sandy ha mantenuto le due principali borse chiuse in 2012-10-29 e 2012-10-30 — la prima chiusura per cause meteorologiche di più giorni dal 1888 — e la sessione di riapertura in 2012-10-31 ha registrato un totale di 390 barre. I giorni nazionali di lutto hanno chiuso il mercato in 2018-12-05 (Presidente George H. W. Bush) e 2025-01-09 (Presidente Jimmy Carter). La più lunga chiusura imprevista dell'era moderna — dall'11 al 14 settembre 2001, per quattro sessioni consecutive — precede i nostri dati al minuto, che iniziano nel 2003. Ogni chiusura sopra indicata appare sul tape come 0 barre della sessione regolare: nessun scambio effettuato.

Cosa succede a un ordine inserito quando il mercato è chiuso?

Nessuna operazione viene eseguita durante la chiusura del mercato. Un ordine inviato di sabato, durante un giorno festivo o alle ore 2:00 rimane semplicemente in coda presso il proprio broker fino alla sessione successiva; un ordine market in coda viene eseguito al prezzo determinato dall'auction di apertura — giorni dopo l'invio. Il gap tra la chiusura di una sessione e la prima quotazione della sessione successiva rappresenta l'esposizione che si accetta, ed è misurabile:

QuerySPY su recenti weekend e festività: chiusura di venerdì vs. reopening print
L'esatto SQL dietro ogni numero
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           round(argMin(toFloat64(open), window_start), 2) AS open_px,
           round(argMax(toFloat64(close), window_start), 2) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= today() - 75
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY d
),
paired AS (
    SELECT d,
           open_px,
           lagInFrame(d) OVER (ORDER BY d) AS prev_d,
           lagInFrame(close_px) OVER (ORDER BY d) AS prev_close
    FROM daily
)
SELECT concat(formatDateTime(prev_d, '%a '), toString(prev_d)) AS last_session_before,
       concat(formatDateTime(d, '%a '), toString(d)) AS reopening_session,
       dateDiff('day', prev_d, d) AS days_dark,
       toString(prev_close) AS close_before_break,
       toString(open_px) AS reopening_print,
       round((open_px - prev_close) / prev_close * 100, 2) AS gap_pct
FROM paired
WHERE prev_close > 0 AND dateDiff('day', prev_d, d) >= 3
ORDER BY d

La tabella copre gli ultimi 10 weekend e lunghi weekend — la colonna days_dark indica le festività di quattro giorni. L'ultima è avvenuta dal Fri 2026-07-17 al Mon 2026-07-20 (3 giorni di calendario di chiusura): la chiusura della sessione regolare di SPY prima della pausa era di $743.2, la quotazione di riapertura di $747.06 — un gap di 0.52% che un ordine market in coda avrebbe accettato senza controllo. Un ordine limit, invece, fissa un prezzo massimo, con il rischio di non essere eseguito; perché le azioni hanno gap overnight spiega la meccanica alla base di questi movimenti.

Fusi orari, bond market e il resto del mondo

Tre discrepanze generano la maggior parte della confusione riguardante l'apertura dei mercati. Fusi orari: gli orari ufficiali sono Eastern — le 9:30 am ET corrispondono alle 6:30 am Pacific e alle 2:30 pm a Londra per gran parte dell'anno — e le date di mercato seguono il fuso ET; pertanto, un lettore in Asia può avere il proprio "oggi" diviso tra due sessioni US. Il bond market: i Treasury sono scambiati secondo il calendario SIFMA, non quello del NYSE — questo calendario osserva tutte le festività del mercato azionario più altre due; le sue chiusure anticipate sono raccomandazioni per le 2:00 pm che si verificano più frequentemente delle mezze giornate del mercato azionario alle 1:00 pm. La divergenza su intere giornate è visibile nei dati:

QueryGiorni feriali nell'ultimo anno con trading azionario ma senza Treasury yield
L'esatto SQL dietro ogni numero
WITH stock_days AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= today() - 370
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY d
    HAVING count() >= 100
)
SELECT toString(d) AS session_date,
       formatDateTime(d, '%W') AS weekday
FROM stock_days
WHERE d <= (SELECT max(date) FROM global_markets.treasury_yields)
  AND d NOT IN (SELECT date FROM global_markets.treasury_yields WHERE date >= today() - 370)
ORDER BY d

Nell'ultimo anno ci sono stati esattamente 2 giorni feriali in cui il mercato azionario ha operato con una sessione completa senza che venisse registrato alcun rendimento Treasury — 2025-10-13 e 2025-11-11, uno a ottobre e uno a novembre: Columbus Day e Veterans Day, le due festività federali durante le quali le azioni operano regolarmente. Il resto del mondo: le borse d'oltreoceano seguono i propri calendari e i futures sugli indici sono scambiati quasi h24 — questo spiega perché un titolo possa riportare "le azioni sono in calo" alle 3:00 am ET mentre tutte le borse US sono chiuse. Le sessioni extended hours intorno a ogni sessione US vanno dalle 4:00 am alle 9:30 am e dalle 4:00 pm alle 8:00 pm ET, con volumi ridotti e spread più ampi; i dettagli tecnici sono disponibili nella guida alle extended hours.

FAQ

Il mercato azionario è aperto in questo momento?

Al momento dell'ultimo aggiornamento dei dati di questa pagina — 09:00 ET del 2026-07-24 — lo stato calcolato era PREMARKET. Oltre l'orario indicato, la regola è la seguente: giorni feriali dalle 9:30 alle 16:00 ET, escluse le date indicate nella tabella delle festività sopra.

Il mercato azionario sarà aperto domani?

Domani sarà una sessione normale, a meno che non sia un sabato, una domenica o una data presente nella tabella delle chiusure sopra. La prossima sessione regolare a calendario, considerando l'ultimo aggiornamento della pagina — incluso oggi, se il mercato è aperto — è il 2026-07-24.

Il mercato azionario è aperto la vigilia di Natale?

Quando il 24 dicembre cade in un giorno feriale, le borse valori statunitensi tengono solitamente una sessione ridotta che si conclude alle 13:00 ET; se cade in un fine settimana, non è prevista alcuna sessione. Il giorno di Natale prevede sempre la chiusura totale — le date esatte per quest'anno sono nella tabella del calendario sopra.

Il mercato azionario è aperto il Black Friday?

Sì. Il venerdì successivo al Thanksgiving è una mezza giornata programmata: il trading regolare termina alle 13:00 ET invece delle 16:00 — circa duecentodieci minute bars sul tape invece di trecentonovanta.

Il mercato obbligazionario è aperto oggi?

Solitamente lo è quando lo è il mercato azionario, ma non sempre. Il mercato Treasury segue il calendario SIFMA: ogni festività del mercato azionario più Columbus Day e Veterans Day, con chiusure anticipate più frequenti (e anticipate alle 14:00). I dati dell'ultimo anno mostrano 2 giorni feriali in cui sono stati scambiati titoli azionari ma non sono stati pubblicati rendimenti Treasury.


Ogni pannello sopra è una query memorizzata e versionata con il relativo codice SQL — espandi qualsiasi pannello per verificarlo. Per controllare autonomamente qualsiasi data, sessione o gap, effettua una richiesta in inglese semplice sul terminale Strasmore.