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

美股几点开盘收盘?NYSE和Nasdaq交易时间

NYSE与Nasdaq常规交易时间为美东时间9:30至16:00,盘前盘后交易延伸至4:00至20:00,周末休市,快速查看完整时段与休市安排。

美国股市交易时间为周一至周五美国东部时间上午9:30至下午4:00。NYSE和Nasdaq均于美国东部时间上午9:30开盘进行常规交易,并于下午4:00收盘。

常规交易时段前后还有两个延长交易时段:盘前交易从美国东部时间凌晨4:00开始,盘后交易持续至晚上8:00。周末及每年大约十个节假日休市。

本页的每个数据均根据真实成交记录计算。每个数字背后的具体查询均可通过一次点击查看。(如需快速了解今日是否开市、下一次休市时间及最近交易时段,请参阅今日股市是否开市。)

股票市场何时开盘和收盘?

常规交易时段是市场报价、指数点位和晚间新闻通常所指的交易时间。该时段从美东时间上午9:30的开盘铃开始,到下午4:00的收盘铃结束。每天交易六个半小时,每周五天。美国两大上市交易所采用相同的交易时间,标准券商订单默认也在这一时段执行。

完整的电子交易日比开收盘铃覆盖的时间更长:

  • 盘前交易:美东时间凌晨4:00至上午9:30,即开盘铃前的电子交易。
  • 常规交易时段:美东时间上午9:30至下午4:00,当天大部分交易在此期间完成。
  • 盘后交易:美东时间下午4:00至晚上8:00,即收盘铃后的电子交易。

两场竞价交易分别位于常规交易时段的两端。开盘竞价在美东时间上午9:30确定各股票的官方开盘价;收盘竞价则是在下午4:00后不久完成的一笔大型撮合交易,并确定当晚各处引用的官方收盘价。本页所有时间均为美东时间:美国西海岸的常规交易时段相应为当地时间上午6:30至下午1:00。

股市交易时段在成交明细上呈现怎样的形态?

定义是一回事;成交明细才是依据。下面的图表采用SPY成交明细中的一段近期完整交易时段,2026-10-01,即Thursday。这是最近一个数据记录已经完整的交易时段(数据源通常滞后一两天)。我们通过统计正常交易时段的分钟K线进行了核实:共有390根,每根对应开闭市铃声之间的一分钟。该时段的第一根K线在美东时间04:00成交,最后一根在美东时间19:59成交;成交明细覆盖完整的延长交易时段,即凌晨4:00至晚上8:00。

查询SPY 全天交易日按时段划分(近期完整交易时段)
交易日期星期常规交易时段K线数当日首根K线分钟当日末根K线分钟首根K线ET时间末根K线ET时间总成交股数(百万)盘前占比常规时段占比收盘后30分钟占比晚间占比前30分钟占比后30分钟占比午间半小时占比
2026-10-01Thursday390240119904:0019:5947.7385.88.52.79.614.64.7
每个数字背后的完整 SQL
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 t
自己运行这个查询

成交量分布最能说明问题。成交量是根据综合成交明细逐笔统计的,收盘竞价成交也计入其结束的正常交易时段。在这整整十六小时内,共有47.7百万股SPY成交,其中正常交易时段占85.8%。长达五个半小时的盘前交易成交量为3%。收盘铃响后的最初半小时成交量为8.5%。这段时间会记录一些在交易时段结束后才上报至成交明细的大宗协商交易。晚间剩余三个半小时合计成交2.7%。

按半小时划分,可以看出全天的交易形态:

查询SPY 每半小时成交量,涵盖盘前至盘后(同一交易时段,美东时间)
32 rows (showing 20)
ET半小时成交股数(百万)
04:000.22
04:300.06
05:000.04
05:300.02
06:000.12
06:300.11
07:000.11
07:300.09
08:000.17
08:300.12
09:000.34
09:304.56
10:003.95
10:303.07
11:002.73
11:303.18
12:002.29
12:302.22
13:002.49
13:303.68
每个数字背后的完整 SQL
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_hour
自己运行这个查询

在这一交易时段中,包含竞价成交的收盘半小时占全天成交量的14.6%,而12:30至1:00的午间半小时占4.7%;开盘半小时占9.6%。收盘时成交量较大有其机械性原因:指数基金、共同基金和以基准为业绩参照的机构会按官方收盘价交易,其订单会集中进入收盘竞价。全天延长交易时段的成交量合计分布在32个不同的半小时区间内。

什么是盘前交易和盘后交易?

盘前交易时段为美东时间凌晨4:00至上午9:30,盘后交易时段为下午4:00至晚上8:00。两者都是围绕常规交易时段的纯电子交易时段。参与者较少,买卖价差通常更大。多数券商在这些时段只接受限价单。公司新闻也集中在这些时段发布:财报通常集中在下午4:00收盘后不久,以及开盘前的几个小时内发布。在这些时间段,股票价格可能大幅偏离前一交易日的收盘价并出现跳空。股票在晚上7:00成交的价格,并不能保证其第二天早盘的开盘位置。

