Strasmore Research
學習 Matt Connor作者: Matt Connor · 更新於 2026-07-25

什麼是收盤集合競價?

收盤集合競價是美東下午四點整,以單筆最大量撮合決定正式收盤價的機制。本文用真實報價帶資料,解釋其運作與重要性。

收盤集合競價(Nasdaq 稱之為收盤交叉)是美東時間下午四點整,一筆單一且巨大的撮合交易,用來決定每檔股票的正式收盤價。交易所不會逐筆撮合買賣單,而是整個下午持續收集收盤委託,再將整批委託以單一價格、單筆成交一次完成——這正是當天開盤的開盤集合競價的對應收尾——這筆單一成交紀錄,在個股層級通常就是全天最大的一筆交易。本頁所有數字皆取自整合報價帶——也就是全美股票交易的統一公開紀錄——每個面板都附有精確的 SQL 查詢語句。

什麼是收盤集合競價?用白話解釋

在盤中大部分時間,股票是連續交易的:委託單陸續送達、撮合、一筆一筆成交——在交易最熱絡的標的上,每分鐘可達數千筆。收盤集合競價則是同一報價紀錄上的一套不同機制。在當日最後一段時間,掛牌交易所會匯集所有標示為收盤的委託單,計算出一個能讓最多股數配對的單一價格,並在美東時間下午4:00以單筆交易執行整批委託。

這筆交易會像其他交易一樣顯示在公開報價紀錄上,並標註其專屬標籤——交易條件 8,「Closing Prints」——而該價格會成為當晚各處引用的正式收盤價。連續交易市場與集合競價並非兩個市場;它們屬於同一份報價紀錄,而集合競價是其中一筆規模極大的紀錄。

收盤集合競價為何存在?

收盤價是市場的參考基準。共同基金依據官方收盤價計算每日淨資產價值,指數供應商以此編製基準,機構交易部門的績效也以收盤價及 what-is-vwap 等指標來評量。以收盤價成交的投資人,能精確追蹤所有這些參考基準——而集合競價正是決定該價格的場合:對多數投資人而言,這是唯一保證能以收盤價交易的地方。

這種吸引力會自我強化。大額委託在買賣兩方累積,一次撮合便以最大成交量配對,大單以單一價格成交,無需在連續交易市場中逐一穿越 what-is-a-bid-ask-spread 成交,而 how-do-market-makers-make-money 則是全天在兩邊報價。

收盤集合競價的真實面貌:一筆成交對比中位數交易

下方表格以 2026 年 7 月 2 日——7 月 4 日假期週末前的最後一個交易日,經確認的完整交易日(收據見下一表格)——為基準,衡量 SPY、AAPL 與 NVDA 的收盤集合競價規模,並與其逐筆成交紀錄中的其他交易進行對比。「撮合成交量」指的是逐筆成交紀錄本身計入全市場成交量的股數;所有分母均排除因行政作業重新傳送的資料(成交條件 151638),與我們的逐筆微結構深入探討一致;下方的代碼對照表即為收據。

查詢收盤集合競價 vs. 其他時段 — SPY、AAPL、NVDA,2026年7月2日
每個數據背後的精確 SQL 語法
SELECT
    ticker,
    round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS auction_shares_m,
    formatDateTime(toTimeZone(argMaxIf(sip_timestamp, size, has(conditions, 8)), 'America/New_York'), '%H:%i:%S') AS auction_time_et,
    countIf(has(conditions, 8)) AS auction_print_count,
    countIf(has(conditions, 8) AND formatDateTime(toTimeZone(sip_timestamp, 'America/New_York'), '%H:%i:%S') = '16:00:00') AS auction_prints_at_1600,
    round(quantileDeterministicIf(0.5)(toFloat64(size), toUInt64(sip_timestamp), NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))) AS median_trade_shares,
    round(toFloat64(maxIf(size, has(conditions, 8))) / quantileDeterministicIf(0.5)(toFloat64(size), toUInt64(sip_timestamp), NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38])) / 1000) AS auction_vs_median_thousand_x,
    round(100 * toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))), 1) AS auction_pct_of_volume,
    round(toFloat64(maxIf(size, NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))) / 1e6, 2) AS biggest_other_trade_m,
    round(toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(maxIf(size, NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))), 2) AS auction_vs_biggest_other_x
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA')
  AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA'], ticker)

