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

股票為何會隔夜跳空?

跳空是前日收盤到上午9:30開盤的差距,歷經17.5小時休市。SPY隔夜跳空幅度,週一最寬,須留意停損風險。

缺口是指股票前一交易日收盤價與次日開盤價之間的差距——價格圖表上的一段跳空,期間沒有常規交易時段的成交紀錄。股票之所以會在隔夜出現向上或向下的缺口,結構性原因在於:交易所每天僅有6.5小時的交易時段,其餘17.5小時仍會產生財報、新聞、海外交易及稀疏的延長交易時段撮合。所有這些資訊會一次性反映在次日早晨的開盤價上。本頁面旨在衡量缺口,而非斷言缺口:涵蓋SPY在2026上半年每個交易日、與指數並列的五檔家喻戶曉個股,以及一檔在開盤前醞釀成形、隔夜漲幅超過8%的走勢。

什麼是向上跳空或向下跳空?

向上跳空:今日開盤價高於昨日一般交易時段收盤價。向下跳空:低於昨日一般交易時段收盤價。此處的開盤價是指美東時間上午9:30的開盤價,由開盤集合競價決定,該競價會收集隔夜累積的委託單,並以單一價格撮合。在前一個收盤價到該集合競價之間,盤後與盤前交易確實會產生真實成交,但成交量僅為一般交易時段的一小部分——因此,正式開盤價是市場整體力量首次發聲之處,也是衡量跳空缺口的位置。

價格發現機制從未完全停止:指數期貨幾乎全天候交易,海外市場在紐約休市時確立價格水準,盤前交易則從美東時間凌晨4:00開始。到了上午9:30,集合競價並非憑空猜測——它是在確認隔夜各個交易場所已大致描繪出的價格水準。

正常的隔夜跳空有多大?

將 SPY(標普 500 ETF)2026 年上半年每個交易日的走勢,拆分為隔夜(前日收盤至開盤)與盤中(開盤至收盤)兩個部分:

查詢SPY,2026上半年 — 平均絕對隔夜跳空 vs 平均絕對盤中波動
每個數據背後的精確 SQL 語法
SELECT count() AS sessions,
       round(avg(abs(100 * (rth_open - prior_close) / prior_close)), 2) AS avg_abs_overnight_gap_pct,
       round(avg(abs(100 * (rth_close - rth_open) / rth_open)), 2) AS avg_abs_intraday_move_pct,
       countIf(abs(100 * (rth_open - prior_close) / prior_close) >= 0.5) AS gaps_of_half_pct_or_more
FROM (SELECT day, rth_open, rth_close, lagInFrame(rth_close) OVER (ORDER BY day) AS prior_close
    FROM (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMinIf(toFloat64(open), window_start, rth) AS rth_open,
               argMaxIf(toFloat64(close), window_start, rth) AS rth_close
        FROM (
            SELECT window_start, open, close,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'SPY'
              AND window_start >= '2025-12-29 04:00:00'
              AND window_start < '2026-07-01 08:00:00'
        )
        GROUP BY day
    ))
WHERE day >= '2026-01-01' AND prior_close > 0 AND isFinite(prior_close)

123 個交易日中,SPY 的平均絕對隔夜跳空幅度為 0.45%,而平均絕對開盤至收盤波動為 0.53%:無法交易的隔夜跳空,規模幾乎等同於隨後整個可交易時段的波動。幅度達 0.5% 或以上的跳空發生了 41 次——大約每三個交易日就出現一次。

週一開盤跳空幅度是否更大?

週一開盤向來背負著一種名聲:週末將相同的市場機制,從 17.5 小時的休市拉長到 65 小時。這種普遍說法是可以檢驗的。將 2024 年 1 月到 2026 年 6 月間每個 SPY 交易時段,依週間日分類,計算平均絕對跳空幅度與第 90 百分位數——也就是每十次開盤只有一次會超過的幅度。(若週一為假日,其週末跳空會遞延至週二開盤,並計入週二。)

查詢SPY 各週日隔夜跳空 — 2024年1月至2026年6月每場交易
每個數據背後的精確 SQL 語法
SELECT ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'][dow] AS weekday,
       count() AS sessions,
       round(avg(abs(gap_pct)), 2) AS avg_abs_gap_pct,
       round(quantileDeterministic(0.9)(abs(gap_pct), toUInt64(toYYYYMMDD(day))), 2) AS p90_abs_gap_pct