盘后交易和盘前交易中提供了按时段统计的成交量占比、实测买卖价差成本,以及新闻实际发布的具体时间。这是本文的配套内容。简而言之,上方图表已经显示:延长交易时段真实存在,也可以交易,但与常规交易时段相比,流动性较低。

期权和期货的交易时段是什么?

个股期权的交易时间为美东时间上午9:30至下午4:00,不设盘前和盘后交易。少数广泛市场ETF和指数产品的期权可额外交易15分钟,包括SPY、QQQ、IWM,以及SPX和VIX等指数期权,交易时间延长至美东时间下午4:15。2026-10-01显示了两者的分界,统计时段与上文相同:

查询下午4点收盘时的个股与ETF期权:收盘前后AAPL和SPY期权交易(同一交易时段)
合约交易日期3:45至4:00交易数4:00至4:15交易数最后交易ET时间最后交易分钟
AAPL options (single name)2026-10-018623116:00960
SPY options (ETF)2026-10-01639802116116:14974
每个数字背后的完整 SQL
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 contract
自己运行这个查询

常规交易时段的最后15分钟内,两类期权的交易都很活跃:AAPL期权成交8623笔,SPY成交63980笔。收盘铃响后的15分钟则拉开差距:AAPL仅出现1笔零星成交,最后一笔在美东时间16:00成交;SPY成交21161笔,最后一笔在美东时间16:14成交。到期日有自己的交易时钟,0DTE期权何时交易对此有详细说明。

期货的交易时段则完全不同。CME股指期货几乎全天交易,从周日美东时间下午6:00至周五下午5:00,每天美东时间下午5:00暂停一小时。这就是“今早期货上涨”这类标题背后的隔夜交易行情。债券市场在场外交易,通常遵循SIFMA建议的交易时段,大致为美东时间上午8:00至下午5:00,并采用自己的节假日安排:哥伦布日和退伍军人节债券市场休市,但股票市场照常交易。

股市何时休市?

美国股市周末休市。每年约有十个全天假日休市。部分预定的半日交易日则提前收市,东部时间下午1:00收市。下方日历直接依据交易所交易安排生成,并会自动更新:每个假日过去后从列表中移除,下一个假日顺次上移。

查询即将到来的美国股市假日及提前收盘日,依据交易所日历
节假日日期星期节假日日期状态提前收盘ET时间相隔天数
2026-11-26ThuThanksgivingclosed53
2026-11-27FriThanksgivingearly-close01:00 PM54
2026-12-24ThuChristmasearly-close01:00 PM81
2026-12-25FriChristmasclosed82
2027-01-01FriNew Years Dayclosed89
2027-01-18MonMartin Luther King, Jr. Dayclosed106
2027-02-15MonWashington's Birthdayclosed134
2027-03-26FriGood Fridayclosed173
2027-05-31MonMemorial Dayclosed239
2027-06-18FriJuneteenthclosed257
2027-07-05MonIndependence Dayclosed274
2027-09-06MonLabor Dayclosed337
每个数字背后的完整 SQL
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 date
自己运行这个查询

下一次预定休市时间为Thanksgiving,日期是2026-11-26,距今还有53天。加载的日历列出了未来12个预定休市日,并分别标注为全天休市或提前收市。提前收市日的常规交易时段于东部时间下午1:00结束,而不是下午4:00;交易时长为三个半小时,而不是六个半小时,收盘竞价也在下午1:00成交。这类半日交易日主要集中在感恩节和圣诞节前后。周末假日的补休规则(假日若逢周六,则前一个周五休市;若逢周日,则下一个周一休市)、完整日历,以及如何根据逐笔成交记录核查过去的休市安排,详见股市假日与提前收市。

盘面上的半日交易是什么样?

交易日历会标明提前收市时间,盘面则会展示其实际形态。SPY最近一个半日交易日是2025-12-24,从上午9:30到下午1:00收盘竞价,共有Wednesday个常规交易时段的210分钟K线。

查询SPY 最近一次提前收盘交易日按时段划分
交易日期星期早盘K线数末根K线ET时间当日末根K线分钟总成交股数(百万)盘前占比常规时段占比收盘后30分钟占比晚间占比前30分钟占比后30分钟占比收盘价较开盘价变动百分比
2025-12-24Wednesday21016:59101939.91.289.67.81.410.924.213.3
每个数字背后的完整 SQL
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 t
自己运行这个查询

