Strasmore Research
Aprendizado Matt ConnorPor Matt Connor · Atualizado 2026-09-05 · data as of September 5, 2026 · refreshed weekly

A bolsa está aberta hoje? Horário do mercado dos EUA

Veja se o mercado de ações dos EUA está aberto hoje, consulte o calendário e os próximos feriados e saiba o que ocorre com ordens enviadas durante o fechamento.

O mercado de ações dos EUA funciona de segunda a sexta-feira, das 9h30 às 16h, no horário do Leste, exceto nos feriados programados e em alguns dias com encerramento antecipado às 13h. Por isso, a pergunta “o mercado de ações está aberto hoje?” se resume a três verificações: hoje é um dia útil, a data consta no calendário de feriados e em que ponto do pregão está o relógio. Esta página faz as três verificações com base nos registros atualizados das bolsas a cada atualização, e o carimbo “dados de” acima indica a atualidade das informações. Para consultar o horário de cada sessão, veja horário do mercado de ações; para consultar o calendário completo, veja feriados do mercado e encerramentos antecipados.

A bolsa está aberta agora?

O painel abaixo calcula a resposta no momento em que os dados desta página foram atualizados pela última vez. Ele verifica o dia da semana, consulta a data de hoje na lista de feriados da bolsa e posiciona o horário do leste dos EUA dentro ou fora das janelas oficiais: pré-mercado a partir das 4h, sessão regular a partir das 9h30 e after-hours do fechamento até as 20h.

QueryStatus do mercado no refresh desta página: dia da semana, feriado e horário ET
data verificadadia da semanahorário verificado ETcalendário de hojestatus do mercadopróxima sessão regulardias até a próxima sessão
2026-09-04Friday09:00normal weekdayPREMARKET2026-09-040
O SQL exato por trás de cada número
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
Execute você mesmo

Às 09:00 ET de Friday, 2026-09-04, o status calculado era PREMARKET, com a entrada de hoje no calendário: "normal weekday". A próxima abertura da sessão regular prevista, hoje mesmo quando o status for PREMARKET ou OPEN, é 2026-09-04. Essa data já exclui fins de semana e todos os feriados de fechamento integral. Ela nunca fica a mais de alguns dias, mesmo quando há um feriado prolongado. Está lendo isto depois do horário indicado? As mesmas três verificações levam alguns segundos: dia da semana, tabela de feriados abaixo e horário ET.

O próximo fechamento programado e tudo o que vem depois

O calendário futuro vem diretamente do feed da bolsa. Há uma nuance importante: a tabela inclui o dia de hoje quando ele próprio é feriado ou tem fechamento antecipado. A consulta busca todos os fechamentos a partir de hoje, e não apenas os posteriores. Assim, na manhã de um feriado, a primeira linha e o painel de status acima estarão de acordo.

QueryTodos os próximos fechamentos e fechamentos antecipados da NYSE no calendário, com contagem regressiva
data de fechamentocai emferiadostatus do diafecha às ETdias restantes
2026-09-07MonLabor Dayclosed3
2026-11-26ThuThanksgivingclosed83
2026-11-27FriThanksgivingearly-close13:0084
2026-12-24ThuChristmasearly-close13:00111
2026-12-25FriChristmasclosed112
2027-01-01FriNew Years Dayclosed119
2027-01-18MonMartin Luther King, Jr. Dayclosed136
2027-02-15MonWashington's Birthdayclosed164
2027-03-26FriGood Fridayclosed203
2027-05-31MonMemorial Dayclosed269
2027-06-18FriJuneteenthclosed287
2027-07-05MonIndependence Dayclosed304
O SQL exato por trás de cada número
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
Execute você mesmo

A próxima interrupção programada será Labor Day em 2026-09-07 (closed), daqui a 3 dias, considerando a data e a hora da atualização. Qualquer dia útil que não esteja nesta tabela terá uma sessão normal, das 9h30 às 16h. Nos dias de fechamento antecipado, o pregão regular termina às 13h, no horário do leste dos EUA. Esses dias se concentram no Thanksgiving, na véspera de Natal e no Fourth of July. O leilão de fechamento ainda ocorre nesses dias, mas os negócios são registrados três horas mais cedo.

Quantos dias o mercado fica fechado por ano?

“Cerca de nove ou dez feriados por ano” é a resposta padrão. Esta página pode contar, em vez de estimar. O feed da bolsa só informa os fechamentos que ainda vão ocorrer. Por isso, os fechamentos já passados são recuperados do tape: um dia útil em que o SPY não registrou nenhum candle de minuto no pregão regular foi um fechamento integral. Um dia que registrou aproximadamente metade do pregão, cerca de 210 candles em vez de 390, foi um fechamento antecipado.

QueryFechamentos neste ano-calendário: já ocorridos (contados do tape) e ainda previstos (do calendário)
categoriajá passouainda por virtotalano-calendário
full closure73102026
early close (1:00 pm)0222026
O SQL exato por trás de cada número
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
Execute você mesmo