FROM (
    SELECT day, toDayOfWeek(day) AS dow,
           100 * (rth_open - prior_close) / prior_close AS gap_pct
    FROM (
        SELECT day, rth_open, lagInFrame(rth_close) OVER (ORDER BY day) AS prior_close
        FROM (
            SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
                   argMinIf(toFloat64(open), window_start, rth) AS rth_open,
                   argMaxIf(toFloat64(close), window_start, rth) AS rth_close
            FROM (
            SELECT window_start, open, close,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
                FROM global_markets.delayed_stocks_minute_aggs
                WHERE ticker = 'SPY'
                  AND window_start >= '2023-12-28 04:00:00'
                  AND window_start < '2026-07-01 08:00:00'
            )
            GROUP BY day
        )
    )
    WHERE day >= '2024-01-01' AND prior_close > 0 AND isFinite(prior_close)
)
WHERE dow <= 5
GROUP BY dow
ORDER BY dow

這個普遍說法經得起數據檢驗。在 119 個週一中,平均絕對跳空幅度為 0.52%,是五個週間日裡最大的,相較之下週二為 0.36%,週三 0.39%,週四 0.45%,週五 0.39%。極端值最能看出週末效應:週一的第 90 百分位跳空幅度為 1.11%,而週二為 0.73%。這個效應真實存在但幅度不大——週一開盤的分布更廣,並非本質上截然不同,而且此處數據並未指出跳空方向。

2026上半年最大缺口

上半年六個最大的SPY隔夜缺口,以及當日其餘時間的走勢:

查詢SPY 2026上半年六大隔夜跳空 — 及同日開盤至收盤走勢
每個數據背後的精確 SQL 語法
SELECT concat(monthName(day), ' ', toString(toDayOfMonth(day)), ', ', toString(toYear(day))) AS session,
       round(100 * (rth_open - prior_close) / prior_close, 2) AS overnight_gap_pct,
       round(100 * (rth_close - rth_open) / rth_open, 2) AS rest_of_day_pct
FROM (SELECT day, rth_open, rth_close, lagInFrame(rth_close) OVER (ORDER BY day) AS prior_close
    FROM (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMinIf(toFloat64(open), window_start, rth) AS rth_open,
               argMaxIf(toFloat64(close), window_start, rth) AS rth_close
        FROM (
            SELECT window_start, open, close,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'SPY'
              AND window_start >= '2025-12-29 04:00:00'
              AND window_start < '2026-07-01 08:00:00'
        )
        GROUP BY day
    ))
WHERE day >= '2026-01-01' AND prior_close > 0 AND isFinite(prior_close)
ORDER BY abs(overnight_gap_pct) DESC, day
LIMIT 6

最大缺口發生在April 8, 2026:SPY開盤價較前日收盤價偏離2.6%,隨後從開盤到收盤移動了-0.08%。整日的重新定價都在第一筆常規交易之前完成——缺口的實務教訓是,市場可以在你不在場時重新定價。

沒有故事的數字只是半個數字。4月7日收盤至4月8日開盤之間,所有標記SPY的頭條新聞:

查詢SPY 2026上半年最大隔夜跳空期間傳出什麼消息
每個數據背後的精確 SQL 語法
SELECT formatDateTime(toTimeZone(published_utc, 'America/New_York'), '%b %d %H:%i') AS et_published,
       JSONExtractString(toString(publisher), 'name') AS source,
       substring(title, 1, 80) AS headline
FROM global_markets.stocks_news
WHERE published_utc >= toDateTime('2026-04-07 16:00:00', 'America/New_York')
  AND published_utc < toDateTime('2026-04-08 09:30:00', 'America/New_York')
  AND has(tickers, 'SPY')
ORDER BY published_utc
LIMIT 10

在那段休市時間裡,有兩則頭條新聞傳出,都與美伊停火有關,時間戳記分別為美東時間Apr 08 03:28Apr 08 08:58——在開盤鐘響之前,在一個關閉的市場上。缺口,就是對那些在你無法交易時抵達的新聞所做的會計分錄。

