O mercado de ações está aberto hoje?
Saiba se o mercado de ações dos EUA está aberto agora. Confira o status em tempo real, o calendário de feriados e como funcionam as ordens em dias de folga.
O mercado de ações dos EUA funciona de segunda a sexta-feira, das 9:30 às 16:00 (horário do Leste), exceto em feriados programados e em alguns fechamentos antecipados às 13:00. Portanto, a pergunta "o mercado de ações está aberto hoje?" depende de três verificações: se é um dia útil, se consta no calendário de feriados e em que horário a sessão se encontra. Esta página cruza essas três informações com os registros em tempo real das bolsas a cada atualização, e o carimbo "dados de" acima indica o frescor das informações. Para ver o horário de cada sessão, consulte horário do mercado de ações; para o calendário completo, veja feriados e fechamentos antecipados do mercado.
O mercado de ações está aberto agora?
O painel abaixo calcula a resposta no momento da última atualização dos dados desta página. Ele verifica o dia da semana, consulta a data atual no feed de feriados da bolsa e posiciona o horário do fuso Eastern-time dentro ou fora dos períodos oficiais: premarket a partir das 4:00 am, sessão regular a partir das 9:30 am e after-hours do fechamento até as 8:00 pm.
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_sessionEm 09:00 ET de Thursday, 2026-07-23, o status calculado foi PREMARKET, com o registro de calendário de hoje como "normal weekday". A próxima abertura da sessão regular no cronograma — hoje mesmo, caso o status seja PREMARKET ou OPEN — é às 2026-07-23. Essa data já pula finais de semana e todos os feriados de fechamento total, e nunca está a mais de alguns dias de distância, mesmo em feriados prolongados. Leu isso após o registro? Os mesmos três critérios levam segundos para serem feitos manualmente: dia da semana, a tabela de feriados abaixo e o relógio ET.
O próximo fechamento agendado — e tudo o que vem depois
O calendário de derivativos vem diretamente do feed da bolsa. Um detalhe importante: a tabela inclui o dia de hoje sempre que hoje for um feriado ou um fechamento antecipado — a consulta busca todos os fechamentos de hoje em diante, não estritamente após hoje — portanto, em uma manhã de feriado, a primeira linha e o painel de status acima estarão em conformidade.
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 16A próxima interrupção agendada é Labor Day em 2026-09-07 (closed), 46 dias após o registro de atualização. Qualquer dia útil que não esteja nesta tabela possui sessão normal das 9:30 às 16:00. Dias de fechamento antecipado encerram as negociações regulares às 13:00 Eastern e concentram-se em torno do Thanksgiving, véspera de Natal e Fourth of July; o leilão de fechamento ainda ocorre nesses dias — ele apenas é executado três horas mais cedo.
Quantos dias o mercado fica fechado por ano?
"Cerca de nove ou dez feriados por ano" é a resposta comum — esta página pode contar em vez de apenas estimar. O feed da bolsa só exibe fechamentos futuros, portanto, os que já passaram são recuperados do histórico: um dia útil no qual o SPY registrou zero barras de minuto em sessão regular foi um fechamento total, e um que registrou aproximadamente metade de uma sessão (cerca de 210 barras em vez de 390) foi um fechamento antecipado.
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 ord2026 apresenta 10 fechamentos totais — 7 já passados, 3 ainda por vir — além de 2 fechamentos antecipados às 13:00, sendo 2 deles ainda pendentes. (Um fechamento ocorrido nos últimos dias pode não aparecer em nenhuma das contagens enquanto o atraso de ingestão do histórico não é resolvido; o cálculo se autocorrige na próxima atualização.) Os fins de semana completam o total de dias de fechamento: subtraia os aproximadamente 104 dias de fim de semana e estes feriados de 365, e um ano resta com cerca de 250 sessões de negociação.
O registro do tape: a sessão mais recente
O calendário indica o que deve acontecer; o tape mostra o que de fato ocorreu. O painel abaixo apresenta a sessão mais recente observada em nosso tape de barras de um minuto do SPY, sua contagem de barras, o número de negociações de opções do SPY registradas no mesmo dia e a sessão de meio período mais recente em todo o histórico do tape.
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_barsA sessão mais recente em nosso tape é 2026-07-21 (Tuesday), que registrou 390 barras de um minuto em sessão regular — um dia completo tem cerca de 390 barras, e um fechamento antecipado cerca de 210. A mesma sessão apresentou aproximadamente 1371 mil negociações individuais de opções do SPY: o mercado de opções segue o calendário de ações, incluindo feriados e meios períodos, e vencimentos que caem em uma sexta-feira fechada são antecipados em um dia. O fechamento antecipado mais recente no tape foi 2025-12-24, com 211 barras de um minuto — o formato padrão de um meio período às 13:00. Uma observação importante: este banco de dados processa as informações com um atraso de um a dois dias, portanto, a "sessão mais recente" aqui pode estar um ou dois dias atrás da sessão real mais atual.
Quando o mercado fecha sem aviso
Fechamentos programados constam no calendário; os não programados não. Eles são raros — apenas alguns por década — e o histórico registra esses eventos: um dia útil que deveria ter registrado 390 barras, mas não registrou nenhuma.
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.1O furacão Sandy deixou as duas principais bolsas sem operação em 2012-10-29 e 2012-10-30 — o primeiro fechamento por clima de vários dias desde 1888 — e a sessão de reabertura em 2012-10-31 registrou um total de 390 barras. 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 seguidas — é anterior aos nossos dados de minuto, que começam em 2003. Cada fechamento acima aparece no histórico como 0 barras de sessão regular: nada foi negociado.
O que acontece com uma ordem enviada enquanto o mercado está fechado?
Nada é executado enquanto o mercado está fechado. Uma ordem enviada em um sábado, em um feriado ou às 2h da manhã apenas fica na fila na sua corretora até a próxima sessão; uma ordem a mercado na fila será transacionada pelo preço que o leilão de abertura determinar — dias após o seu clique. O gap entre o fechamento de uma sessão e a primeira cotação da sessão seguinte é a exposição que você aceita, e ela é mensurável:
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 dA tabela abrange os últimos 10 finais de semana e feriados prolongados — a coluna days_dark indica os feriados de quatro dias. O mais recente ocorreu de Fri 2026-07-17 a Mon 2026-07-20 (3 dias corridos sem negociação): o fechamento da sessão regular do SPY antes do feriado foi de $743.2 e a cotação de reabertura foi de $747.06 — um gap de 0.52% que uma ordem a mercado na fila teria aceitado sem conferir. Uma ordem limitada estabelece um teto de preço, mas com o risco de não ser executada; por que as ações dão gap overnight explica a mecânica por trás desses movimentos.
Fusos horários, o mercado de renda fixa e o resto do mundo
Três divergências geram a maior parte da confusão sobre o funcionamento do mercado. Fusos horários: o horário oficial é o do Leste (ET) — 9:30 am ET equivale a 6:30 am no Pacífico e 2:30 pm em Londres na maior parte do ano — e as datas do mercado seguem o horário ET. Assim, um investidor na Ásia pode ter seu "hoje" dividido entre duas sessões dos EUA. O mercado de renda fixa: os Treasuries seguem o calendário da SIFMA, não o da NYSE — ele observa todos os feriados do mercado de ações mais dois adicionais. Além disso, as recomendações de fechamento antecipado às 2:00 pm ocorrem com mais frequência do que os half-days de 1:00 pm do mercado de ações. A divergência de dias inteiros é visível nos dados:
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 dNo último ano, houve exatamente 2 dias úteis em que o mercado de ações operou em sessão completa e nenhum rendimento de Treasury foi registrado — 2025-10-13 e 2025-11-11, um em outubro e outro em novembro: Columbus Day e Veterans Day, os dois feriados federais em que as ações operam normalmente. O resto do mundo: as bolsas internacionais seguem seus próprios calendários, e os futuros de índices operam quase 24 horas por dia — é por isso que uma manchete pode dizer que "as ações estão caindo" às 3:00 am ET enquanto todas as bolsas dos EUA estão fechadas. O horário estendido de cada sessão nos EUA vai das 4:00 am às 9:30 am e das 4:00 pm às 8:00 pm ET, com menor liquidez e spread maior; os detalhes técnicos estão no guia de horário estendido.
FAQ
O mercado de ações está aberto agora?
Com base na última atualização de dados desta página — 09:00 ET em 2026-07-23 — o status calculado foi PREMARKET. Após este registro, a regra é simples: dias úteis das 9:30 às 16:00 ET, exceto nas datas da tabela de feriados acima.
O mercado de ações estará aberto amanhã?
Amanhã será uma sessão normal, a menos que seja um sábado, um domingo ou uma data listada na tabela de fechamento acima. A sessão regular mais próxima no calendário, considerando a atualização desta página — incluindo hoje, se o mercado estiver aberto — é 2026-07-23.
O mercado de ações abre na véspera de Natal?
Quando o dia 24 de dezembro cai em um dia útil, as bolsas de valores dos EUA costumam operar em horário reduzido, fechando às 13:00 ET; se cair em um fim de semana, não há sessão. O dia de Natal é sempre um fechamento total — as datas exatas deste ano estão na tabela do calendário acima.
O mercado de ações abre na Black Friday?
Sim. A sexta-feira após o Thanksgiving tem sessão reduzida programada: o pregão regular termina às 13:00 ET em vez das 16:00 — aproximadamente 210 minute bars no tape em vez de 390.
O mercado de títulos está aberto hoje?
Geralmente sim, quando o de ações está — mas nem sempre. O mercado de Treasury segue o calendário da SIFMA: todos os feriados do mercado de ações, além do Columbus Day e Veterans Day, com fechamentos antecipados (às 14:00) mais frequentes. O histórico do último ano mostra 2 dias úteis em que houve negociação de ações, mas não de yields de Treasury.
Cada painel acima é uma query armazenada e versionada com seu respectivo SQL — expanda qualquer painel para auditá-lo. Para verificar qualquer data, sessão ou gap por conta própria, faça uma pergunta em inglês no terminal Strasmore.