Horario del mercado bursátil: abre 9:30 y cierra 4:00 ET
¿A qué hora abre y cierra el mercado bursátil? La NYSE y el Nasdaq operan de 9:30 a. m. a 4 p. m. ET, con premarket y after-hours; cierran los fines de semana.
El horario habitual del mercado bursátil de Estados Unidos es de 9:30 a. m. a 4:00 p. m., hora del Este, de lunes a viernes. Tanto la NYSE como el Nasdaq abren la sesión regular a las 9:30 a. m. ET y la cierran a las 4:00 p. m. ET. Alrededor de esa sesión existen dos ventanas ampliadas: la negociación premarket, desde las 4:00 a. m. ET, y la negociación after-hours, hasta las 8:00 p. m. ET. Los mercados permanecen cerrados los fines de semana y aproximadamente diez días festivos al año. Todas las cifras de esta página se obtienen de registros reales de operaciones. La consulta exacta que respalda cada cifra está disponible con un solo clic. (Para consultar rápidamente el próximo cierre o la sesión más reciente, vea ¿está abierto hoy el mercado bursátil?.)
¿A qué hora abre y cierra el mercado de acciones?
La sesión regular, el horario al que se refieren los precios cotizados, los niveles de los índices y las noticias vespertinas, va desde la campana de apertura a las 9:30 a. m., hora del Este (ET), hasta la campana de cierre a las 4:00 p. m. ET: seis horas y media, cinco días a la semana. Las dos principales bolsas de cotización de Estados Unidos siguen el mismo horario, y una orden estándar de una casa de bolsa opera dentro de esta ventana de forma predeterminada.
La jornada completa de negociación electrónica es más amplia que el horario de las campanas:
- Premercado: de 4:00 a. m. a 9:30 a. m. ET, negociación electrónica antes de la campana de apertura.
- Sesión regular: de 9:30 a. m. a 4:00 p. m. ET, cuando se concentra la mayor parte de la actividad del día.
- Operaciones posteriores al cierre: de 4:00 p. m. a 8:00 p. m. ET, negociación electrónica después de la campana de cierre.
Dos subastas delimitan la jornada regular. Una subasta de apertura establece el precio oficial de apertura de cada acción a las 9:30 a. m. La subasta de cierre, una única operación de gran volumen que cruza órdenes momentos después de las 4:00 p. m., establece el precio oficial de cierre que se cotiza en todas partes esa noche. Todos los horarios de esta página corresponden a la hora del Este: en la costa oeste de Estados Unidos, la misma sesión regular va de las 6:30 a. m. a la 1:00 p. m.
¿Cómo se ven los horarios del mercado accionario en el tape?
Las definiciones son una cosa; el tape es la prueba. Los paneles siguientes toman una sesión reciente de duración completa del tape de SPY, 2026-10-14, un Wednesday, la sesión más reciente con la antigüedad suficiente para que su registro esté completo (el flujo de datos lleva uno o dos días de retraso), verificada mediante el conteo de sus barras de un minuto de la sesión regular: 390, una por cada minuto entre las campanadas de apertura y cierre. La primera barra de la sesión se registró a las 04:00 ET y la última a las 19:59 ET; el tape abarca toda la jornada extendida, de las 4:00 a. m. a las 8:00 p. m.
| fecha de sesión | día de la semana | barras de sesión regular | minuto de la primera barra del día | minuto de la última barra del día | ET de la primera barra | ET de la última barra | acciones totales (M) | premarket (%) | sesión regular (%) | 30 min posteriores al cierre (%) | sesión nocturna (%) | primeros 30 min (%) | últimos 30 min (%) | media hora del mediodía (%) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 |
El SQL exacto detrás de cada cifra
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 distribución del volumen es la clave. Se obtiene operación por operación a partir del tape consolidado, y el print de la subasta de cierre se contabiliza dentro de la sesión regular que concluye. De los 55.7 millones de acciones de SPY negociadas durante esas dieciséis horas, la sesión regular concentró 86.2%. En el premarket de cinco horas y media se registraron 2.6%. La media hora inmediatamente posterior al cierre registró 9%, una ventana que capta grandes operaciones negociadas que se reportan al tape una vez terminada la sesión, y las tres horas y media restantes de la tarde registraron 2.1% en conjunto.
Los intervalos de media hora muestran la estructura del día:
| media hora ET | acciones (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 |
El SQL exacto detrás de cada cifra
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_hourEn esta sesión, la última media hora, incluido el print de la subasta, concentró 25.1% del volumen total del día, frente a 3.5% en la media hora del almuerzo, de las 12:30 a la 1:00; la primera media hora concentró 8.1%. El elevado volumen del cierre tiene una explicación mecánica: los fondos indexados, los fondos mutuos y las instituciones que siguen un benchmark operan al precio oficial de cierre, y sus órdenes se concentran en la subasta de cierre. En total, el volumen se distribuyó en 32 intervalos distintos de media hora durante la jornada extendida.
¿Qué son las operaciones premarket y after-hours?
El horario premarket (de 4:00 a. m. a 9:30 a. m., hora del Este) y el horario after-hours (de 4:00 p. m. a 8:00 p. m., hora del Este) son ventanas de negociación exclusivamente electrónicas alrededor de la sesión regular. Participan menos operadores, los spreads bid-ask son más amplios y la mayoría de los brokers solo acepta órdenes limitadas en estas sesiones. En ellas se concentra buena parte de las noticias corporativas: los resultados suelen publicarse justo después del cierre de las 4:00 p. m. y durante las horas previas a la apertura. En esos periodos, el precio de una acción puede abrir con un gap muy alejado de su cierre anterior. Un precio registrado a las 7:00 p. m. no garantiza dónde abrirá la acción a la mañana siguiente.
Las participaciones del volumen por sesión, los costos medidos del spread bid-ask y el momento exacto en que se publican los titulares están en operaciones after-hours y premarket, el artículo complementario de esta página. En resumen, como muestran los paneles anteriores: las sesiones extendidas son reales y permiten operar, pero tienen poca liquidez frente a la sesión regular.
¿En qué horario operan las opciones y los futuros?
Las opciones sobre empresas individuales operan de 9:30 a. m. a 4:00 p. m., hora del Este (ET), sin sesión premarket ni after-hours. Las opciones sobre una lista reducida de ETFs de mercado amplio y productos sobre índices, como SPY, QQQ e IWM, además de opciones sobre índices como SPX y VIX, tienen 15 minutos adicionales, hasta las 4:15 p. m. ET. El tape muestra la diferencia en 2026-10-14, durante la misma sesión analizada anteriormente:
| contrato | fecha de sesión | operaciones de 3:45 a 4:00 | operaciones de 4:00 a 4:15 | última operación ET | minuto de la última operación del día |
|---|---|---|---|---|---|
| AAPL options (single name) | 2026-10-14 | 11803 | 3 | 16:00 | 960 |
| SPY options (ETF) | 2026-10-14 | 64434 | 29698 | 16:14 | 974 |
El SQL exacto detrás de cada cifra
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 contractLos últimos 15 minutos de la sesión regular fueron activos en ambos tapes: 11803 operaciones de opciones sobre AAPL y 64434 sobre SPY. La diferencia se observó en los 15 minutos posteriores al cierre: AAPL registró 3 operaciones aisladas, la última a las 16:00 ET, mientras que SPY registró 29698 operaciones, la última a las 16:14 ET. El vencimiento tiene su propio horario; cuándo operan las opciones 0DTE lo explica.
Los futuros siguen un horario completamente distinto. Los futuros sobre índices bursátiles de CME operan casi 24 horas, desde el domingo a las 6:00 p. m. ET hasta el viernes a las 5:00 p. m. ET, con una pausa diaria de una hora a las 5:00 p. m. Ese es el tape nocturno que está detrás de cada titular que dice que «los futuros suben esta mañana». El mercado de bonos opera over-the-counter dentro del horario recomendado por SIFMA, aproximadamente de 8:00 a. m. a 5:00 p. m. ET, y tiene su propio calendario de feriados: los bonos cierran por Columbus Day y Veterans Day, mientras las acciones siguen operando.
¿Cuándo cierra el mercado de valores?
Los mercados de valores de Estados Unidos cierran los fines de semana, durante aproximadamente diez feriados de jornada completa al año y antes, a la 1:00 p. m., hora del Este, en algunos días programados de media sesión. El calendario que aparece a continuación proviene directamente del horario de la bolsa y se actualiza automáticamente: cada feriado desaparece cuando pasa y el siguiente ocupa su lugar.
| fecha del feriado | día de la semana | feriado | estado del día | cierre anticipado ET | días restantes |
|---|---|---|---|---|---|
| 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 |
El SQL exacto detrás de cada cifra
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 dateEl próximo cierre programado es Thanksgiving el 2026-11-26, dentro de 40 días. El calendario cargado muestra 12 cierres fechados próximos, cada uno identificado como cierre de jornada completa o cierre anticipado. En un día de cierre anticipado, la sesión regular termina a la 1:00 p. m., hora del Este, en lugar de las 4:00 p. m. Son tres horas y media de negociación, frente a seis horas y media, y la subasta de cierre registra operaciones a la 1:00 p. m. Estos días de media sesión se concentran alrededor de Thanksgiving y Navidad. Las reglas para compensar feriados que caen en fin de semana —un feriado en sábado cierra el mercado el viernes anterior y uno en domingo, el lunes siguiente—, el calendario completo y el procedimiento para auditar un cierre pasado a partir del tape se explican en feriados y cierres anticipados del mercado de valores.
¿Cómo se ve una sesión de media jornada en el tape?
El calendario indica los cierres anticipados; el tape muestra cómo se desarrolla la sesión. La media jornada más reciente en el tape de SPY fue 2025-12-24, un Wednesday: 210 barras de un minuto de la sesión regular, desde las 9:30 a. m. hasta la subasta de cierre de la 1:00 p. m.
| fecha de sesión | día de la semana | barras de la sesión matutina | ET de la última barra | minuto de la última barra del día | acciones totales (M) | premarket (%) | sesión regular (%) | 30 min posteriores al cierre (%) | sesión nocturna (%) | primeros 30 min (%) | últimos 30 min (%) | cierre menos apertura (%) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025-12-24 | Wednesday | 210 | 16:59 | 1019 | 39.9 | 1.2 | 89.6 | 7.8 | 1.4 | 10.9 | 24.2 | 13.3 |
El SQL exacto detrás de cada cifra
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 estructura de una jornada completa se mantiene pese a la compresión. De los 39.9 millones de acciones de SPY que registraron operaciones, la sesión regular acortada concentró 89.6%, y la última media hora antes del cierre de la 1:00 p. m., incluida la operación de la subasta de cierre, concentró 24.2%. Esa cifra superó ampliamente el 10.9% de la primera media hora. Fue la misma concentración de actividad en la subasta de cierre de una jornada normal, adelantada tres horas. La media hora posterior al cierre registró 7.8% —nuevamente, durante la ventana de reporte de bloques— y el resto de la tarde apenas registró 1.4%. El horario extendido también terminó antes: la última barra del día se registró a las 16:59 ET. En las medias jornadas, la sesión after-hours termina alrededor de las 5:00 p. m., tres horas antes que el horario habitual de las 8:00 p. m. Las opciones también cierran antes: a la 1:00 p. m. para acciones individuales y a la 1:15 p. m. para los contratos de ETF e índices con horario extendido.
| media hora ET | acciones (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 |
El SQL exacto detrás de cada cifra
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_hourEl volumen se distribuyó en 26 bloques de media hora. La estructura habitual, con mayor actividad en la apertura y un cierre más intenso, quedó comprimida en tres horas y media.
¿Cuántas sesiones de trading tiene un año?
Al excluir los fines de semana y los días festivos, un año calendario deja aproximadamente 250 sesiones de trading. El recuento de la cinta fija el número exacto:
| días de operación | sesiones completas | sesiones acortadas | sesiones irregulares | sesiones de fin de semana | primera sesión | última sesión |
|---|---|---|---|---|---|---|
| 253 | 251 | 2 | 0 | 0 | 2025-10-13 | 2026-10-14 |
El SQL exacto detrás de cada cifra
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
)Entre 2025-10-13 y 2026-10-14, el mercado celebró 253 sesiones regulares: 251 jornadas completas y 2 jornadas abreviadas. Además, hubo exactamente 0 sesiones de fin de semana, el registro de la propia cinta que confirma que ningún sábado ni domingo tuvo una sesión regular.
Horario de las bolsas en el mundo
El horario de Estados Unidos es solo una parte de una rotación global casi continua. La Bolsa de Londres opera de 8:00 a. m. a 4:30 p. m., hora local. Su tramo final suele coincidir con las dos primeras horas de la sesión regular en Estados Unidos, de 9:30 a. m. a 11:30 a. m., hora del Este. Los cierres europeos ocurren a media mañana en Nueva York. Tokio opera de 9:00 a. m. a 3:30 p. m., hora local, con una pausa para el almuerzo, completamente dentro del horario nocturno de Estados Unidos. Alguna bolsa importante está abierta durante casi cualquier día hábil. Sin embargo, una acción cotizada en Estados Unidos solo registra operaciones durante el horario estadounidense que se mide en esta página.
Preguntas frecuentes sobre los horarios del mercado de valores
¿A qué hora abre el mercado de valores?
La NYSE y Nasdaq abren la sesión regular a las 9:30 a. m., hora del Este, de lunes a viernes. La negociación electrónica premarket comienza mucho antes, a las 4:00 a. m. ET, pero el precio oficial de apertura de cada acción se fija en la subasta de apertura de las 9:30 a. m.
¿El mercado de valores abre los fines de semana?
No. Las bolsas estadounidenses no celebran sesiones los sábados ni los domingos. Los datos de tape del último año que aparecen arriba muestran 0 sesiones de fin de semana. Después del cierre del viernes a las 4:00 p. m. y del límite de la sesión after-hours a las 8:00 p. m., la negociación se reanuda con el premarket del lunes a las 4:00 a. m., salvo en días festivos.
¿Qué son la negociación premarket y la after-hours?
Es la negociación electrónica fuera del horario regular. El premarket funciona de 4:00 a. m. a 9:30 a. m. ET y la sesión after-hours, de 4:00 p. m. a 8:00 p. m. ET. Ambas operan con menos participantes y spreads bid-ask más amplios que la sesión regular. Además, la mayoría de los brokers solo acepta órdenes limitadas durante esos horarios.
¿Cuándo cierra antes el mercado?
En los días de media sesión programados, la negociación regular termina a la 1:00 p. m. ET en lugar de las 4:00 p. m. Esto ocurre normalmente el viernes posterior a Thanksgiving, en Christmas Eve cuando cae en un día laborable y el 3 de julio en algunos años. Los datos de tape del último año muestran 2 sesiones abreviadas.
¿Qué ocurre si una acción permanece suspendida al cierre?
Una acción que sigue suspendida cuando suena la campana de cierre no tiene una subasta de cierre posterior ese día. Las reglas de la bolsa prohíben una subasta de reapertura cuando la suspensión se prolonga más o menos allá de las 3:50 p. m. ET. Por lo tanto, la suspensión continúa hasta el cierre. Como no hay una subasta que fije el precio, la bolsa utiliza como precio oficial de cierre el precio promedio ponderado por volumen de las operaciones de la propia acción durante los cinco minutos finales previos a la suspensión, no simplemente su última operación. Las suspensiones se aplican a cada acción por separado. El resto del mercado cierra a las 4:00 p. m., como estaba programado.
¿El mercado de valores cierra a las 4:00 o a las 4:30?
Las bolsas estadounidenses cierran la negociación regular a las 4:00 p. m. ET. Las cotizaciones que siguen moviéndose después corresponden a la sesión after-hours, que funciona hasta las 8:00 p. m. ET. Algunos productos sobre índices también se negocian hasta las 4:15 p. m. ET.
El horario del mercado es el programa; el tape es el comprobante. Cada panel de arriba es una consulta almacenada que puedes abrir, editar y volver a ejecutar en la terminal de Strasmore. Puedes revisar cualquier sesión, cualquier ticker o el próximo cierre programado en lenguaje sencillo.