股票为何在除息日下跌
除息日的下跌通常是股息导致的机械性价格调整,而非抛售。了解参考价如何调整,以及实际派息股票开盘时低于前收盘价多少。
股票在除息日下跌,通常是预定调整的结果,而不是抛售。除息日买入的投资者无法获得即将发放的股息。因此,股票在除息日换手时,所附带的股息比前一日下午收盘时少一笔。交易所还会为制图和订单价格处理,将前一交易日的收盘价按股息金额下调。股票实际以什么价格开盘则是另一个问题。下方图表统计了一组大型股息支付者在五年内各个除息日的实际表现。
股票为何在除息日下跌:调整机制
股息涉及四个日期。宣告日是董事会宣布派息的日期。除息日是股票首次在不再附带股息权利的情况下交易的交易日。登记日是公司核对股东名册的日期,支付日则是现金到账的日期。我们的除息日指南介绍了完整流程,登记日与除息日则区分了最容易混淆的两个日期。
在除息日进行交易前,交易所会执行两项机械性调整:
- 为了参考,前一交易日的收盘价会按股息金额下调。图表、涨跌幅字段、移动平均线,以及开盘集合竞价所依据的参考价,都会使用调整后的数字。
- 低于市场价挂出的未成交订单会按股息金额下调。
这两项调整都不是交易。没有股票换手,也不会产生成交量记录。股票会从较低的参考点开始交易。如果价格序列忽略这项调整,每个季度都会显示出一次并不存在的下跌。
交易所会在除息日下调您的未成交订单吗?
会,但仅针对低于当前价格的订单类型。除息日,交易所会将未成交的限价买单和止损卖单(包括止损限价卖单)按股息金额下调。假设股息为0.50美元,除息日前挂出的50.00美元限价买单,除息日开盘时会变为49.50美元限价买单。高于市场价的订单,例如限价卖单或止损买单,则不会调整。这种下调会使未成交订单与市场的距离大致保持在其持有人前一天设定的水平。由于美国股票以美分报价,调整结果也会精确到美分。
DNR是Do Not Reduce(不下调)的缩写,表示免于调整的指令。附加该指令后,50.00美元的限价买单在除息日期间仍保持50.00美元。并非所有面向个人投资者的平台都会在下单界面提供DNR;如果提供,通常会将其作为“有效时间”旁边的复选框,或放在特殊指令下拉菜单中。与之对应的DNI(Do Not Increase,不上调)用于股票股息和拆股后的股数处理,临时股息凭单与拆股对此有详细拆解。
除息日的实际跌幅有多大?
下方图表选取了一组大型股息支付者,统计它们2021年至2025年的每个除息日。这些股票在该期间均未拆股,因此原始价格和原始现金金额可以直接比较。对于每个除息日,图表比较前一交易日收盘价与除息日开盘价,再将跌幅总额与股息总额进行比较。
每个数字背后的完整 SQL
WITH
prices AS
(
SELECT
ticker,
date,
open_px,
any(close_px) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
FROM
(
SELECT
ticker,
date,
toFloat64(max(open)) AS open_px,
toFloat64(max(close)) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('KO','PG','JNJ','PEP','XOM','CVX','MCD','HD','VZ','ABBV')
AND date >= '2020-12-01'
AND date < '2026-01-01'
GROUP BY ticker, date
)
),
ex_days AS
(
SELECT
ticker,
ex_dividend_date AS ex_date,
toFloat64(max(cash_amount)) AS dividend
FROM global_markets.stocks_dividends
WHERE ticker IN ('KO','PG','JNJ','PEP','XOM','CVX','MCD','HD','VZ','ABBV')
AND ex_dividend_date >= '2021-01-01'
AND ex_dividend_date < '2026-01-01'
AND cash_amount > 0
GROUP BY ticker, ex_dividend_date
)
SELECT
e.ticker AS ticker,
count() AS payment_count,
round(avg(e.dividend), 4) AS avg_dividend_usd,
round(sum(p.prior_close - p.open_px) / sum(e.dividend), 2) AS drop_per_dollar_paid
FROM ex_days AS e
INNER JOIN prices AS p ON p.ticker = e.ticker AND p.date = e.ex_date
WHERE p.prior_close > 0
GROUP BY e.ticker
ORDER BY drop_per_dollar_paid DESC最后一列表示每支付一美元股息,开盘价下跌多少美元。在10个名称中,该数值从图表底部的0.28延伸至顶部的1.23。顶部数值属于ABBV,对应20笔派息。如果数值为1.00,表示股票平均开盘价比前一交易日收盘价低整整一笔股息。
按日历年汇总每笔派息,可以看出结果会随着样本选择而明显变化。
每个数字背后的完整 SQL
WITH
prices AS
(
SELECT
ticker,
date,
open_px,
any(close_px) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
FROM
(
SELECT
ticker,
date,
toFloat64(max(open)) AS open_px,
toFloat64(max(close)) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('KO','PG','JNJ','PEP','XOM','CVX','MCD','HD','VZ','ABBV')
AND date >= '2020-12-01'
AND date < '2026-01-01'
GROUP BY ticker, date
)
),
ex_days AS
(
SELECT
ticker,
ex_dividend_date AS ex_date,
toFloat64(max(cash_amount)) AS dividend
FROM global_markets.stocks_dividends
WHERE ticker IN ('KO','PG','JNJ','PEP','XOM','CVX','MCD','HD','VZ','ABBV')
AND ex_dividend_date >= '2021-01-01'
AND ex_dividend_date < '2026-01-01'
AND cash_amount > 0
GROUP BY ticker, ex_dividend_date
)
SELECT
toString(toYear(e.ex_date)) AS year,
count() AS payment_count,
round(sum(p.prior_close - p.open_px) / sum(e.dividend), 2) AS drop_per_dollar_paid
FROM ex_days AS e
INNER JOIN prices AS p ON p.ticker = e.ticker AND p.date = e.ex_date
WHERE p.prior_close > 0
GROUP BY year
ORDER BY year在2021中,40笔派息的汇总结果为0.85;在2025中,40笔派息的汇总结果为0.81。任何关于除息日跌幅占股息固定比例的确定性结论,都只是从如此宽的分布中抽取的一次样本。
为什么单个除息日不能说明问题
可口可乐(KO)数十年来一直按稳定的季度节奏派息。将其每股股息与每个除息日的实际开盘跌幅绘制在同一张图上,可以直观看到这一测量问题。
每个数字背后的完整 SQL
WITH
prices AS
(
SELECT
date,
open_px,
any(close_px) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
FROM
(
SELECT
date,
toFloat64(max(open)) AS open_px,
toFloat64(max(close)) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'KO'
AND date >= '2020-12-01'
AND date < '2026-01-01'
GROUP BY date
)
),
ex_days AS
(
SELECT
ex_dividend_date AS ex_date,
toFloat64(max(cash_amount)) AS dividend
FROM global_markets.stocks_dividends
WHERE ticker = 'KO'
AND ex_dividend_date >= '2021-01-01'
AND ex_dividend_date < '2026-01-01'
AND cash_amount > 0
GROUP BY ex_dividend_date
)
SELECT
toString(e.ex_date) AS ex_date,
concat(monthName(e.ex_date), ' ', toString(toDayOfMonth(e.ex_date)), ', ', toString(toYear(e.ex_date))) AS ex_date_label,
round(e.dividend, 4) AS dividend_per_share,
round(p.prior_close - p.open_px, 2) AS drop_at_open
FROM ex_days AS e
INNER JOIN prices AS p ON p.date = e.ex_date
WHERE p.prior_close > 0
ORDER BY e.ex_date股息线接近水平,每年上调一次。跌幅线则围绕其波动。有些除息日的开盘价远低于调整后的价格,也有些除息日的开盘价直接高于前一交易日收盘价。在该区间的20个除息日中,KO在March 12, 2021每股支付了$0.42,在December 1, 2025每股支付了$0.51。
在这个尺度下,单日表现难以辨认。大型股息支付者的季度股息远低于股价的百分之一,而普通隔夜波动也可能覆盖相近幅度。下方图表以基点比较两者。一个基点是一个百分点的百分之一。图表还统计了普通隔夜波动单独超过整笔季度股息的频率。
每个数字背后的完整 SQL
WITH
prices AS
(
SELECT
ticker,
date,
open_px,
any(close_px) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
FROM
(
SELECT
ticker,
date,
toFloat64(max(open)) AS open_px,
toFloat64(max(close)) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('KO','PG','JNJ','PEP','XOM','CVX','MCD','HD','VZ','ABBV')
AND date >= '2020-12-01'
AND date < '2026-01-01'
GROUP BY ticker, date
)
),
ex_days AS
(
SELECT
ticker,
ex_dividend_date AS ex_date,
toFloat64(max(cash_amount)) AS dividend
FROM global_markets.stocks_dividends
WHERE ticker IN ('KO','PG','JNJ','PEP','XOM','CVX','MCD','HD','VZ','ABBV')
AND ex_dividend_date >= '2021-01-01'
AND ex_dividend_date < '2026-01-01'
AND cash_amount > 0
GROUP BY ticker, ex_dividend_date
),
div_size AS
(
SELECT
e.ticker AS ticker,
avg(e.dividend / p.prior_close) * 10000 AS dividend_bps
FROM ex_days AS e
INNER JOIN prices AS p ON p.ticker = e.ticker AND p.date = e.ex_date
WHERE p.prior_close > 0
GROUP BY e.ticker
),
ordinary AS
(
SELECT
ticker,
date,
abs(open_px / prior_close - 1) * 10000 AS abs_gap_bps
FROM prices
WHERE prior_close > 0
AND date >= '2021-01-01'
AND (ticker, date) NOT IN (SELECT ticker, ex_date FROM ex_days)
)
SELECT
o.ticker AS ticker,
round(max(d.dividend_bps), 1) AS dividend_bps,
round(quantileDeterministic(0.5)(o.abs_gap_bps, toUInt32(o.date)), 1) AS median_gap_bps,
round(100 * countIf(o.abs_gap_bps > d.dividend_bps) / count(), 1) AS sessions_over_dividend_pct
FROM ordinary AS o
INNER JOIN div_size AS d ON d.ticker = o.ticker
GROUP BY o.ticker
ORDER BY sessions_over_dividend_pct DESCHD的普通隔夜波动中位数为40.5个基点,而季度股息相当于60.7。在33.2的普通交易日中,仅隔夜波动就超过了整笔股息。在图表另一端,VZ以这种方式超过其股息的交易日占3.2。单个除息日只是这一分布中的一个样本,股息影响叠加在其上。
为什么跌幅通常小于股息
有两种机制会使实际跌幅低于整笔股息。
第一种机制是税务。对需要纳税的持有人而言,一美元股息与一美元股价并不具有相同的税后价值。股息在收到的当年纳税,而未实现收益只有在出售时才纳税,适用税率也取决于届时的情况。如果边际持有人对一美元股息的估值为一减去股息税率,对一美元股价的估值为一减去资本利得税率,那么其无差异点就是股息乘以(1 - td) / (1 - tg)的跌幅。以下仅作示例,不代表现行税法。假设持有人对合格股息适用20%的税率,对长期资本利得适用15%的税率,那么该股息的估值为0.80 / 0.85,即每一美元约值94美分。这支持50美分股息对应约47美分跌幅的结果。如果同一持有人的税率变为37%和20%,该比例则为0.63 / 0.80,约为79美分,也就是同一笔股息对应约39美分的跌幅。适用何种税率取决于持有期和账户类型,合格股息持有期说明了相关判定标准。税率会随时间变化,但计算关系不会改变。
第二种机制是最小报价单位。价格以整美分交易,而0.235美元的股息无法在开盘成交价中得到精确表达。
可以在前一天买入以领取股息吗?
直接计算即可。假设股票在除息日前一日下午收于50.00美元,并附带0.50美元股息。在该收盘价买入100股,您持有的股票价值为5,000美元。次日早晨,调整后的参考收盘价为49.50美元,100股股票的标记价值约为4,950美元,同时您持有一笔将在数周后支付日结算的50美元应收股息。税前来看,除息日两侧的总价值都是5,000美元。您只是将50美元的股价转化为50美元现金,并在应税账户中产生了一项纳税事项。
除息日前一天买入,决定的是您何时取得这笔收入。某个早晨的开盘价最终高于还是低于调整后参考价,则是上方KO图表所显示的噪声。专门交易这一价差的策略有其名称,股息捕获策略介绍了实施成本。关于卖出一侧的交易机制,在除息日卖出直接回答了这一问题。
这些图表如何制作
我们选取了具有连续季度派息记录的大型美国股息支付者。其中没有一家在2021年至2025年期间拆股,因此整个区间内的未调整开盘价和现金金额具有可比性。每个除息日前一交易日的收盘价,取自该股票自身日交易序列中的前一行,因此无需硬编码日历即可处理周末和节假日。股息记录按股票代码和除息日去重。比率图表将跌幅总额与股息总额进行比较,而不是对每个事件的比率取平均值,从而避免一笔小额派息过度影响结果。
常见问题
为什么股票价格会在除息日下跌?
在除息日,买方不再获得即将发放的股息。交易所会为参考和订单价格处理,将前一交易日收盘价按股息金额下调。这一下跌已写入日期本身的交易机制,并发生在任何交易开始之前。
股票总会准确下跌一笔股息吗?
不会。参考收盘价的调整幅度正好等于股息,而开盘成交价取决于集合竞价的成交结果。统计多个除息日后,跌幅通常低于整笔股息;在单个早晨,普通价格波动往往比股息本身更大。
什么是DNR订单?
DNR是Do Not Reduce(不下调)的缩写。它是一项附加在未成交限价买单或止损卖单上的指令,要求交易所在除息日保持订单价格不变,而不是按股息金额下调。
在除息日买入还能获得股息吗?
不能。在除息日或之后买入,下一笔股息仍归卖方所有。要获得该股息,必须在除息日开盘前持有股票,这正是除息日所标示的含义。
除息日下跌是否意味着我亏了钱?
税前来看,价值只是从股价转移到了现金。持有股票度过除息日的投资者会看到持仓标记价值下调,同时出现一笔应收股息。税务和支付日的时间差,才会使两者在实际结果中有所不同。
本文的每个图表都附有完整的SQL查询。您可以查看哪些交易日被计入,哪些被跳过。如果您想对已持有的股息支付者进行相同比较,可以用自然语言在Strasmore终端中提出问题。