Strasmore Research
学习 Matt Connor作者: Matt Connor · 更新于 2026-10-17 · data as of October 17, 2026 · refreshed weekly

今天美国股市开市吗?交易时间与休市日历

查询美国股市今天是否开市、实时交易状态、交易日历、下一次休市及提前收市安排,了解休市期间下单会发生什么。

美国股市通常于周一至周五东部时间上午9:30至下午4:00开市,但预定休市日以及少数下午1:00提前收市日除外。因此,“今天股市开市吗?”实际上只需检查三点:今天是否为工作日、是否属于休市日历中的日期,以及当前处于交易时段的哪个时间点。本页面每次刷新时都会根据交易所实时记录完成这三项检查。上方的“数据截至”时间戳显示了数据的新鲜度。逐个交易时段查看开闭市时间,请参阅股市交易时间;完整日历请参阅市场休市日和提前收市日。

股市现在开市吗?

下方面板会计算本页面数据最近一次刷新时的状态。系统会检查星期几,在交易所节假日数据中查询当天日期,并根据美东时间判断当前时刻处于官方交易时段内还是之外:盘前交易从凌晨4:00开始,常规交易时段从上午9:30开始,盘后交易从收盘持续至晚上8:00。

查询当前市场状态:根据本页刷新时的工作日、假日和东部时间时钟计算
检查日期星期检查时间(美东)今日日历市场状态下一常规交易时段距下一交易时段天数
2026-10-14Wednesday09:00normal weekdayPREMARKET2026-10-140
每个数字背后的完整 SQL
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
自己运行这个查询

截至09:00(美东时间)Wednesday,2026-10-14,计算结果为PREMARKET,当天日历记录为“normal weekday”。日程中下一次常规交易时段开盘时间为2026-10-14;如果当前状态为PREMARKET或OPEN,则下一次开盘日就是当天。该日期已排除周末和所有全天休市的节假日,即使遇到较长的节假日周末,下一次开盘也不会相隔数日以上。若您是在该时间戳之后阅读本文,手动完成同样的三项检查只需几秒:星期几、下方的节假日表,以及美东时间时钟。

下一次预定休市及其后的安排

这份前瞻日历直接来自交易所数据源。有一点需要注意:如果今天本身是节假日或提前收市日,表格会包含今天。查询范围是从今天起的所有休市安排,而不是严格意义上的“今天之后”。因此,在节假日上午,表格首行会与上方的状态面板一致。

查询日历源中的所有即将到来的 NYSE 休市和提前收市,含倒计时
休市日期对应星期节假日日期状态收市时间(美东)相隔天数
2026-11-26ThuThanksgivingclosed43
2026-11-27FriThanksgivingearly-close13:0044
2026-12-24ThuChristmasearly-close13:0071
2026-12-25FriChristmasclosed72
2027-01-01FriNew Years Dayclosed79
2027-01-18MonMartin Luther King, Jr. Dayclosed96
2027-02-15MonWashington's Birthdayclosed124
2027-03-26FriGood Fridayclosed163
2027-05-31MonMemorial Dayclosed229
2027-06-18FriJuneteenthclosed247
2027-07-05MonIndependence Dayclosed264
2027-09-06MonLabor Dayclosed327
每个数字背后的完整 SQL
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
自己运行这个查询

下一次预定交易中断是 Thanksgiving,时间为 2026-11-26(closed),距离刷新时间还有 43 天。凡未列入该表的工作日,均为正常的美东时间上午 9:30 至下午 4:00 交易时段。提前收市日的常规交易于美东时间下午 1:00 结束,主要集中在感恩节、平安夜和美国独立日附近;收盘竞价仍会在这些日子进行,只是提前三小时执行。

每年市场有多少天休市?

“每年大约九到十个假日”是常见的笼统答案。本页可以直接统计,而不是估算。交易所数据源只记录尚未到来的休市日,因此已经过去的休市日需要从成交记录中恢复:如果某个工作日的 SPY 没有打印任何常规交易时段分钟线,说明全天休市;如果大约只打印了半个交易时段(约 210 根,而不是 390 根),说明当天提前收市。