2026 inclui 10 fechamentos integrais, dos quais 7 já ocorreram e 3 ainda estão por vir, além de 2 fechamentos antecipados programados para 13h, dos quais 2 ainda vão ocorrer. (Um fechamento ocorrido nos últimos dias pode ficar brevemente fora das duas contagens enquanto o atraso na ingestão do tape é processado. A divisão se corrige automaticamente na próxima atualização.) Os fins de semana completam os dias de fechamento: subtraindo os cerca de 104 dias de fim de semana e esses feriados de 365, o ano fica com aproximadamente 250 sessões de negociação.

O recibo do tape: a sessão mais recente

O calendário indica o que deveria acontecer; o tape mostra o que aconteceu. O painel abaixo reúne a sessão mais recente efetivamente observada no nosso tape de barras de um minuto do SPY, a quantidade de barras, o número de operações com opções de SPY executadas no mesmo dia e o meio pregão mais recente em todo o tape histórico.

QuerySessão mais recente no tape: número de barras, negócios de opções de SPY no mesmo dia e último meio período observado
sessão mais recentedia da semanabarras de minuto regularesnegócios de opções de SPY em milharesúltimo fechamento antecipadobarras do fechamento antecipado
2026-09-03Thursday21114832026-09-03211
O SQL exato por trás de cada número
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
Execute você mesmo

A sessão mais recente no nosso tape é 2026-09-03 (Thursday), com 211 barras de um minuto no pregão regular. Um dia completo tem cerca de 390 barras; um fechamento antecipado, cerca de 210. Na mesma sessão, foram realizadas aproximadamente 1483 mil operações individuais com opções de SPY. O mercado de opções segue o calendário do mercado à vista, incluindo feriados e meios pregões, e vencimentos que caem em uma sexta-feira sem pregão são antecipados em um dia. O fechamento antecipado mais recente no tape foi em 2026-09-03, com 211 barras de um minuto, o formato observado de um meio pregão encerrado à 13h. Uma observação importante: este repositório recebe os dados com uma defasagem de um a dois dias. Portanto, a “sessão mais recente” aqui pode estar um ou dois dias atrás da sessão efetivamente mais recente.

Quando o mercado fecha sem aviso

Fechamentos programados ficam no calendário; os não programados, nunca. Eles são raros, ocorrem poucas vezes por década, e o tape registra esses episódios: um dia útil que deveria ter gerado 390 barras, mas não gerou nenhuma.

QueryFechamentos não programados no tape: zero barras da sessão regular em um dia útil comum
data de fechamentocai emnomebarras da sessão regular do SPY
2012-10-29MonHurricane Sandy — day 10
2012-10-30TueHurricane Sandy — day 20
2012-10-31WedReopening after Sandy390
2018-12-05WedMourning — George H. W. Bush0
2025-01-09ThuMourning — Jimmy Carter0
O SQL exato por trás de cada número
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
Execute você mesmo

O furacão Sandy manteve as duas principais bolsas fechadas em 2012-10-29 e 2012-10-30, o primeiro fechamento por condições meteorológicas durante vários dias desde 1888. Na reabertura, em 2012-10-31, foram registradas 390 barras completas. Dias nacionais de luto fecharam o mercado em 2018-12-05 (Presidente George H. W. Bush) e 2025-01-09 (Presidente Jimmy Carter). O fechamento não programado mais longo da era moderna, de 11 a 14 de setembro de 2001, quatro sessões consecutivas, ocorreu antes do início dos nossos dados de minuto, que começam em 2003. Cada fechamento acima aparece no tape como 0 barras da sessão regular: não houve negociações.

O que acontece com uma ordem enviada enquanto o mercado está fechado?

Nada é executado enquanto o mercado está fechado. Uma ordem enviada no sábado, em um feriado ou às 2h simplesmente fica na fila da corretora até o próximo pregão. Uma ordem a mercado enfileirada é executada ao preço encontrado pelo leilão de abertura, dias depois de você ter clicado. A diferença entre o fechamento de um pregão e o primeiro print do pregão seguinte é a exposição que você assume. Ela pode ser mensurada:

QuerySPY nos fins de semana e fins de semana com feriado recentes: fechamento de sexta-feira vs. primeiro negócio na reabertura
última sessão antessessão de reaberturadias sem negociaçãofechamento antes da interrupçãopreço na reaberturagap (%)
Fri 2026-06-26Mon 2026-06-293729.09736.521.02
Thu 2026-07-02Mon 2026-07-064744.8748.740.53
Fri 2026-07-10Mon 2026-07-133754.9752.47-0.32
Fri 2026-07-17Mon 2026-07-203743.2747.060.52
Fri 2026-07-24Mon 2026-07-273738.85744.910.82
Fri 2026-07-31Mon 2026-08-033746.81749.440.35
Fri 2026-08-07Mon 2026-08-103773.2772.6-0.08
Fri 2026-08-14Mon 2026-08-173776.3776.18-0.02
Fri 2026-08-21Mon 2026-08-243765.69764.78-0.12
Fri 2026-08-28Mon 2026-08-313769.34767.33-0.26
O SQL exato por trás de cada número
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
Execute você mesmo

