Strasmore Research
學習 Matt Connor作者: Matt Connor · 更新於 2026-10-18 · data as of October 18, 2026 · refreshed weekly

美股交易時間:美東9:30開盤、4:00收盤

NYSE與Nasdaq一般交易時段為美東時間上午9:30至下午4:00,另有凌晨4:00起的盤前交易及延長至晚上8:00的盤後交易,週末休市。

美國股市交易時間為週一至週五美東時間上午9:30至下午4:00。NYSE與Nasdaq均於美東時間上午9:30開啟一般交易,並於下午4:00收市。一般交易時段前後另有兩個延長交易時段:盤前交易自美東時間凌晨4:00開始,盤後交易則持續至晚上8:00。市場週末休市,每年約有十個假日休市。本文所有數字均根據實際成交紀錄計算,每個數字背後的查詢均可透過一個點擊查看。(如需快速瀏覽今日是否開市、下一個休市日及最近交易時段,請參閱今日股市是否開市。)

股票市場何時開盤與收盤?

一般交易時段,也就是報價、指數水準與晚間新聞所描述的時段,從美東時間上午9:30的開盤鐘開始,至美東時間下午4:00的收盤鐘結束。全長6個半小時,每週交易5天。美國兩大上市交易所採用相同的交易時間,而標準券商委託單預設也會在這段期間執行。

完整的電子交易日比開收盤鐘涵蓋的時間更長:

  • 盤前交易:美東時間上午4:00至上午9:30,即開盤鐘前的電子交易。
  • 一般交易時段:美東時間上午9:30至下午4:00,當日大部分交易在此期間完成。
  • 盤後交易:美東時間下午4:00至晚上8:00,即收盤鐘後的電子交易。

一般交易日的前後各有一場競價。開盤競價在上午9:30決定每檔股票的正式開盤價;收盤競價則是在下午4:00過後片刻撮合的一筆大型交易,決定當晚各處引用的正式收盤價。本頁所有時間均以美東時間表示;美國西岸的相同一般交易時段則為上午6:30至下午1:00。

股市交易時段在成交紀錄上呈現什麼樣貌?

定義是一回事;成交紀錄才是證據。下方圖表採用 SPY 成交紀錄中最近一個完整交易日的資料,2026-10-14,也就是一個Wednesday,且是最近一個已經足以完成紀錄的交易日(資料來源通常落後一至兩天)。我們透過計算正常交易時段的每分鐘 K 線加以確認:共有 390 根,每一根代表兩次開收盤鐘聲之間的一分鐘。該交易日的第一根 K 線在美東時間 04:00 成交,最後一根則在 19:59 成交;成交紀錄涵蓋完整的延長交易日,從凌晨4:00至晚上8:00。

查詢SPY 交易帶的完整交易日,依交易時段區分(近期完整時段)
交易時段日期星期正常交易時段柱數當日首根柱分鐘當日末根柱分鐘ET首根柱時間ET末根柱時間總股數(百萬)盤前百分比正常交易時段百分比收盤後30分鐘百分比晚間百分比前30分鐘百分比最後30分鐘百分比午間半小時百分比
2026-10-14Wednesday390240119904:0019:5955.72.686.292.18.125.13.5
每個數據背後的精確 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
自己執行這個查詢

成交量分布是重點。這些數據逐筆取自整合成交紀錄,而收盤競價成交也計入其所結束的正常交易時段。在這整整16小時內,共有 55.7 百萬股 SPY 成交,其中正常交易時段占 86.2%。長達五個半小時的盤前交易成交 2.6%。收盤鐘聲後緊接的半小時成交 9%;這段時間會納入交易時段結束後才回報至成交紀錄的大宗協議交易。晚間剩餘三個半小時合計成交 2.1%。

以半小時為區間,可以看出當日的交易形態:

查詢SPY 每半小時成交量,涵蓋盤前至盤後(同一交易時段,美東時間)
32 rows (showing 20)
ET半小時股數(百萬)
04:000.05
04:300.02
05:000.01
05:300
06:000.02
06:300.01
07:000.05
07:300.02
08:000.13
08:300.83
09:000.33
09:304.52
10:002.77
10:302.46
11:002.76
11:302.16
12:002.84
12:301.97
13:001.97
13:303.77
每個數據背後的精確 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
自己執行這個查詢