查询本日历年度的休市:已过(根据行情记录统计)及未至(根据日历)
类别已过去仍在未来总计日历年
full closure82102026
early close (1:00 pm)0222026
每个数字背后的完整 SQL
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 包含 10 个全天休市日,其中 8 个已经过去,2 个尚未到来;此外还有 2 个安排在下午 1:00 收市的提前收市日,其中 2 个尚未到来。(最近几天内发生的休市日,在成交记录完成导入前,可能会暂时不计入任何一项;下一次刷新后,分类会自动修正。)周末构成其余休市日:从 365 天中扣除约 104 个周末日和这些假日后,一年大约有 250 个交易时段。

交易记录:最近一个交易时段

日历说明应该发生什么;交易记录显示实际发生了什么。下方面板提取了我们 SPY 分钟K线交易记录中最近实际观测到的交易时段、K线数量、当日打印的 SPY 期权交易笔数,以及回溯交易记录中最近的半日交易时段。

查询行情记录中最近的交易时段:K线数量、当日 SPY 期权成交记录及最近一次半日交易
最近交易时段星期常规分钟K线SPY期权成交记录(千)最近提前收市提前收市K线
2026-10-13Tuesday21012482026-10-13210
每个数字背后的完整 SQL
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
自己运行这个查询

我们交易记录中的最近一个交易时段是 2026-10-13(Tuesday)。该时段打印了 210 根常规交易时段分钟K线。完整交易日通常约有 390 根,提前收市日约有 210 根。同一交易时段约有 1248 千笔独立的 SPY 期权交易成交。期权市场遵循股票市场日历,包括节假日和半日交易时段;落在休市周五的到期日会提前至前一个交易日。交易记录中最近一次提前收市日为 2026-10-13,共 210 根分钟K线,呈现出下午 1:00 收市半日交易的实际形态。需要注意的是,该数据仓库的录入存在一至两天延迟,因此这里的“最近一个交易时段”可能比实际最近交易时段晚一至两天。

市场毫无预警地收盘

计划内休市会出现在日历上;非计划休市则不会。此类情况十分罕见,十年也只有几次。交易记录会留下痕迹:一个工作日原本应有390根K线,却一根也没有。

查询行情记录中的非计划休市:普通工作日无常规交易时段K线
休市日期对应星期名称SPY常规交易时段K线
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
每个数字背后的完整 SQL
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
自己运行这个查询

飓风桑迪导致两大交易所于2012-10-29和2012-10-30全天休市。这是自1888年以来首次因天气连续多日休市。2012-10-31重新开市时,完整交易时段打印了390根K线。美国还曾因全国哀悼日于2018-12-05(老布什总统逝世)和2025-01-09(吉米·卡特总统逝世)休市。现代以来最长的非计划休市发生在2001年9月11日至14日,连续四个交易日。但我们的分钟数据始于2003年,因此不包含这段时期。上述每次休市在交易记录中均显示为0根正常交易时段K线:没有任何成交。

市场休市期间提交的订单会发生什么?

市场休市期间不会有任何订单成交。在周六、节假日或凌晨2:00提交的订单,只会在券商处排队,直到下一交易时段。排队中的市价单将按照开盘集合竞价发现的价格成交,即使这距离您点击下单已经过去数日。一个交易时段收盘价与下一交易时段首笔成交价之间的缺口,就是您需要承担的风险敞口,而且可以量化:

查询近期周末和假日周末的 SPY:周五收盘价与重新开盘成交价对比
中断前最后交易时段重新开市交易时段停牌天数中断前收盘价复牌首笔价跳空幅度 (%)
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
Fri 2026-09-04Tue 2026-09-084770.23769.07-0.15
Fri 2026-09-11Mon 2026-09-143764.2759-0.68
Fri 2026-09-18Mon 2026-09-213761.64766.250.61
Fri 2026-09-25Mon 2026-09-283771.3768.35-0.38
Fri 2026-10-02Mon 2026-10-053769.65769.690.01
Fri 2026-10-09Mon 2026-10-123778.53778.780.03
每个数字背后的完整 SQL
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
自己运行这个查询