先看 AAPL 那一列。當天 AAPL 的中位數交易量為 20 股。收盤集合競價以一筆成交撮合了 10.89 百萬股——約為中位數的 545 千倍——佔當天(含延長交易時段)AAPL 總撮合股數的 14.4%。NVDA 的集合競價與中位數之間的差距更大——中位數成交為 5 股,對比一筆 17.38 百萬股的撮合,是中位數的 3475 千倍——同時承載了當天 12.2% 的交易量。每檔標的都精確顯示一筆集合競價成交——auction_print_count 欄位即為收據——時間戳記精確至秒,為美東時間 16:00:00auction_prints_at_1600 欄位確認了時間點)。

標題的主張自有其收據。在這兩檔個股中,集合競價撮合都是全天最大的一筆交易:AAPL 最大的連續競價成交為 1.8 百萬股,集合競價是其 6.05 倍;NVDA 最大的連續競價成交為 5.47 百萬股,集合競價是其 3.18 倍。SPY 則是例外:一筆 2.5 百萬股的大宗交易,規模超過了其 1.65 百萬股的集合競價撮合——在交易熱絡的 ETF 中,單筆大宗交易確實可能超越集合競價。SPY 在這三檔中,集合競價佔比也最小,為 2.9%——然而,其集合競價撮合仍是中位數交易量 25 股的 66 千倍。

官方收盤價來自集合競價,而非最後一筆撮合

常見的假設是,收盤價就是收盤鐘響前的最後一筆交易。但行情紀錄顯示並非如此。下方這張單行收據涵蓋了 AAPL 在 2026 年 7 月 2 日的狀況,開頭先針對本文所涉及的每個日期進行交易時段查核:SPY 在 6 月 16 日、6 月 30 日及 7 月 2 日,分別印出了 390390390 根正常交易時段的分鐘 K 線——三個完整且經過驗證、絕非假設的 9:30 至 4:00 交易時段。

查詢成交明細:AAPL 集合競價撮合價 vs. 最後一筆連續交易,2026年7月2日
每個數據背後的精確 SQL 語法
WITH
    (
        SELECT countIf(window_start >= toDateTime('2026-06-16 09:30:00', 'America/New_York') AND window_start < toDateTime('2026-06-16 16:00:00', 'America/New_York'))
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-16 00:00:00', 'America/New_York') AND window_start < toDateTime('2026-06-17 00:00:00', 'America/New_York')
    ) AS bars_jun16,
    (
        SELECT countIf(window_start >= toDateTime('2026-06-30 09:30:00', 'America/New_York') AND window_start < toDateTime('2026-06-30 16:00:00', 'America/New_York'))
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-30 00:00:00', 'America/New_York') AND window_start < toDateTime('2026-07-01 00:00:00', 'America/New_York')
    ) AS bars_jun30,
    (
        SELECT countIf(window_start >= toDateTime('2026-07-02 09:30:00', 'America/New_York') AND window_start < toDateTime('2026-07-02 16:00:00', 'America/New_York'))
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-07-02 00:00:00', 'America/New_York') AND window_start < toDateTime('2026-07-03 00:00:00', 'America/New_York')
    ) AS bars_jul02,
    (
        SELECT maxIf(sip_timestamp, has(conditions, 8))
        FROM global_markets.stocks_trades
        WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
    ) AS auction_ts,
    (
        SELECT argMaxIf(exchange, size, has(conditions, 8))
        FROM global_markets.stocks_trades
        WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
    ) AS listing_exchange
SELECT
    bars_jun16 AS spy_session_bars_jun16,
    bars_jun30 AS spy_session_bars_jun30,
    bars_jul02 AS spy_session_bars_jul02,
    countIf(has(conditions, 8)) AS auction_print_count,
    toFloat64(argMaxIf(price, size, has(conditions, 8))) AS auction_price,
    formatDateTime(toTimeZone(auction_ts, 'America/New_York'), '%H:%i:%S.%f') AS auction_et,
    toFloat64(argMaxIf(price, (sip_timestamp, sequence_number), sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))) AS last_tick_price,
    formatDateTime(toTimeZone(maxIf(sip_timestamp, sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38])), 'America/New_York'), '%H:%i:%S.%f') AS last_tick_et,
    round((toFloat64(argMaxIf(price, size, has(conditions, 8))) - toFloat64(argMaxIf(price, (sip_timestamp, sequence_number), sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38])))) * 100, 1) AS auction_minus_last_tick_cents,
    countIf(has(conditions, 15)) AS official_close_reprints,
    countIf(has(conditions, 15) AND exchange = listing_exchange) AS listing_venue_reprints,
    round(toFloat64(anyIf(price, has(conditions, 15) AND exchange = listing_exchange)) - toFloat64(argMaxIf(price, size, has(conditions, 8))), 4) AS listing_reprint_price_difference
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'

