MSFT 盤前盤後價格:哪一個才是收盤價
台北時間晚上打開券商 App,MSFT 盤前盤後價格常常和昨天的官方收盤價不同。這篇說明收盤競價定出來的價格才會進到日線圖與損益欄位,盤前盤後的成交量很薄、價差很寬,一張小單就能推開報價,並用 MSFT 近十年的日線資料算出隔夜跳空的幅度分布、逐年的中位數,以及跳空方向對當天正規時段的走勢有多少參考價值。
MSFT 盤前盤後價格和官方收盤價是兩個不同的數字。台北時間晚上打開券商 App,畫面上那個會跳動的價格通常來自美股的盤前或盤後時段,成交量很薄;而券商算損益、隔天的日線圖用的,是美東下午四點收盤競價定出來的官方收盤價。下面先把這兩個數字分清楚,再用 MSFT 的日線資料算出隔夜跳空到底有多大,以及它值不值得當成隔天走勢的預測。
MSFT 盤前盤後價格,哪一個才是官方收盤價
美股正規交易時段是美東時間 09:30 到 16:00。16:00 的收盤不是隨機的最後一筆成交,而是一場集中撮合的收盤競價:交易所把收盤前累積的買賣單一次撮合,撮出來的價格就是當天的官方收盤價。指數編製、ETF 淨值、券商畫面上的漲跌幅與損益欄位、以及日線圖上那根 K 棒的收盤點,用的都是這一個價格。
盤前時段一般從美東 04:00 開始,盤後時段到 20:00 結束,各券商實際開放的區間並不相同,有的只做 07:00 到 09:30 與 16:00 到 18:00。這兩段時間的成交會顯示在報價畫面上,也可能被券商當成「最新價」推到 App 首頁,但它不會改寫當天的官方收盤價。所以晚上看到 MSFT 比昨天收盤高了一些,帳上損益卻一動也不動,這是正常的:損益欄位讀的是收盤競價那個價格。
對照台北時間,只要記兩條線
換算是簡單算術。夏令時間台北比紐約快 12 小時,冬令快 13 小時。夏令時間下,09:30 開盤等於台北 21:30,16:00 收盤等於台北隔天凌晨 04:00;盤前從美東 04:00 起算,等於台北下午 16:00,盤後 20:00 結束等於台北早上 08:00。冬令時間整組往後推一小時。各時段的交易規則與細節,盤前與盤後交易的完整機制那篇寫得更深,這裡只當方位感使用。
為什麼盤後那個數字可能只是一張小單
正規時段的 MSFT 每分鐘都有大量成交,買價與賣價之間的價差經常只有一分錢。盤後的參與者少很多,報價簿會變薄:掛單數量小,價差變寬,一張幾百股的委託就能把成交價推開一截。你在台北時間 21:30 看到的「最新價」,有可能是幾分鐘前某個人用限價單成交的 100 股。
薄流動性與寬價差的機制,開盤時買賣價差為什麼變寬有完整說明,開盤前後與盤後是同一套道理。假日與週末前後的時段更薄,假日與週末的盤後交易整理了那些日子的開放狀況。
MSFT 的隔夜跳空有多大
把「盤後那個數字」翻譯成可以量化的問題,就是隔夜跳空:今天的開盤價相對昨天的官方收盤價差了多少。下面這張面板用 MSFT 的日線資料,從 2016 年到 2026 年 8 月底,把每個交易日的跳空幅度取絕對值後分成五格。
| gap_bucket | sessions | share_pct |
|---|---|---|
| 0.00-0.25% | 869 | 32.4 |
| 0.25-0.50% | 649 | 24.2 |
| 0.50-1.00% | 658 | 24.6 |
| 1.00-2.00% | 365 | 13.6 |
| 2.00%+ | 138 | 5.2 |
每個數據背後的精確 SQL 語法
WITH bars AS
(
SELECT
date,
any(open) AS open_px,
any(close) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'MSFT'
AND date >= '2016-01-01'
AND date < '2026-09-01'
GROUP BY date
),
gaps AS
(
SELECT
date,
round((toFloat64(open_px) / prev_close - 1) * 100, 3) AS gap_pct
FROM
(
SELECT
date,
open_px,
lagInFrame(toFloat64(close_px)) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM bars
)
WHERE prev_close > 0
)
SELECT
multiIf(abs(gap_pct) < 0.25, '0.00-0.25%',
abs(gap_pct) < 0.50, '0.25-0.50%',
abs(gap_pct) < 1.00, '0.50-1.00%',
abs(gap_pct) < 2.00, '1.00-2.00%',
'2.00%+') AS gap_bucket,
count() AS sessions,
round(100.0 * count() / sum(count()) OVER (), 1) AS share_pct
FROM gaps
GROUP BY gap_bucket
ORDER BY min(abs(gap_pct)) ASC分布的形狀很清楚。最小的一格,跳空不到 0.25%,佔了 32.4%,多數交易日的開盤只是貼著昨天的收盤價微幅移動。1.00% 到 2.00% 那一格佔 13.6%,2% 以上那一格佔 5.2%,在這段樣本裡共有 138 個交易日落在最大那一格。開盤跳空超過 1% 的日子對 MSFT 來說並不罕見。跳空是怎麼形成的,股價為什麼會隔夜跳空那篇從機制講起。
逐年看,跳空的典型幅度會變
十年的平均會把年度差異壓平,所以把同一組跳空按年份切開。第三欄是該年絕對跳空幅度的中位數,第四欄是該年跳空超過 1% 的交易日比例。
| year | sessions | median_abs_gap_pct | over_1pct_share_pct |
|---|---|---|---|
| 2016 | 251 | 0.31 | 11.6 |
| 2017 | 251 | 0.24 | 4 |
| 2018 | 251 | 0.44 | 16.3 |
| 2019 | 252 | 0.43 | 15.9 |
| 2020 | 253 | 0.65 | 31.2 |
| 2021 | 252 | 0.39 | 17.5 |
| 2022 | 251 | 0.64 | 33.5 |
| 2023 | 250 | 0.48 | 18.8 |
| 2024 | 252 | 0.34 | 13.5 |
| 2025 | 250 | 0.4 | 17.2 |
| 2026 | 166 | 0.66 | 30.7 |
每個數據背後的精確 SQL 語法
WITH bars AS
(
SELECT
date,
any(open) AS open_px,
any(close) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'MSFT'
AND date >= '2016-01-01'
AND date < '2026-09-01'
GROUP BY date
),
gaps AS
(
SELECT
date,
round((toFloat64(open_px) / prev_close - 1) * 100, 3) AS gap_pct
FROM
(
SELECT
date,
open_px,
lagInFrame(toFloat64(close_px)) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM bars
)
WHERE prev_close > 0
)
SELECT
toString(toYear(date)) AS year,
count() AS sessions,
round(quantileDeterministic(0.5)(abs(gap_pct), toUInt64(toYYYYMMDD(date))), 2) AS median_abs_gap_pct,
round(100.0 * countIf(abs(gap_pct) > 1) / count(), 1) AS over_1pct_share_pct
FROM gaps
GROUP BY year
ORDER BY year ASC2016 年的絕對跳空中位數是 0.31%,2026 年是 0.66%,後者的資料只到 8 月底,是不完整的一年。同一列的 over_1pct_share_pct 顯示,2026 年有 30.7% 的交易日開盤跳空超過 1%。年與年之間的差距不小,所以「MSFT 的跳空大概多大」這個問題,答案取決於你問的是哪一年。
跳空方向能預測當天的走勢嗎
這是最實用的一問:開盤往上跳,正規時段會繼續往上,還是把缺口收回來?下面把跳空幅度分格,計算當天正規時段(開盤到收盤)的方向與跳空方向相同的比例,並把每一格的當日漲跌先對齊跳空方向後再取中位數。對齊之後,正值代表延續,負值代表回吐。
| gap_bucket | sessions | continuation_pct | median_aligned_pct |
|---|---|---|---|
| 0.25-0.50% | 649 | 48.2 | -0.04 |
| 0.50-1.00% | 658 | 48 | -0.09 |
| 1.00-2.00% | 365 | 53.4 | 0.12 |
| 2.00%+ | 138 | 51.4 | 0.14 |
每個數據背後的精確 SQL 語法
WITH bars AS
(
SELECT
date,
any(open) AS open_px,
any(close) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'MSFT'
AND date >= '2016-01-01'
AND date < '2026-09-01'
GROUP BY date
),
gaps AS
(
SELECT
date,
round((toFloat64(open_px) / prev_close - 1) * 100, 3) AS gap_pct,
round((toFloat64(close_px) / toFloat64(open_px) - 1) * 100, 3) AS session_pct
FROM
(
SELECT
date,
open_px,
close_px,
lagInFrame(toFloat64(close_px)) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM bars
)
WHERE prev_close > 0
)
SELECT
multiIf(abs(gap_pct) < 0.50, '0.25-0.50%',
abs(gap_pct) < 1.00, '0.50-1.00%',
abs(gap_pct) < 2.00, '1.00-2.00%',
'2.00%+') AS gap_bucket,
count() AS sessions,
round(100.0 * countIf(sign(session_pct) = sign(gap_pct)) / count(), 1) AS continuation_pct,
round(quantileDeterministic(0.5)(session_pct * sign(gap_pct), toUInt64(toYYYYMMDD(date))), 2) AS median_aligned_pct
FROM gaps
WHERE abs(gap_pct) >= 0.25
GROUP BY gap_bucket
HAVING count() > 0
ORDER BY min(abs(gap_pct)) ASC最小的一格延續比例是 48.2%,幅度最大的那一格是 51.4%,兩者都沒有離五成太遠。最大跳空那一格對齊方向後的當日中位數落在 0.14%。這組數字要說的是同一件事:跳空的方向本身,對當天正規時段的方向幾乎沒有多告訴我們什麼,而晚上在台北看到的那個盤後價格,離「隔天的開盤」還隔著整個夜盤,離「隔天的收盤」更遠。
一段真實的軌跡
上面是十年的統計,這張面板把一段固定區間攤開來:每天兩個數字,隔夜跳空與當天正規時段的漲跌。區間寫死在 SQL 裡,所以同一段軌跡每次重算都是同一組數字。
| session_date | session_label | gap_pct | session_pct |
|---|---|---|---|
| 2026-07-01 | 7月1日 | 2.09 | 0.91 |
| 2026-07-02 | 7月2日 | 0.05 | 1.56 |
| 2026-07-06 | 7月6日 | -0.88 | -0.08 |
| 2026-07-07 | 7月7日 | 1.49 | -0.93 |
| 2026-07-08 | 7月8日 | -1.24 | -0.18 |
| 2026-07-09 | 7月9日 | -2.32 | 2.65 |
| 2026-07-10 | 7月10日 | 0.89 | -0.7 |
| 2026-07-13 | 7月13日 | 0.69 | 0.84 |
| 2026-07-14 | 7月14日 | -2.09 | 0.55 |
| 2026-07-15 | 7月15日 | 0.75 | 2.02 |
| 2026-07-16 | 7月16日 | 0.68 | 0.7 |
| 2026-07-17 | 7月17日 | -1.56 | -0.26 |
| 2026-07-20 | 7月20日 | -0.61 | 2.78 |
| 2026-07-21 | 7月21日 | -0.87 | -0.26 |
| 2026-07-22 | 7月22日 | 0.46 | -2.31 |
| 2026-07-23 | 7月23日 | -0.1 | -2.15 |
| 2026-07-24 | 7月24日 | 1.43 | -1.38 |
| 2026-07-27 | 7月27日 | 2.2 | -0.25 |
| 2026-07-28 | 7月28日 | 1.04 | 0.05 |
| 2026-07-29 | 7月29日 | 0.01 | -0.73 |
每個數據背後的精確 SQL 語法
WITH bars AS
(
SELECT
date,
any(open) AS open_px,
any(close) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'MSFT'
AND date >= '2026-06-20'
AND date < '2026-09-01'
GROUP BY date
)
SELECT
toString(date) AS session_date,
concat(toString(toMonth(date)), '月', toString(toDayOfMonth(date)), '日') AS session_label,
round((toFloat64(open_px) / prev_close - 1) * 100, 2) AS gap_pct,
round((toFloat64(close_px) / toFloat64(open_px) - 1) * 100, 2) AS session_pct
FROM
(
SELECT
date,
open_px,
close_px,
lagInFrame(toFloat64(close_px)) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM bars
)
WHERE prev_close > 0
AND date >= '2026-07-01'
ORDER BY date ASC這段區間從 7月1日 到 8月31日,共 43 個交易日。把兩條線放在一起看,最值得注意的是它們經常不同號:開盤跳開一段,當天正規時段往另一個方向走,把缺口吃掉一部分。這正是前一節那些接近五成的延續比例在單一區間裡長出來的樣子。
複委託與台幣計價的兩個提醒
台灣的複委託和美國本地券商在這件事上的差別,主要在時段與單別。多數複委託只接受美股正規時段的委託,盤前盤後不一定開放,能不能掛、能掛什麼單別(多半要求限價),以各家券商公告為準。在美國券商,盤前盤後通常只吃限價單,市價單會被排到正規時段開盤才處理。台北時間晚上看到一個盤後價格、隔天卻以完全不同的價格成交,多半就是這個順序造成的。
台幣計價再加一層。券商畫面上的台幣參考價,是美元價乘上當日匯率換算來的,匯率動了台幣數字就會動,即使美元價一分錢都沒變。判斷「哪一個是官方收盤價」時,先把匯率換算放到一邊,兩件事互不相干。想看 MSFT 的波動本身被市場定價成多少,MSFT 隱含波動率那篇用選擇權資料處理同一個問題。
資料與算法說明
- 跳空定義:當日 open 除以前一個交易日的 close 再減一,全部取自 MSFT 的日線 OHLCV。
- 日線每天只有四個價格與成交量,盤前與盤後的逐筆成交不在這組資料裡。所以本文不引用任何盤前盤後的成交價,改用跳空統計回答同一個問題。
- 同一個日期若出現重複列,先 GROUP BY date 取 any() 去重再計算。
- 價格欄位是 Decimal,餵進分位數函數前一律 toFloat64。分位數用 quantileDeterministic,同一組資料重算不會漂移成兩個版本。
- 統計區間到 2026 年 8 月 31 日為止,2026 年是不完整的一年,逐年表最後一列請照這個前提讀。
FAQ
台北晚上看到的 MSFT 價格是真的成交價嗎
是真的成交價,但它來自盤前或盤後時段,成交量遠小於正規時段,單一筆小額委託就可能讓價格跳一截。它不是當天的官方收盤價,也不會被寫進日線圖。
MSFT 的官方收盤價是幾點決定的
美東時間下午四點的收盤競價。交易所把收盤前累積的買賣單集中撮合一次,撮出來的價格就是官方收盤價。夏令時間換算成台北時間是隔天凌晨四點,冬令時間是隔天凌晨五點。
盤前盤後的價格會進到隔天的 K 線圖嗎
標準日線圖的四個價格都取自正規時段,盤前盤後的成交不會改寫收盤價。你看到的「隔夜跳空」就是昨天收盤到今天開盤之間的落差,圖上表現為兩根 K 棒之間的缺口。
隔夜跳空可以用來預測當天的走勢嗎
以 MSFT 從 2016 年以來的日線來看,當天正規時段延續跳空方向的比例,在各個跳空幅度分格裡都接近五成。跳空的方向本身幾乎沒有指向性,這是觀察到的分布,不是任何操作建議。
複委託可以交易 MSFT 的盤前盤後嗎
視券商而定。多數複委託只受理正規時段的委託,有開放盤前盤後的通常也限定限價單並另設時段,實際規則以各家券商的公告為準。
每一張面板下面都附了產生數字的 SQL,展開就能看到每個數字是怎麼數出來的。想換一檔股票或換一段區間重算同一組統計,在 Strasmore 終端機用白話問一次就好。