表格涵盖最近的11个周末及长周末,其中days_dark列标出了四天的节假日休市。最近一次休市从Fri 2026-10-09持续至Mon 2026-10-12(市场连续3个日历日休市):SPY在休市前常规交易时段的收盘价为$778.53,重新开市后的首笔成交价为$778.78。如果在休市期间排队提交市价单,订单将在事先无法看到成交价的情况下接受0.03%的跳空。限价单则可以锁定最高买入价或最低卖出价,但代价是订单可能无法成交;股票为何会隔夜跳空介绍了这些价格变动背后的机制。

时区、债券市场与世界其他地区

以下三个错配造成了大部分“市场是否开市”的疑惑。时区:官方交易时间以东部时间为准。全年大部分时间,东部时间上午 9:30 相当于太平洋时间上午 6:30、伦敦时间下午 2:30。市场日期也以东部时间为准,因此亚洲读者所说的“今天”可能横跨美国市场的两个交易时段。债券市场:美国国债按照 SIFMA 日历交易,而不是按照 NYSE 日历交易。债券市场除遵守所有股市假日外,还额外遵守两个假日;其提前收市时间为下午 2:00,这类安排出现的频率高于股市下午 1:00 的半日市。全天交易日的差异可以从数据中看出:

查询过去一年中股票交易但无美国国债收益率发布的工作日
交易日期星期
2025-10-13Monday
2025-11-11Tuesday
每个数字背后的完整 SQL
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
自己运行这个查询

在过去一年中,股票市场共有恰好 2 个工作日进行全天交易,但没有任何国债收益率成交记录;2025-10-13 和 2025-11-11,分别发生在10月和11月,即哥伦布日和退伍军人节。这两个联邦假日中,股票市场照常交易。世界其他地区:海外交易所按照各自的日历运行,指数期货几乎全天候交易。因此,新闻标题可能在美国东部时间凌晨 3:00 宣称“股市正在下跌”,而此时美国所有股票交易所都已闭市。每个美国交易时段前后的延长交易时间为东部时间凌晨 4:00 至上午 9:30,以及下午 4:00 至晚上 8:00。此时流动性更低、买卖价差更大;具体机制请参阅延长交易时段指南。

常见问题

当前股市开市吗?

截至本页最近一次数据刷新,时间为 09:00 ET,日期为 2026-10-14,计算结果显示市场状态为 PREMARKET。在该时间点之后,判断规则很简单:美国东部时间工作日9:30至16:00开市,但须排除上方节假日表中的日期。

明天股市开市吗?

除非明天是周六、周日,或属于上方休市表中的日期,否则将按正常交易日开市。截至本页刷新时点(包括今天),日历上最近的下一个正常交易日,即市场开市日,是 2026-10-14。

圣诞前夜股市开市吗?

如果12月24日是工作日,美国证券交易所通常会缩短交易时段,并于美国东部时间13:00收市;如果12月24日落在周末,则全天不开市。圣诞节当天始终全天休市,本年度的具体日期见上方日历表。

黑色星期五股市开市吗?

开市。感恩节后的周五是预定的半日交易日:正常交易于美国东部时间13:00结束,而不是16:00。交易记录上约有210根分钟K线,而不是390根。

今天债券市场开市吗?

通常与股票市场相同,但并非总是如此。美国国债市场遵循SIFMA日历:除包括所有股市休市日外,还包括哥伦布日和退伍军人节,并且更常见提前收市,收市时间为14:00。过去一年的交易记录显示,有 2 个工作日股票市场交易,但美国国债收益率没有成交报价。


上方每个面板都是已存储且有版本记录的查询,其完整SQL位于下方。展开任一面板即可进行审计。如需自行核查任何日期、交易时段或缺口,可在Strasmore终端中用自然语言提问。