連續交易會一直進行到集合競價發動的那一刻——當天,就在 4:00:00 過後不到一秒。AAPL 在集合競價前最後一筆計入成交量的連續交易,於美東時間 16:00:00.215052 以 $308.1 的價格印出;到了美東時間 16:00:00.373202,集合競價以 $308.63 的價格成交——比最後一筆撮合高出 53 美分。當晚的官方收盤價是集合競價的價格,而非最後一筆撮合的價格。隨後,行情紀錄傳送了 2 筆「Market Center Official Close」訊息(交易條件 15)——每一筆都是各交易場所對其自身官方收盤價的記錄,而非統一收盤價的再次轉發;各交易場所回報的價格可能不同。掛牌交易所的訊息與集合競價的印出價格完全吻合(其差異衡量為 0),而這些訊息都不會增加成交量。交易會在盤後交易時段再持續四個小時;這些印出的價格同樣不會改變官方收盤價。

收盤集合競價如何運作?市價收盤單與限價收盤單

有兩種專屬的收盤委託單類型會參與這場集合競價——連同已在連續交易簿上等待的一般限價單,它們也能參與這次撮合:

  • 市價收盤單(MOC) 會以競價所決定的任何價格成交。沒有價格保護——這是換取幾乎保證能在官方收盤價執行所付出的代價(如果股票在收盤鈴響時處於暫停交易狀態,撮合可能不會執行,收盤委託單也可能無法成交)。
  • 限價收盤單(LOC) 只有在競價價格等於或優於其限價時,才會參與競價。具備價格保護,但風險是完全錯過這次撮合。

這兩種委託單都會留在交易所直到撮合為止;在到達撮合點之前的連續市場中,兩者都不會進行交易。交易所在最後幾分鐘會停止接受或修改收盤委託單(確切的截止時間因交易所而異且會隨時間變動),而大多數券商會自行設定更早的截止時間。到了收盤鈴響時,委託簿會被鎖定,並由一個價格來完成撮合。

什麼是收盤集合競價不平衡?

在接近撮合的時候,交易所會發布不平衡數據:在收盤時排隊買入與賣出的股數,加上一個在該時刻撮合可能成立的參考價格。一百萬股的買方不平衡,意味著目前有一百萬股的收盤買單尚未配對。連續市場的交易者會關注這些資訊,並在最後幾分鐘內圍繞這些數據進行布局。

季末交易日放大收盤集合競價規模

特定日曆日會將更多當日交易集中至收盤階段。指數再平衡、到期結算,以及月底與季末的基金資金流動,都以官方收盤價為基準,而這些資金流動會在集合競價中匯集。2026年6月30日是第二季的最後一個交易日。下方面板將各檔股票在該日的收盤集合競價,與月中一個普通交易日(6月16日)進行比較——兩者均為上方收據中經確認的完整交易時段。

查詢季末(6月30日)vs. 月中(2026年6月16日):同樣三檔收盤集合競價
每個數據背後的精確 SQL 語法
SELECT
    ticker,
    countIf(has(conditions, 8) AND sip_timestamp < '2026-06-17 00:00:00') AS jun16_auction_print_count,
    countIf(has(conditions, 8) AND sip_timestamp >= '2026-06-30 00:00:00') AS jun30_auction_print_count,
    round(toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp < '2026-06-17 00:00:00')) / 1e6, 2) AS jun16_auction_shares_m,
    round(toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp >= '2026-06-30 00:00:00')) / 1e6, 2) AS jun30_auction_shares_m,
    round(toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp >= '2026-06-30 00:00:00')) / toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp < '2026-06-17 00:00:00')), 1) AS jun30_vs_jun16_x,
    round(100 * toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp < '2026-06-17 00:00:00')) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]) AND sip_timestamp < '2026-06-17 00:00:00')), 1) AS jun16_auction_pct,
    round(100 * toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp >= '2026-06-30 00:00:00')) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]) AND sip_timestamp >= '2026-06-30 00:00:00')), 1) AS jun30_auction_pct
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA')
  AND ((sip_timestamp >= '2026-06-16 00:00:00' AND sip_timestamp < '2026-06-17 00:00:00')
    OR (sip_timestamp >= '2026-06-30 00:00:00' AND sip_timestamp < '2026-07-01 00:00:00'))
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA'], ticker)