個股跳空幅度會比指數更大嗎?

指數型 ETF 持有數百家公司,這些公司的隔夜意外會部分互相抵消。單一個股則沒有這種緩衝。以下是五檔知名個股與 SPY 在相同交易日的比較:

查詢各標的隔夜跳空,2026上半年 — 平均絕對跳空及單一最大跳空
每個數據背後的精確 SQL 語法
SELECT ticker,
       count() AS sessions,
       round(avg(abs(gap_pct)), 2) AS avg_abs_gap_pct,
       round(argMax(gap_pct, (abs(gap_pct), day)), 2) AS biggest_gap_pct,
       concat(monthName(argMax(day, (abs(gap_pct), day))), ' ', toString(toDayOfMonth(argMax(day, (abs(gap_pct), day)))), ', ', toString(toYear(argMax(day, (abs(gap_pct), day))))) AS biggest_gap_day
FROM (
    SELECT ticker, day, 100 * (rth_open - prior_close) / prior_close AS gap_pct
    FROM (
        SELECT ticker, day, rth_open,
               lagInFrame(rth_close) OVER (PARTITION BY ticker ORDER BY day) AS prior_close
        FROM (
            SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS day,
                   argMinIf(toFloat64(open), window_start, rth) AS rth_open,
                   argMaxIf(toFloat64(close), window_start, rth) AS rth_close
            FROM (
                SELECT ticker, window_start, open, close,
                       toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                       AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
                FROM global_markets.delayed_stocks_minute_aggs
                WHERE ticker IN ('SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'TSLA')
                  AND window_start >= '2025-12-29 04:00:00'
                  AND window_start < '2026-07-01 08:00:00'
            )
            GROUP BY ticker, day
        )
    )
    WHERE day >= '2026-01-01' AND prior_close > 0 AND isFinite(prior_close)
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'TSLA'], ticker)

請分別閱讀兩個欄位。在一般的夜晚,排名如你所想:特斯拉平均為 1.05%,輝達平均為 0.99%,對比 SPY 的 0.45%——但可口可樂平均為 0.42%,低於指數——一檔穩定的消費巨頭在多數夜晚是安靜的隔夜交易工具。

極端值欄位則顯示緩衝消失了。SPY 在這半年期間單次最大跳空為 2.6%(April 8, 2026),而五檔個股全都超過它:可口可樂 5.41%,蘋果 2.82%,輝達 3.6%,特斯拉 4.97%——以及微軟,當中規模最大者,在 January 29, 2026 達到 -8.66%。單一個股在一般夜晚不見得比指數更吵雜,但它們最糟糕的夜晚則要糟糕得多。

開盤前觀察缺口成形

回顧微軟的 January 29, 2026 缺口。前一交易日收在 $481.72;該收盤價之後出現的任何消息,都落在一個已關閉的市場上,而到了美東時間凌晨 4:00 盤前交易開盤時,重新定價已經完成:

查詢MSFT — 2026年1月29日跳空如何形成,30分鐘盤前區間
每個數據背後的精確 SQL 語法
WITH day_vol AS (
    SELECT sum(toFloat64(volume)) AS rth_vol
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'MSFT'
      AND window_start >= toDateTime('2026-01-29 09:30:00', 'America/New_York')
      AND window_start < toDateTime('2026-01-29 16:00:00', 'America/New_York')
),
prior AS (
    SELECT round(argMax(toFloat64(close), window_start), 2) AS prior_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'MSFT'
      AND window_start >= toDateTime('2026-01-28 09:30:00', 'America/New_York')
      AND window_start < toDateTime('2026-01-28 16:00:00', 'America/New_York')
),
buckets AS (
    SELECT toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 minute) AS bucket,
           round(argMax(toFloat64(close), window_start), 2) AS price,
           sum(toFloat64(volume)) AS shares
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'MSFT'
      AND window_start >= toDateTime('2026-01-29 04:00:00', 'America/New_York')
      AND window_start < toDateTime('2026-01-29 09:30:00', 'America/New_York')
    GROUP BY bucket
)
SELECT formatDateTime(bucket, '%H:%i') AS et_time,
       price,
       (SELECT prior_close FROM prior) AS prior_close,
       round(100 * (price - (SELECT prior_close FROM prior)) / (SELECT prior_close FROM prior), 2) AS vs_prior_close_pct,
       round(abs(100 * (price - (SELECT prior_close FROM prior)) / (SELECT prior_close FROM prior)), 2) AS pct_below_prior_close,
       round(shares / 1000) AS shares_thousands,
       round(sum(shares) OVER (ORDER BY bucket) / 1000000, 2) AS cum_shares_millions,
       round(100 * sum(shares) OVER (ORDER BY bucket) / (SELECT rth_vol FROM day_vol), 2) AS cum_pct_of_regular_volume