在這個交易日,包含收盤競價成交在內的最後半小時,占全天成交量 25.1%;相較之下,12:30至1:00的午間半小時占 3.5%,開盤後半小時則占 8.1%。收盤成交量較大的現象有其機械性原因:指數基金、共同基金及以基準指數為投資依據的機構,會按照官方收盤價進行交易,而這些委託單會集中至收盤競價。整體而言,成交量分布在延長交易日的 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-14呈現了兩者的差異;這是上方所衡量的同一交易時段:

查詢下午4點收盤鐘聲時的個股與 ETF 選擇權:AAPL 與 SPY 選擇權收盤前後的交易(同一交易時段)
合約交易時段日期3:45至4:00交易筆數4:00至4:15交易筆數最後交易ET時間最後交易當日分鐘
AAPL options (single name)2026-10-1411803316:00960
SPY options (ETF)2026-10-14644342969816: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 選擇權成交11803筆,SPY 成交64434筆。收盤鈴響後的15分鐘則呈現差異:AAPL 僅出現3筆零星成交,最後一筆在美東時間16:00成交;SPY 則成交29698筆,最後一筆在美東時間16:14成交。到期日有自己的交易時鐘,0DTE 選擇權何時交易一文將說明相關安排。

期貨的交易時段則完全不同。CME 股價指數期貨幾乎全天交易,從週日美東時間下午6:00至週五下午5:00;每日自下午5:00起暫停一小時。這就是每則「期貨今早上漲」新聞標題背後的隔夜交易紀錄。債券市場採場外交易,交易時間依 SIFMA 建議大致為美東時間上午8:00至下午5:00,並有自己的假日行事曆:股票照常交易時,債券市場會因 Columbus Day 與 Veterans Day 關閉。

股市何時休市?

美國股市週末休市,每年約有十個全天假日,另有幾個預定的半日交易日會提早於美東時間下午1:00收市。下方日曆直接採用交易所公布的交易時程,並會自動更新:每個假日過後便會從日曆中移除,下一個假日則遞補上來。

查詢即將到來的美國股市休市日與提早收盤日,依交易所行事曆
假日日期星期假日交易日狀態提前收盤ET時間相隔天數
2026-11-26ThuThanksgivingclosed40
2026-11-27FriThanksgivingearly-close01:00 PM41
2026-12-24ThuChristmasearly-close01:00 PM68
2026-12-25FriChristmasclosed69
2027-01-01FriNew Years Dayclosed76
2027-01-18MonMartin Luther King, Jr. Dayclosed93
2027-02-15MonWashington's Birthdayclosed121
2027-03-26FriGood Fridayclosed160
2027-05-31MonMemorial Dayclosed226
2027-06-18FriJuneteenthclosed244
2027-07-05MonIndependence Dayclosed261
2027-09-06MonLabor Dayclosed324
每個數據背後的精確 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,距今還有40天;載入的日曆列出未來12個有日期的休市日,並逐一標示為全天休市或提早收市。提早收市日的正常交易時段會於美東時間下午1:00結束,而非下午4:00;交易時間為三個半小時,而非六個半小時,收盤競價也會在下午1:00撮合成交。這些半日交易日主要集中在感恩節和聖誕節前後。週末假日的補休日規則(週六假日於前一週五休市,週日假日於下一週一休市)、完整日曆,以及如何從逐筆成交資料查核過去的休市日,請參閱股市假日與提早收市日。

半日交易在成交明細上是什麼樣子?

交易日曆會標示提前收市時間;成交明細則呈現半日交易的實際樣貌。SPY 最近一次半日交易為 2025-12-24,屬於 Wednesday:正常交易時段從上午9:30至下午1:00收市競價,共有 210 根分鐘K線。

查詢SPY 交易帶最近一次提早收盤交易日,依交易時段區分
交易時段日期星期上午交易時段柱數ET末根柱時間當日末根柱分鐘總股數(百萬)盤前百分比正常交易時段百分比收盤後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
自己執行這個查詢

完整交易日的形狀在壓縮後仍然保留。在成交的 39.9 百萬股 SPY 中,縮短後的正常交易時段占 89.6%;而收市前最後半小時(包括下午1:00的收市競價)占 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 交易帶計算
交易日數完整交易時段縮短交易時段不規則交易時段週末交易時段首個交易時段最後交易時段
2532512002025-10-132026-10-14
每個數據背後的精確 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-10-13至2026-10-14期間,市場共有253個正常交易時段,其中251個為完整交易日、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 terminal 開啟、編輯並重新執行,以白話查閱任何交易時段、任何 ticker,或下一個即將到來的休市日。

#market hours#sessions#trading calendar