完整交易日的形态在压缩后仍然存在。SPY当天成交的39.9百万股中,缩短后的常规交易时段成交了89.6%。收盘前最后半小时(包括收盘竞价)成交了24.2%,明显高于开盘前半小时的10.9%。这仍是正常交易日收盘竞价成交集中的特征,只是提前了三小时。收盘后的半小时成交了7.8%(再次包含大宗交易报告时段),午后剩余时间仅成交1.4%。延长交易时段也会提前结束:当天最后一根K线在16:59(美东时间)形成。半日交易日的盘后交易大约下午5:00结束,比通常的晚上8:00提前三小时。期权交易也会提前收市:个股期权为下午1:00,延长交易时段的ETF和指数合约为下午1:15。

查询提前收盘交易日SPY每半小时成交量,涵盖盘前至缩短的盘后时段(美东时间)
26 rows (showing 20)
ET半小时成交股数(百万)
04:000.03
04:300
05:000.01
05:300.01
06:000.01
06:300.01
07:000.05
07:300.03
08:000.1
08:300.11
09:000.13
09:304.36
10:003.84
10:303.46
11:004.98
11:303.79
12:005.69
12:309.66
13:003.11
13:300.11
每个数字背后的完整 SQL
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_hour
自己运行这个查询

成交量分布在26个半小时区间内。熟悉的开盘活跃、收盘更重的形态,被压缩进三个半小时之中。

一年有多少个交易日?

扣除周末和节假日后,一个日历年大约有250个交易日。根据成交记录统计,才能确定准确数量:

查询过去一年交易时段,按SPY交易数据统计
交易日数完整交易时段缩短交易时段不规则交易时段周末交易时段首个交易时段最后交易时段
2542522002025-09-292026-10-01
每个数字背后的完整 SQL
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
)
自己运行这个查询

在2025-09-29至2026-10-01期间,市场共进行了254个常规交易日,其中包括252个完整交易日和2个缩短交易日;周末交易时段恰好为0个。成交记录本身证明,周六和周日均未进行常规交易。

全球主要市场的交易时间

美国股市交易时段只是全球近乎连续轮动的一部分。伦敦证券交易所的本地交易时间为上午8:00至下午4:30。其收盘前时段通常与美国常规交易时段开盘后的前两个小时重叠,即美东时间上午9:30至11:30。欧洲市场收盘时,纽约通常还是上午。东京证券交易所的本地交易时间为上午9:00至下午3:30,中间设有午休,整个交易时段都处于美国的隔夜时段内。几乎每个工作日,总有某个主要交易所在开市;但在本页统计口径下,美股上市股票只有在美国交易时段内才会出现成交记录。

股市交易时间常见问题

股市几点开盘?

NYSE和Nasdaq每周一至周五按美国东部时间上午9:30开盘进行常规交易。电子盘前交易早在美国东部时间凌晨4:00开始,但每只股票的正式开盘价由上午9:30的开盘集合竞价确定。

股市周末开盘吗?

不。美国证券交易所周六和周日均不进行交易;上方过去一年的成交记录显示,周末交易时段为0个。周五美国东部时间下午4:00收盘、晚盘交易于晚上8:00结束后,交易将在周一凌晨4:00盘前交易恢复,节假日除外。

什么是盘前交易和盘后交易?

盘前和盘后交易是常规交易时段以外的电子交易。盘前交易时间为美国东部时间凌晨4:00至上午9:30,盘后交易时间为下午4:00至晚上8:00。与常规交易时段相比,这两个时段的参与者较少,买卖价差也更大。多数券商在这两个时段只接受限价单。

市场什么时候提前收盘?

在预定的半日交易日,常规交易于美国东部时间下午1:00结束,而不是下午4:00。此类日期通常包括感恩节后的周五、平日的平安夜,以及某些年份的7月3日。过去一年的成交记录显示,共有2个缩短交易时段。

如果股票在收盘时仍处于停牌状态,会发生什么?

如果股票在收盘铃响时仍处于停牌状态,当天不会进行延迟收盘集合竞价。根据交易所规则,如果停牌持续到美国东部时间约下午3:50之后,就不能再进行恢复交易集合竞价。因此,停牌将持续至收盘。由于没有集合竞价确定价格,交易所会将停牌前最后五分钟内该股票自身成交的成交量加权平均价作为正式收盘价,而不是简单采用最后成交价。停牌只针对相关股票,市场其他部分仍会按计划于下午4:00收盘。

股市是下午4:00还是4:30收盘?

美国证券交易所的常规交易于美国东部时间下午4:00收盘。下午4:00之后仍在变动的报价来自盘后交易,盘后交易持续至晚上8:00;少数指数产品则交易至下午4:15。


交易时间是日程表,成交记录则是实际凭证。上方每个面板都是一个已存储的查询,可在Strasmore终端中打开、编辑并重新运行。您可以用自然语言查询任何交易时段、任何ticker,或下一个临近的休市日。