FROM buckets
ORDER BY bucket

第一個盤前交易區間(美東時間 04:00)就已成交在 $454,較前一日收盤價低 5.75%,成交量 128 千股。接下來的五個小時呈現橫向整理;到了最後一個盤前交易區間(美東時間 09:00),價格較收盤價低 8.71%,而正式開盤價落在 -8.66%——這與 4.86 百萬股的隔夜交易量所決定的價格,僅有捨入誤差級別的差距。

請注意最後一欄:整個盤前交易時段承擔了正規交易時段總成交量的 4.31%。這種規模的缺口,是由暗池中極少量的成交量完成定價,並在 9:30 由全市場進行確認。正是這種稀薄的交易量,解釋了為何價差在開盤前後最寬

選擇權市場當晚的定價

選擇權顯示市場在事件發生前預期的波動幅度。跨式組合——同一履約價與到期日的買權加賣權——其成本大致反映市場認為股價在到期前可能朝任一方向波動的幅度。微軟接近價平的跨式組合,報價取自1月28日收盤前最後15分鐘,兩天後到期:

查詢MSFT 跳空前收盤跨式價格 — 2026年1月28日,1月30日到期
每個數據背後的精確 SQL 語法
WITH prior AS (
    SELECT round(argMax(toFloat64(close), window_start), 2) AS prior_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'MSFT'
      AND window_start >= toDateTime('2026-01-28 09:30:00', 'America/New_York')
      AND window_start < toDateTime('2026-01-28 16:00:00', 'America/New_York')
),
quotes AS (
    SELECT toFloat64(substring(ticker, 14, 8)) / 1000 AS strike,
           substring(ticker, 13, 1) AS cp,
           round(argMax((bid_price + ask_price) / 2, sip_timestamp), 2) AS mid
    FROM global_markets.cache_options_quotes
    WHERE ticker LIKE 'O:MSFT260130%'
      AND sip_timestamp >= toDateTime('2026-01-28 15:45:00', 'America/New_York')
      AND sip_timestamp < toDateTime('2026-01-28 16:00:00', 'America/New_York')
      AND bid_price > 0
      AND ask_price > 0
    GROUP BY ticker
)
SELECT concat('$', toString(strike)) AS strike_price,
       maxIf(mid, cp = 'C') AS call_mid,
       maxIf(mid, cp = 'P') AS put_mid,
       round(maxIf(mid, cp = 'C') + maxIf(mid, cp = 'P'), 2) AS straddle_cost,
       round(100 * (maxIf(mid, cp = 'C') + maxIf(mid, cp = 'P')) / (SELECT prior_close FROM prior), 2) AS implied_move_pct
FROM quotes
WHERE abs(strike - (SELECT prior_close FROM prior)) <= 5
GROUP BY strike
HAVING countIf(cp = 'C') > 0 AND countIf(cp = 'P') > 0
ORDER BY strike

最接近$481.72收盤價的履約價$482.5,該組合以$25.69結算——佔股價的5.33%,而這是兩個完整交易日的定價波動,不是單一晚間。光是隔夜跳空缺口就達到-8.66%。選擇權市場有個數字,而當晚的實際波動超越了它——鄰近履約價也一致認同(5.37%為$477.55.37%為$485),因此這是市場共識,而非單一異常報價。

以下兩個機制適用於任何持有選擇權度過跳空缺口的情況。選擇權無法在市場休市時重新定價——時間持續對買方權利金不利,而全部波動會在開盤價一次反映。此外,一旦事件公布,不確定性也隨之從價格中消失:隱含波動率在消息公布後的隔天早上會崩跌,這就是為什麼即使方向判斷正確,買方選擇權仍可能虧損的原因。到期天數決定了這兩項因素衝擊的劇烈程度。

