開盤價差為何較寬?實證解析
逐筆報價顯示開盤價差溢酬如何以半小時為單位快速消退,並揭露盤前交易的真實成本。
開盤時的買賣價差,比美國常規交易時段幾乎任何其他時段都更寬,而且股票流動性越差,懲罰就越重。在下方滾動視窗中,交易頭半小時的中位數買賣價差,是中型股 Etsy 盤中價差的 3.34 倍,是 Apple 的 2.02 倍——而三者中報價最密集的 SPY,綜合比率僅為 1 倍,這條平坦的線條其實是一美分價格檔位的人為產物,並非開盤真的零成本。本頁面從逐筆報價來為這座時鐘計時。
價差對市價單的成本
每檔股票同時顯示兩個價格:買價,即目前最佳的買進委託;賣價,即目前最佳的賣出委託。兩者之間的差距就是買賣價差,而市價單——也就是立即以最佳可用價格成交的委託——會支付這項成本:買進成交在賣價,賣出成交在買價,差額歸提供報價的一方,通常是造市者。該報價有兩個特性與後續討論相關:它運行的時鐘上,成本最高的時段是上午;而且它以整分錢為最小跳動單位——一檔高價 ETF 與一檔便宜許多的中型股所能顯示的最窄價差,都是同樣的一分錢。
價差時鐘:一種形狀,三種流動性層級
這張圖涵蓋三個流動性層級:SPY,標普500 ETF;Apple,一檔巨型股;Etsy,一檔中型股。在最近一個多日的時間窗口內,每一次有效的 NBBO 更新——也就是你的券商所顯示全市場最佳買價與賣價,詳細說明請見我們的 NBBO 解說——都會落入正常交易時段的一個30分鐘區間,而每個區間的價差中位數再除以該標的的最窄價差,因此 1 代表該股票所能達到的最窄水準。
每個數據背後的精確 SQL 語法
SELECT et_time,
round(anyIf(rel, ticker = 'SPY'), 2) AS spy_x,
round(anyIf(rel, ticker = 'AAPL'), 2) AS aapl_x,
round(anyIf(rel, ticker = 'ETSY'), 2) AS etsy_x
FROM (
SELECT ticker,
et_time,
median_bps / min(median_bps) OVER (PARTITION BY ticker) AS rel
FROM (
SELECT ticker,
formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
quantileExact(0.5)(toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000) AS median_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
AND sip_timestamp >= toDateTime(today() - 14)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
AND bid_price > 0
AND ask_price > bid_price
GROUP BY ticker, et_time
)
)
GROUP BY et_time
ORDER BY et_time教科書將日內走勢稱為 U 型:開盤寬、中午窄、接近收盤再放寬。在這裡的衡量結果卻是一條滑雪坡道——前提是該標的的價差有移動空間。Etsy 開盤時的價差是其最窄水準的 5.78 倍,到了10:30降至 2.99 倍,午餐時間則為 1.86 倍;Apple 開盤時為 3.04 倍。對這三者來說,最窄的半小時都是最後一個區間——分別為 1 倍、1 倍、1 倍——因此交易者聯想到「收盤」的價差重新放寬現象,其實是發生在延長交易時段,也就是收盤拍賣之後。
SPY 的線是平的:開盤區間為 1 倍,午餐時間為 1 倍。它的價差中位數全天紋絲不動。這並非不存在開盤溢價——而是受到了 penny grid 的限制。
一分錢報價矩陣:最緊密報價品種的溢價藏在哪裡
SPY 開盤時段的中位數買賣價差為 2 美分,盤中則為 2 美分——同樣是兩美分,因此其中位數已無法提供更多資訊。但底層的分布可以。此面板統計每半小時內,報價更新停留在最低一分錢門檻的比例。
每個數據背後的精確 SQL 語法
SELECT et_time,
round(100 * countIf(ticker = 'SPY' AND spread_c <= 1.0001) / countIf(ticker = 'SPY'), 1) AS spy_pct_penny,
round(100 * countIf(ticker = 'AAPL' AND spread_c <= 1.0001) / countIf(ticker = 'AAPL'), 1) AS aapl_pct_penny,
round(100 * countIf(ticker = 'ETSY' AND spread_c <= 1.0001) / countIf(ticker = 'ETSY'), 1) AS etsy_pct_penny
FROM (
SELECT ticker,
formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
toFloat64(ask_price - bid_price) * 100 AS spread_c
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
AND sip_timestamp >= toDateTime(today() - 14)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
AND bid_price > 0
AND ask_price > bid_price
)
GROUP BY et_time
ORDER BY et_timeSPY 在開盤前半小時的報價更新中,有 20.7% 的時間停留在一分錢的最低門檻,而尾盤最後半小時的比例則為 43.1%;蘋果(Apple)為 3.1% 對 30.6%;Etsy 為 0.2% 對 8.3%。每個品種開盤時距離最低門檻都較遠,尾盤時則較近,且尾端分布也隨之移動:SPY 開盤時的第 90 百分位數買賣價差為 4 美分,盤中則為 3 美分——差距達 1.32 倍,而其中位數僅顯示 1 倍的差距。SPY 確實存在溢價;只是一分錢的報價矩陣過於粗糙,中位數無法反映此一現象。
為何開盤時買賣價差會擴大?
三種情況在開盤前半小時同時發生,而且沒有一種能延續到午盤。
- 隔夜累積的委託單一次湧入。 從下午四點收盤到隔天早上的開盤集合競價,長達十七個半小時的資訊不斷累積——財報、財測、海外盤勢——而連續交易時段則是一片空白。最初的報價反映的是跳空缺口,而非前一日收盤價。
- 價格發現仍在進行。 集合競價將累積的委託單壓縮成一個成交價;市場隨後花費數分鐘在該價格附近尋找區間,而在這個搜尋過程中,報價重新定價的速度最快。
- 委託簿仍在建立中。 盤前交易是在報價參與者少得多的情況下運行,且開盤鐘響並不會立刻重置委託簿。
暫停交易對時間進程的影響
暫停交易是相同機制的極端形式。根據漲跌幅限制規則,當股價波動超出其近期均價周圍的特定區間時,會觸發五分鐘的冷靜期;交易所也可因待公布重大訊息而暫停一檔股票交易。在暫停交易期間,不存在可供成交的雙邊報價——螢幕上顯示的單邊或錯向委託簿並非可交易的市場。交易透過重新開盤的集合競價重啟,其最初的報價承載了與上午九點半開盤時相同的委託積壓與價格發現壓力,只是被壓縮在數分鐘內完成。一檔在接近開盤時被暫停交易的股票,等於支付了兩次這種溢價。
盤前交易是一個不同的市場
流動性不足導致價差擴大的說法常被提及,但鮮少被量化;這張圖表直接為其定價——相同標的、相同時間窗口,涵蓋一天中的五個階段,單位為基點(bps),即股價的百分之一個百分點,讓不同價位的股票得以相互比較。
每個數據背後的精確 SQL 語法
SELECT phase,
round(quantileExact(0.5)(spy_b), 2) AS spy_bps,
round(quantileExact(0.5)(aapl_b), 2) AS aapl_bps,
round(quantileExact(0.5)(etsy_b), 2) AS etsy_bps
FROM (
SELECT multiIf(et_min >= 240 AND et_min < 420, 'Premarket 04:00-07:00',
et_min >= 420 AND et_min < 570, 'Premarket 07:00-09:30',
et_min >= 570 AND et_min < 600, 'Open 09:30-10:00',
et_min >= 720 AND et_min < 840, 'Midday 12:00-14:00',
et_min >= 960 AND et_min < 1200, 'After-hours 16:00-20:00', 'other') AS phase,
if(ticker = 'SPY', spread_bps, NULL) AS spy_b,
if(ticker = 'AAPL', spread_bps, NULL) AS aapl_b,
if(ticker = 'ETSY', spread_bps, NULL) AS etsy_b
FROM (
SELECT ticker,
toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60
+ toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_min,
toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000 AS spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
AND sip_timestamp >= toDateTime(today() - 14)
AND sip_timestamp < toDateTime(today() - 3)
AND bid_price > 0
AND ask_price > bid_price
)
WHERE phase != 'other'
)
GROUP BY phase
ORDER BY indexOf(['Premarket 04:00-07:00', 'Premarket 07:00-09:30', 'Open 09:30-10:00', 'Midday 12:00-14:00', 'After-hours 16:00-20:00'], phase)盤前交易並非開盤表現較差,而是一個截然不同的市場。Etsy 在美東時間凌晨 4:00 至 7:00 之間的報價中位數價差為 306.25 個基點,7:00 至開盤鈴響前為 307.57 個基點,相較之下,開盤前半小時為 30.79 個基點,盤中則為 9.21 個基點——這裡指的是股價的百分點,而非美分。蘋果在早盤的報價價差為 9.82 個基點,盤中則為 0.96 個基點;就連 SPY 的價差也從盤中的 0.27 個基點擴大至 0.8 個基點。下午 4:00 收盤鈴響後,價差再度擴大——Etsy 為 240.45 個基點,蘋果為 6.99 個基點。
以美分計價:開盤與午盤
成本以美分計算。下表為相同標的定價——開盤前半小時(美東時間上午9:30–10:00)與午盤(中午12:00–下午2:00)的中位數價差對比、各時段第90百分位數報價、報價更新次數,以及排除的單邊、鎖定或交叉報價。
每個數據背後的精確 SQL 語法
SELECT ticker,
round(countIf(isNotNull(spread_cents)) / 1e6, 2) AS valid_updates_m,
round(quantileExactIf(0.5)(spread_cents, clock_min BETWEEN 810 AND 839), 2) AS open30_cents,
round(quantileExactIf(0.5)(spread_cents, clock_min BETWEEN 960 AND 1079), 2) AS midday_cents,
round(quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 810 AND 839), 2) AS open30_bps,
round(quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 960 AND 1079), 2) AS midday_bps,
round(quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 810 AND 839)
/ quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 960 AND 1079), 2) AS open_vs_midday_x,
round(quantileExactIf(0.9)(spread_cents, clock_min BETWEEN 810 AND 839), 2) AS open30_p90_cents,
round(quantileExactIf(0.9)(spread_cents, clock_min BETWEEN 960 AND 1079), 2) AS midday_p90_cents,
round(quantileExactIf(0.9)(spread_bps, clock_min BETWEEN 810 AND 839), 2) AS open30_p90_bps,
round(quantileExactIf(0.9)(spread_bps, clock_min BETWEEN 810 AND 839)
/ quantileExactIf(0.9)(spread_bps, clock_min BETWEEN 960 AND 1079), 2) AS p90_x,
toString(countIf(isNull(spread_cents))) AS dropped_onesided_locked_crossed
FROM (
SELECT ticker,
toHour(sip_timestamp) * 60 + toMinute(sip_timestamp) AS clock_min,
if(bid_price > 0 AND ask_price > bid_price, toFloat64(ask_price - bid_price) * 100, NULL) AS spread_cents,
if(bid_price > 0 AND ask_price > bid_price, toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, NULL) AS spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
AND sip_timestamp >= toDateTime(today() - 14)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'ETSY'], ticker)每股美分與每100股美元數值相同,因此這張表就是一張帳單:在Etsy以開盤中位數報價進行100股往返交易,成本為$24,而午盤報價成本為$7;蘋果方面,則為$6對比$3。溢價隨著交易量減少而攀升——SPY為1倍,蘋果為2.02倍,Etsy為3.34倍,其0.19百萬次的報價更新僅是蘋果8.97百萬次的一小部分。層級差異壓倒了時段差異:SPY開盤前半小時的0.27個基點,比Etsy最平靜的午盤(9.21個基點)還要窄,而Etsy開盤最差十分位數則為75.67個基點。
溢價是否每場交易時段都會出現?
將多日的報價彙整成一項中位數,回答的是關於整個觀察窗口的問題,而非針對單一早晨。此面板逐個交易時段重新計算開盤相對於盤中的比率:涵蓋一般時段、最平穩時段、最差時段,以及開盤溢價始終較高的個股占比。
每個數據背後的精確 SQL 語法
SELECT ticker,
count() AS sessions,
round(quantileExact(0.5)(ratio), 2) AS median_session_x,
round(min(ratio), 2) AS calmest_session_x,
round(max(ratio), 2) AS worst_session_x,
round(100 * countIf(ratio > 1) / count(), 0) AS pct_sessions_open_wider
FROM (
SELECT ticker,
toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session_date,
quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 810 AND 839)
/ quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 960 AND 1079) AS ratio
FROM (
SELECT ticker,
sip_timestamp,
toHour(sip_timestamp) * 60 + toMinute(sip_timestamp) AS clock_min,
toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000 AS spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
AND sip_timestamp >= toDateTime(today() - 14)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
AND bid_price > 0
AND ask_price > bid_price
)
GROUP BY ticker, session_date
HAVING countIf(clock_min BETWEEN 810 AND 839) > 0
AND countIf(clock_min BETWEEN 960 AND 1079) > 0
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'ETSY'], ticker)在 7 個交易時段中,SPY 有 71% 的時段、Apple 有 100% 的時段、Etsy 有 100% 的時段,開盤價差大於盤中。一般時段的溢價:SPY 為 1 倍——在這檔全市場流動性最高的標的上,一美分的價差網格讓即便是持續性的擴張也幾乎難以察覺——相較之下,Apple 為 2.03 倍,Etsy 為 3.29 倍,後兩者的溢價則顯而易見。離散程度是關鍵啟示:Etsy 最平穩的早晨,開盤價差為自身盤中的 2.08 倍,而最差時段則高達 4.5 倍。開盤溢價既是一個平均值,也是一個極端值,絕非對明日 9 點 31 分情況的保證。
壓力測試:2026年7月7日MU的早晨
滾動視窗會抹平單一早晨的細節,因此這裡鎖定一個時刻:2026年7月7日星期二的美光,在半導體股重挫中 當日回顧 有詳細說明。
每個數據背後的精確 SQL 語法
WITH prev AS (
SELECT argMax(toFloat64(close), window_start) AS prev_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= '2026-07-06 13:30:00'
AND window_start < '2026-07-06 20:00:00'
),
day AS (
SELECT argMin(toFloat64(open), window_start) AS day_open
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= '2026-07-07 13:30:00'
AND window_start < '2026-07-07 20:00:00'
)
SELECT round((SELECT prev_close FROM prev), 2) AS prior_close,
round((SELECT day_open FROM day), 2) AS jul7_open,
round(((SELECT day_open FROM day) - (SELECT prev_close FROM prev)) / (SELECT prev_close FROM prev) * 100, 1) AS overnight_gap_pctMU收盤價為$984.31,開盤價為$923.01——隔夜跳空幅度為-6.2%。當日的價差時鐘如下:
每個數據背後的精確 SQL 語法
SELECT et_time,
median_spread_cents,
median_spread_bps,
round(100 * median_spread_cents / max(median_spread_cents) OVER (), 1) AS pct_of_widest,
dropped_onesided_locked_crossed
FROM (
SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) * 100, bid_price > 0 AND ask_price > bid_price), 1) AS median_spread_cents,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price > bid_price), 1) AS median_spread_bps,
toString(countIf(NOT (bid_price > 0 AND ask_price > bid_price))) AS dropped_onesided_locked_crossed
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'MU'
AND sip_timestamp >= '2026-07-07 13:30:00'
AND sip_timestamp < '2026-07-07 20:00:00'
GROUP BY et_time
)
ORDER BY et_time時鐘精準運行。MU開盤前半小時的中位數價差為62美分——對於一檔開盤價為$923.01的股票而言,相當於6.7個基點——是該交易時段中最寬的半小時區間。一個區間之後,中位數價差降至45美分,中午時為39美分,最後半小時則為38美分。溢價如期而至——而流動性層級依然主導一切:即便在此情況下,MU以百分比計算的價差仍比Etsy的常規開盤價差(30.79個基點)更窄。
::: 數據說明:視窗、篩選條件與方法
SPY/Apple/Etsy的面板採用滾動方式:取最近一次刷新前三天結束的十一個日曆日的NBBO更新(避開數據源的接收延遲)。常規交易時段面板使用基於夏季(美東時間)時鐘的UTC分鐘篩選條件來劃分交易時段;下方的防護機制會檢查視窗兩端是否仍落在美東時間上午9:30(570即為上午9:30)——若在冬季時鐘下觸發,則會停止並保留頁面以待修正。交易階段面板則直接轉換為美東時鐘,涵蓋美東時間凌晨4:00至晚上8:00。全程排除單邊報價(買價或賣價為零)以及鎖定或交叉報價(買價等於或高於賣價);為維持交易時段穩定性,僅保留在兩個視窗內均有報價的交易時段。中位數與第90百分位數均為精確值;MU的面板鎖定於2026年7月6日至7日。
每個數據背後的精確 SQL 語法
SELECT toHour(toTimeZone(toDateTime(today() - 14) + toIntervalMinute(810), 'America/New_York')) * 60
+ toMinute(toTimeZone(toDateTime(today() - 14) + toIntervalMinute(810), 'America/New_York')) AS win_start_et_min,
toHour(toTimeZone(toDateTime(today() - 4) + toIntervalMinute(810), 'America/New_York')) * 60
+ toMinute(toTimeZone(toDateTime(today() - 4) + toIntervalMinute(810), 'America/New_York')) AS win_end_et_min:::
常見問題
買賣價差在一天中何時最寬?
盤前時段——Etsy 的報價價差中位數在美東時間凌晨 4:00 至早上 7:00 之間為 306.25 個基點,而日中則為 9.21 個基點。在常規交易時段內,最寬的區間是開盤後的前半小時;最窄的則是收盤前的最後半小時。
為什麼 SPY 的價差在開盤時看起來沒什麼變化?
美國股票以整分錢報價,而 SPY 的價差中位數一天中大部分時間都維持在 2 美分——這個刻度太粗,無法反映出微小的擴大。逐個交易時段來看,其開盤價差在 71% 的時段中仍比日中來得寬,且其第 90 百分位數的開盤價差為 4 美分,相較之下日中為 3 美分。
在開盤時下市價單不好嗎?
對於要求立即成交來說,這是常規交易時段中成本最高的區間之一——在上述時間窗口內,100 股 Etsy 的往返交易成本為 $24,相較之下為 $7。使用限價單可以限制此成本,但須承擔無法成交的風險,而可以等待的訂單則可能跨越較窄的價差:Etsy 的溢價在一個小時內從 5.78 倍降至 2.99 倍。
價差在收盤時會再次擴大嗎?
在常規交易時段內不會——最後半小時的區間是這三個標的全天最窄的。價差擴大發生在下午 4:00 收市鐘響之後,在流動性較低的延長交易時段:蘋果在該時段的報價為 6.99 個基點,而日中則為 0.96 個基點。
選擇權的價差在開盤時也會擴大嗎?
此處的圖表僅衡量股票報價,對選擇權不做任何論斷。其運作機制指向相同的方向——選擇權的報價取決於標的股票的價格,而該價格在最初幾分鐘內最不穩定——而我們的選擇權成本細目則直接衡量選擇權價差。
每個圖表都附帶產生該圖表的 SQL 查詢——換成你交易的股票代碼,即可在 Strasmore 終端機上為其價差時鐘計時。