Strasmore Research
学习 Matt Connor作者: Matt Connor · 更新于 2026-09-05 · data as of September 5, 2026 · refreshed weekly

今天美股开市吗?交易时间与假日查询

查询美国股市今天是否开市、当前交易状态、今日市场日历和未来假日,并了解休市期间下单会发生什么,快速确认交易安排。

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

股市现在开盘吗?

下方的面板会根据本页面数据上次刷新的时点计算答案。它会检查星期几,从交易所假日数据源查询今天的日期,并判断东部时间是否处于官方交易时段内:盘前交易时段从凌晨 4:00 开始,常规交易时段从上午 9:30 开始,盘后交易时段从收盘持续至晚上 8:00。

查询当前市场状态:页面刷新时的工作日、节假日和 ET 时间检查
检查日期星期检查时间(美国东部时间)今日日历市场状态下一正常交易时段距下一交易日天数
2026-09-04Friday09:00normal weekdayPREMARKET2026-09-040
每个数字背后的完整 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 ET、Friday 2026-09-04,计算出的状态为 PREMARKET,今天的日历记录为“normal weekday”。按日程安排,下一次常规交易时段开盘时间为 2026-09-04;如果当前状态为 PREMARKET 或 OPEN,则下一次开盘就是今天。该日期已排除周末和所有全天休市假日。即使遇到较长的假日周末,日期也不会超过几天后。您是在上述时间戳之后阅读本文吗?手动完成同样的三项检查只需几秒:星期几、下方的假日表,以及 ET 时钟。

下一次计划停市及其后续安排

未来日历直接来自交易所数据源。需要注意的一点是:如果今天是节假日或提前收市日,表格会包含今天。查询范围是从今天起的所有停市日,而不是严格晚于今天的停市日。因此,在节假日早晨,第一行与上方的状态面板会显示一致的信息。

查询即将到来的 NYSE 休市和提前收市:日历源及倒计时
休市日期日期为节假日日期状态收市时间(美国东部时间)相差天数
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
每个数字背后的完整 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
自己运行这个查询

下一次计划停市时间为 Labor Day,日期是 2026-09-07closed),距刷新时间戳还有 3 天。凡未列入此表的工作日,均为正常的 9:30–4:00 交易时段。提前收市日的常规交易于美东时间下午 1:00 结束,通常集中在感恩节、圣诞节前夕和美国独立日附近;收盘竞价在这些日期仍会进行,只是提前三小时成交。

市场每年休市多少天?

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

查询本日历年休市:已过(按行情带统计)及未到(按日历)
类别已过去尚未到来总计日历年
full closure73102026
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 个全天休市日,其中 7 个已经过去,3 个尚未到来;此外还有 2 个安排在下午 1:00 提前收市的交易日,其中 2 个尚未到来。(最近几天内的休市日可能会因交易记录的数据接入延迟,暂时不计入任何一项;下一次刷新后,分类会自动校正。)周末构成其余休市日:从 365 天中减去约 104 个周末日和这些节假日后,每年约有 250 个交易日。

行情记录的凭证:最近一个交易时段

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

查询行情带上的最近交易日:K 线数量、当日 SPY 期权成交及最近一次半日交易
最近交易时段星期常规分钟K线SPY期权成交笔数(千)最近提前收市提前收市K线
2026-09-03Thursday21114832026-09-03211
每个数字背后的完整 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-09-03Thursday),共打印 211 根常规交易时段分钟线。完整交易日约有 390 根,提前收市日约有 210 根。同一交易时段约有 1483 千笔 SPY 期权交易成交:期权市场遵循股票市场日历,包括节假日和半日交易日;落在休市周五的到期日会提前至前一个交易日。行情记录中最近一次提前收市日为 2026-09-03,共 211 根分钟线,呈现出下午 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-292012-10-30 全天休市。这是自 1888 年以来首次因天气连续多日休市。2012-10-31 的复市交易日打印了完整的 390 根K线。美国宣布全国哀悼日时,市场分别于 2018-12-05(乔治·H·W·布什总统)和 2025-01-09(吉米·卡特总统)休市。现代以来最长的非预定休市发生在 2001 年 9 月 11 日至 14 日,连续四个交易日。由于我们的分钟数据始于 2003 年,因此未涵盖这段时期。上述每次休市在交易记录中都显示为 0 根常规交易时段K线:没有任何交易成交。

市场收盘期间下单会发生什么?

市场收盘期间不会执行任何订单。在周六、节假日或凌晨两点提交的订单,只会在您的券商处排队,直到下一交易时段;排队中的市价单将按开盘集合竞价确定的价格成交,而此时距离您点击下单可能已经过去数天。一个交易时段收盘价与下一交易时段首笔成交价之间的跳空,就是您所承担的风险敞口,而且可以量化:

查询近期周末和假日周末的 SPY:周五收盘价与重新开盘价
之前最近交易时段重新开市时段停市天数停市前收盘价重新开市价跳空幅度(%)
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
每个数字背后的完整 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
自己运行这个查询

该表涵盖最近10个周末和长周末,days_dark列标出了四天的节假日休市期。最近一次休市期从Fri 2026-08-28持续至Mon 2026-08-31(共3个自然日休市):SPY在休市前常规交易时段的收盘价为$769.34,重新开市时的首笔成交价为$767.33,两者之间的-0.26%跳空幅度,就是排队中的市价单在未预先确定价格的情况下可能承受的结果。限价单则可以限制成交价格,但也可能无法成交;股票为何会隔夜跳空介绍了这些价格变动背后的机制。

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

剩余的大部分“是否开市”疑问,主要源于三种错位。时区:官方交易时段采用东部时间。美国东部时间上午9:30相当于太平洋时间上午6:30,也相当于伦敦时间下午2:30(每年大部分时间如此)。市场日期按东部时间计算,因此亚洲读者的“今天”可能横跨美国市场的两个交易时段。债券市场:美国国债按照SIFMA日历交易,而不是纽约证券交易所的日历。它除遵守所有股市假日外,还额外遵守两个假日。其提前收市时间为下午2:00,这是SIFMA的建议安排,出现频率高于股市下午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-132025-11-11,分别在10月和11月。这两个日期是哥伦布日和退伍军人节,股票市场在这两个联邦假日照常交易。世界其他地区:海外交易所遵循各自的日历,指数期货几乎全天候交易。因此,新闻标题可能在美国东部时间凌晨3:00称“股市正在下跌”,而此时所有美国股票交易所都已收市。每个美国交易时段前后的延长交易时段为美国东部时间凌晨4:00至上午9:30,以及下午4:00至晚上8:00。此时流动性更低,spread更宽;具体机制见延长交易时段指南

常见问题

现在股市开市吗?

截至本页面最近一次数据刷新时,即 2026-09-0409:00 ET,计算出的状态为 PREMARKET。在该时间点之后,规则很简单:工作日美国东部时间上午 9:30 至下午 4:00,减去上方假日表中的日期。

明天股市开市吗?

除非明天是周六、周日或上方休市表中的日期,否则将是正常交易日。截至本页面刷新时(包括今天),日历上最近的下一个股市开市的常规交易日是 2026-09-04

圣诞前夕股市开市吗?

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

黑色星期五股市开市吗?

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

今天债券市场开市吗?

通常与股市同步,但并非总是如此。美国国债市场遵循 SIFMA 日历:包括所有股市假日,以及哥伦布日和退伍军人节;提前收市的情况更多,且通常提前至下午 2:00。过去一年的交易记录显示,有 2 个工作日股市有交易,但国债收益率没有成交记录。


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