美股为什么会跳空高开或低开?隔夜缺口详解
跳空缺口是前一日收盘价与次日美东时间9:30(北京时间21:30)开盘价之间的落差,中间隔着17.5小时休市。本文用真实数据测量SPY的隔夜跳空幅度、周一为何最宽,以及跳空给止损单带来的风险。
跳空缺口,是一只股票前一个交易日的收盘价与下一个交易日开盘价之间的落差——价格图上出现一次跳跃,中间没有任何常规时段的成交。美股会隔夜跳空高开或低开,这有结构性的原因:交易所每天只运行6.5小时的常规交易时段,而其余17.5小时里,财报、新闻、海外市场交易和盘前盘后稀薄的成交仍在源源不断地产生。这一切会在次日开盘的那一刻一次性落地。本页不做断言,只做测量:2026年上半年SPY的每一个交易日、五只家喻户晓的个股与指数的对照,以及一次超过8%的隔夜跳空在开盘钟前一步步成形的过程。
什么是跳空高开与跳空低开?
跳空高开:今日开盘价高于昨日常规时段的收盘价。跳空低开:低于昨日收盘价。这里说的开盘,是美东时间上午9:30(夏令时对应北京时间21:30,冬令时22:30)的开盘,由开盘集合竞价决定——集合竞价把隔夜积压的订单收拢起来,以单一价格撮合。在前一日收盘与这场竞价之间,盘后与盘前交易确实会打出真实成交,但成交量只有常规时段的零头——所以官方开盘价才是市场全部重量第一次发声的地方,跳空也在那里被测量。
价格发现从未真正停止:股指期货几乎全天候交易,纽约入睡时海外市场在定价,盘前交易从美东时间凌晨4:00(夏令时对应北京时间16:00,冬令时17:00)开始。到了9:30,集合竞价并不是在猜——它是在确认隔夜各个交易场所已经勾勒出的价位。
一次正常的隔夜跳空有多大?
2026年上半年SPY(跟踪标普500的ETF)的每一个交易日,拆成隔夜(前收盘到开盘)与日内(开盘到收盘)两段:
每个数字背后的完整 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次——大约每三个交易日就有一次。
股票在周一跳空更多吗?
周一的开盘自带名声:一个周末把同样的机制拉长到65个休市小时,而不是17.5个。传言是可以检验的。2024年1月至2026年6月SPY的每一个交易日,按星期分组,列出跳空绝对值的均值与90分位——只有十分之一的开盘会超过的幅度。(若周一恰逢假日,周末的跳空就落到周二开盘上,计入周二。)
每个数字背后的完整 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最大的六次隔夜跳空,以及当天余下的时间走了多少:
每个数字背后的完整 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%。当天全部的重新定价都发生在第一笔常规时段成交之前——跳空给出的实用教训是,市场可以在没有您的情况下重新定价。
没有故事的数字只算半个数字。2026年4月7日收盘至4月8日开盘之间发布的每一条带SPY标签的新闻:
每个数字背后的完整 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:28与美东时间Apr 08 08:58——都在开盘钟之前,市场关着门。跳空就是那些在您无法交易时到达的消息的记账凭证。
个股比指数跳空更猛吗?
一只指数ETF持有数百家公司,它们各自的隔夜意外会部分相互抵消。单只股票没有这层缓冲。五只家喻户晓的个股与SPY并排,同样的交易日:
每个数字背后的完整 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)两列要分开读。在典型的一个夜晚,排序和您猜的一样:特斯拉(TSLA)的均值为1.05%,英伟达(NVDA)为0.99%,SPY为0.45%——但可口可乐(KO)的均值是0.42%,低于指数——一只稳健的消费类超大盘股,多数夜晚都是安静的隔夜品种。
尾部那一列才是缓冲消失的地方。SPY在那半年最大的单次跳空是2.6%(April 8, 2026),而五只个股全部超过了它:可口可乐5.41%、苹果(AAPL)2.82%、英伟达3.6%、特斯拉4.97%——其中幅度最大的是微软(MSFT),-8.66%,出现在January 29, 2026。个股在一个平常的夜晚未必比指数更吵,但它们最糟的那个夜晚要糟得多。
在开盘钟前看着一个跳空成形
把微软January 29, 2026那次跳空倒回去看。前一个交易日收在$481.72;收盘之后落下来的任何消息,都落在一个关着门的市场上,而到美东时间凌晨4:00(当时为冬令时,北京时间17:00)盘前开始时,重新定价已经完成:
每个数字背后的完整 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的全市场确认。正是这种稀薄,让开盘前后的买卖价差最宽。
期权市场为那一夜开出的价码
期权显示的是市场在事情发生之前所预期的波动幅度。跨式组合(straddle)——同一行权价、同一到期日的看涨期权加看跌期权——的成本,大致等于市场认为该股到期前无论朝哪个方向会走出的幅度。微软在1月28日收盘前最后15分钟报出的平值附近跨式组合,两天后到期:
每个数字背后的完整 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%。期权市场给出了一个数字,而那一夜超过了它——相邻的行权价读数一致($477.5上是5.37%,$485上是5.37%),所以这是共识,不是某一笔离谱的报价。
对任何持有期权穿过一次跳空的人来说,随之而来的有两条机制。市场关闭时,期权无法重新定价——时钟仍在与多头付出的权利金作对,而全部的波动会在开盘那一笔里一次到齐。事件一旦落地,不确定性也随之从价格中退去:消息公布后的第二天早上隐含波动率会塌陷,这就是为什么方向判断正确的人,拿着一张多头期权仍可能亏钱。DTE(距到期天数)决定了这两件事咬得有多狠。
跳空的类型:图表形态的词汇表
交易者按跳空在一段更长走势中所处的位置给它们起名。这些名字是描述性的,事后才贴上,没有一个是预测:
- 普通跳空(common / area gap)——发生在普通区间内部的小跳空,没有特别的消息。SPY大多数不到0.5%的跳空都属于这一类。
- 突破跳空(breakaway gap)——价格跳出一个区间,或越过一个长期存在的价位,通常伴随放量。
- 持续跳空(runaway / continuation gap)——出现在趋势中段、方向与股票原本走势一致的跳空。
- 衰竭跳空(exhaustion gap)——同样顺着趋势方向,却出现在这段行情的末尾,此后价格转向。在当天它看起来和持续跳空一模一样;只有后来的数据才能把两者分开。
最后这一对是诚实的难处所在:标签取决于接下来发生什么,所以没有人能在当下就叫出它的名字。
跳空对您的订单意味着什么
三个后果,全都源自同一个事实:跳空内部没有任何常规时段的交易。
- 止损单并不能把亏损止在止损价上。一旦股价触及或穿过触发价,止损单就变成市价单。举一个假设的算例:某只股票收在50美元、次日开在44美元,那么设在48美元的止损单会在开盘时触发,成交价却接近44美元——跳空干干净净地越了过去。止损单保证的是那次尝试,不是那个价位;止损限价单能给您接受的价格封顶,代价是可能根本成交不了。
- 给市场踩刹车的是停牌,不是跳空。涨跌限制机制(limit up-limit down,LULD)不允许一只股票的成交价偏离其近期均价超过设定的百分比——多数股票为5%或10%,低价股更宽,开盘和收盘前后加倍——持续偏离区间就会触发五分钟暂停。全市场熔断则在标普500较前收盘下跌7%(一级)或13%(二级)时暂停所有交易,跌至20%(三级)时当日休市。这些都不能阻止跳空;它们管的是交易恢复之后的事。
- “缺口回补”是一种描述,不是一张时间表。当价格回到前收盘价时,交易者说缺口被“回补”了。但没有任何东西规定它必须回补,在任何时间尺度上都没有。SPY那半年最大的跳空日,开盘之后只走了-0.08%:没有回补,没有回落,只是一个新的价位。
从统计上看,隔夜与日内是两个不同的市场——这也是为什么月度收益率如何计算会因为是否把隔夜跳跃计入而给出不同的答案。
FAQ
美股为什么会跳空高开或低开?
每24小时中,市场有17.5小时是关闭的,而信息不会停:财报在收盘后公布,新闻在开盘前发生,海外市场整夜都在交易。开盘集合竞价把积压的订单以一个价格撮合掉;这个价格与前收盘价之间的距离,就是跳空。
隔夜跳空常见吗?一般有多大?
非常常见。2026年上半年,SPY隔夜跳空的绝对值均值为0.45%;123个交易日中,有41个的开盘价与前收盘相差至少0.5%。个股的幅度更大:特斯拉的均值为1.05%。
美股周一更容易跳空吗?
是的,但幅度有限。2024年1月至2026年6月,SPY周一跳空的绝对值均值为0.52%——五个交易日中最宽,周二为0.36%。周末增加的是休市小时数,不是方向。
跳空缺口一定会回补吗?
不一定。“缺口总会回补”是交易圈里的传言:有些缺口几小时内就补上,有些再也没有回到前收盘价。任何关于回补的统计,都只是对过去交易日的描述,不是关于下一次的规则。
股票跳空低开时止损单会怎么成交?
止损单在开盘时触发,然后按市场当时给出的价格成交,这个价格可能远低于止损价——跳空里没有任何成交可以接住它。
上面每一个数字都来自一条已存储的查询——展开任意面板下方的SQL即可逐项查看,或到Strasmore终端把任意代码的某个月拆成隔夜与日内两段。