蘋果(AAPL)的季末集合競價成交量為 21.71 百萬股——是其6月16日集合競價成交量 7.49 百萬股的 2.9 倍——且該單筆交易即佔蘋果當日總撮合成交量的 33.2%。一個交易時段三分之一的交易量,濃縮在單一交易、單一價格中完成。輝達(NVDA)的集合競價成交量從 23.47 百萬股增至 41.14 百萬股,達到其當日成交量的 24.7%。與7月2日的情況相同,每檔股票每交易時段僅產生一次集合競價——兩欄交易次數即為收據所示。這種規模模式正是 相對成交量 篩選條件存在的目的,用以標記此類情況。SPY的集合競價佔比在這兩個日期都維持在較低水準(2.7% 與 3.6%)。欲查閱完整交易時段概況,請參見 我們2026年6月30日的市場回顧;若想了解同一季末週的另一項數據特殊情況,請見 未能歸檔的季末交易日

如何辨識收盤集合競價撮合價?成交條件代碼

哪一筆才是集合競價撮合價?行情揭示本身就會告訴你。每一筆成交都帶有成交條件代碼,而代碼字典就放在同一個資料庫裡——下方截圖是查詢結果,不是主觀判斷。

查詢行情揭示的收盤標記,直接取自代碼字典
每個數據背後的精確 SQL 語法
SELECT
    name,
    id,
    toUInt8(JSONExtractBool(update_rules, 'consolidated', 'updates_volume')) AS counts_toward_volume
FROM global_markets.stocks_condition_codes
WHERE asset_class = 'stocks' AND type = 'sale_condition' AND id IN (8, 15, 16, 38)
ORDER BY id

代碼 8,「Closing Prints」,標記的就是集合競價撮合價本身,字典說明該筆會計入全市場成交量(counts_toward_volume = 1)。代碼 15,「Market Center Official Close」,是各交易中心就其官方收盤價所發出的行政申報紀錄;字典標示該筆不更新成交量(0)。代碼 1638——「Market Center Official Open」與「Corrected Consolidated Close (per listing market)」——分別是開盤與更正的同類簿記紀錄,同樣予以排除(00)。上方每個集合競價數據點都是依據這些代碼篩選,而非依據時鐘時間,且每個成交量的分母都剔除這三個行政申報代碼。

常見問題

收盤集合競價在什麼時間?

美東時間下午4:00過後不久,當常規交易時段結束時——在交易量異常龐大的日子,成交回報可能會更晚才出現。2026年7月2日,SPY、AAPL和NVDA的集合競價成交回報時間均精確標記為美東時間16:00:00。在預定的提早收盤日,集合競價則改在美東時間下午1:00進行——請參閱市場假期與提早收盤日曆。

什麼是收盤市價單?

一種以收盤集合競價所決定的任何價格買入或賣出的委託單——幾乎可以保證參與官方收盤價的決定(除非在收盤前暫停交易),且沒有價格控制。收盤限價單則附加了一個限價,只有當集合競價價格等於或優於該限價時,才會參與撮合。

收盤價是當天的最後一筆交易嗎?

不是。官方收盤價是集合競價的價格。2026年7月2日,AAPL在集合競價前的最後一筆連續交易價格為$308.1,而集合競價的成交價為$308.63——相差53美分。盤後交易時段的成交回報也不會改變官方收盤價。

為什麼收盤時的交易量這麼高?

指數基金、共同基金和以基準為指標的機構都按官方收盤價進行交易,它們的委託單會匯集在一次集合競價中。2026年7月2日,單一一筆集合競價成交回報就佔了AAPL當日總撮合成交量的14.4%;而在6月30日季度末,同一項指標達到了33.2%。

ETF也有收盤集合競價嗎?

是的——每一檔上市的股票和ETF都在其掛牌交易所進行集合競價。集合競價在ETF當日交易量中的佔比通常較小:SPY在2026年7月2日的集合競價佔其撮合成交量的2.9%,而AAPL則為14.4%。


以上每個數字都來自一個已儲存、可供檢視的查詢——展開任何面板下的SQL即可對其進行審計。若要剖析您所關注股票的收盤集合競價,請在Strasmore終端機上用淺顯的英文提出相同的問題。

#closing auction#closing cross#market structure#moc orders#condition codes#liquidity