A tabela abrange os últimos 10 fins de semana e fins de semana prolongados. A coluna days_dark identifica os recessos de quatro dias por causa de feriados. O mais recente ocorreu de Fri 2026-08-28 a Mon 2026-08-31 (3 dias corridos sem negociação): o fechamento do SPY no pregão regular antes do recesso foi de $769.34, e o print na reabertura foi de $767.33. Isso representa um gap de -0.26% que uma ordem a mercado enfileirada teria aceitado sem conhecer o preço. Uma ordem limitada restringe o preço, mas pode não ser executada; por que as ações abrem com gap durante a noite explica a mecânica por trás desses movimentos.

Fusos horários, mercado de títulos e o resto do mundo

Três divergências geram a maior parte da confusão restante sobre “estar aberto”. Fusos horários: o horário oficial é o do Leste dos EUA; 9h30 ET corresponde a 6h30 no Pacífico e a 14h30 em Londres durante a maior parte do ano; e as datas do mercado seguem o horário ET. Por isso, para um leitor na Ásia, o “hoje” pode abranger duas sessões nos EUA. Mercado de títulos: os Treasuries seguem o calendário da SIFMA, não o da NYSE. Eles observam todos os feriados do mercado de ações e mais dois, e seus fechamentos antecipados são recomendações para as 14h, que ocorrem com mais frequência do que os pregões reduzidos do mercado de ações, encerrados às 13h. A divergência de dias inteiros aparece nos dados:

QueryDias úteis no último ano em que as ações negociaram, mas nenhum yield do Treasury foi divulgado
data da sessãodia da semana
2025-10-13Monday
2025-11-11Tuesday
O SQL exato por trás de cada número
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
Execute você mesmo

No último ano, houve exatamente 2 dias úteis em que o mercado de ações teve uma sessão completa, mas nenhum yield de Treasury foi registrado: 2025-10-13 e 2025-11-11, um em outubro e outro em novembro: o Dia de Colombo e o Dia dos Veteranos, os dois feriados federais em que o mercado de ações opera normalmente. O resto do mundo: as bolsas estrangeiras seguem seus próprios calendários, e os futuros de índices são negociados praticamente ininterruptamente. É por isso que uma manchete pode dizer que “as ações estão caindo” às 3h ET, enquanto todas as bolsas americanas estão fechadas. O horário estendido em torno de cada sessão nos EUA vai das 4h às 9h30 e das 16h às 20h ET, com menor liquidez e spreads mais amplos; os detalhes estão no guia do horário estendido.

FAQ

A bolsa está aberta agora?

Na última atualização dos dados desta página, às 09:00 ET de 2026-09-04, o status calculado era PREMARKET. Depois desse horário, a regra é simples: dias úteis, das 9h30 às 16h ET, excluindo as datas da tabela de feriados acima.

A bolsa estará aberta amanhã?

Amanhã será uma sessão normal, exceto se for sábado, domingo ou uma data da tabela de fechamentos acima. A sessão regular mais próxima no calendário, considerando a atualização desta página e incluindo hoje, em que o mercado estará aberto, é 2026-09-04.

A bolsa está aberta na véspera de Natal?

Quando 24 de dezembro cai em um dia útil, as bolsas americanas normalmente realizam uma sessão mais curta, com fechamento às 13h ET. Quando a data cai no fim de semana, não há sessão. O dia de Natal é sempre um fechamento integral. As datas exatas deste ano estão na tabela do calendário acima.

A bolsa está aberta na Black Friday?

Sim. A sexta-feira após o Thanksgiving é uma sessão programada de meio período. O pregão regular termina às 13h ET, em vez das 16h. Isso representa cerca de 210 barras de minuto no tape, contra 390.

O mercado de títulos está aberto hoje?

Normalmente, quando as ações estão sendo negociadas, mas não sempre. O mercado de Treasuries segue o calendário da SIFMA: todos os feriados do mercado acionário, além do Columbus Day e do Veterans Day, com mais fechamentos antecipados e, com frequência, às 14h. O tape do último ano mostra 2 dias úteis em que as ações foram negociadas, mas não houve prints de yields dos Treasuries.


Cada painel acima é uma query armazenada e versionada, com seu SQL exato logo abaixo. Expanda qualquer painel para auditá-lo. Para verificar qualquer data, sessão ou intervalo por conta própria, faça uma pergunta em inglês simples no terminal Strasmore.

#market hours#holidays#trading calendar