跳空缺口類型:圖表型態的術語

交易者根據缺口在較長走勢中的位置來標記它們。這些名稱是描述性的,事後才套用,且無一具有預測功能:

  • 普通(區間)缺口 — 在一般區間內的小缺口,無特殊消息。大多數幅度不到半個百分點的SPY缺口都屬此類。
  • 突破缺口 — 價格跳出一個區間或穿越長期存在的價位,通常伴隨大量成交量。
  • 奔逸(延續)缺口 — 趨勢中途出現的缺口,方向與股票原先行進方向一致。
  • 竭盡缺口 — 出現在走勢末端、與趨勢同向的缺口,之後價格反轉。當天看來與奔逸缺口一模一樣;唯有後續數據才能區分兩者。

最後這一對缺口正是關鍵所在:標籤取決於後續走勢,因此沒有人能在當下即時命名。

缺口對你訂單的意義

三個後果,全都源於缺口內部沒有發生任何常規交易時段的事實:

  • 停損單不會在停損價格止住虧損。 一旦股票成交價觸及或穿過觸發價,停損單就會變成市價單。如果一檔股票收在 $50 並以 $44 開盤,一張 $48 的停損單會在開盤時觸發,並在 $44 附近成交——缺口直接跳過了它。停損單保證的是嘗試,而非價位;停損限價單會限制你願意接受的價格,但代價是可能完全無法成交。
  • 熔斷,而非缺口,才是市場的煞車。 漲跌幅限制(LULD)區間會阻止股票印出超過其近期均價一定百分比的價格——多數股票為 5% 或 10%,低價股區間更寬,開盤與收盤時段則放寬一倍——而持續超出區間的走勢會觸發五分鐘暫停。全市場斷路器則在標普 500 指數自前一日收盤下跌 7%(第一級)或 13%(第二級)時暫停所有交易,並在跌幅達 20%(第三級)時提前收盤。這些機制都無法阻止缺口;它們規範的是交易恢復後發生的事。
  • 「填補缺口」是描述,不是時間表。 交易人說缺口「被填補」,是指價格回到前一日收盤價。沒有任何力量強制它必須填補,也沒有任何時間表。這半年來 SPY 缺口最大的一天,開盤後僅移動了 -0.08%:沒有填補,沒有消退,只是一個新的價位。

隔夜與盤中,在統計上是不同的市場——這也正是為什麼月報酬的衡量方式會因為是否計入隔夜跳空而得出不同答案。

常見問題

是什麼導致股票在一夜之間出現跳空缺口?

市場每24小時中有17.5小時是休市的,但資訊不會停止流動:財報在收盤後公布、新聞在開盤前爆發、海外市場整夜都在交易。開盤集合競價會以一個價格來撮合所有累積的委託單;這個價格與前一日收盤價的差距,就是跳空缺口。

隔夜跳空缺口有多常見?

無所不在。在2026年上半年,SPY的平均絕對隔夜跳空缺口為0.45%,且在123個交易日中,有41的開盤價與前一日收盤價差距至少0.5%。個股的波動更大:特斯拉的平均值為1.05%。

股票在星期一比較容易出現跳空缺口嗎?

稍微,是的。從2024年1月到2026年6月,SPY在星期一的平均絕對跳空缺口為0.52%——是一週中最大的,而星期二則為0.36%。週末增加了休市的時數,而非方向。

跳空缺口總是會被回補嗎?

不會。「缺口必補」是交易界的傳說:有些缺口在幾小時內就會回補,有些則永遠不會再回到先前的收盤價。請將任何回補統計數據視為對過去交易日的描述,而非對下一個交易日的規則。

如果股票向下跳空,我的停損單會發生什麼事?

停損單會在開盤時觸發,並以市場當下提供的任何價格成交,而這個成交價可能遠低於停損價格——跳空缺口內沒有任何交易可以承接它。


以上每個數字都是儲存的查詢結果——展開任何面板下的SQL,或在Strasmore終端機上,將任何股票的月份走勢拆分為隔夜與盤中變動。

#gaps#market structure#opening auction#overnight moves