ARTICLE · 1033842
分红送股之后,你算的收益和软件显示的不一样:两条曲线打架,该先怀疑数据,还是怀疑策略?
对不上,肯定是自己算错了
你没算错
是尺子没对齐
除权除息 · 前后复权 · 回测陷阱 · 收益核算
磐远数智 丨 数据口径
📦 7 Parts + Conclusion
👉 滑动
PART 01
是切不是跌
除权除息
PART 02
两条基准线
前后复权
PART 03
未来函数
回测陷阱
PART 04
不是成绩单
三道扣减
PART 05
四道手
传导链条
PART 06
先查哪边
排查顺序
PART 07
三句话
读者分层
PART ///
写在最后
结论边界
读之前先记住这一句
两条曲线打架时,更常见的原因在口径,不在策略
分红送股那一天,股价被交易所技术性调低了,你的账户一分钱没亏。
但你如果拿这一天前后的价格直接算收益,算出来的数会和软件显示的对不上。而且两边都没算错。
读完这一篇,你会拿到一套排查顺序。两条曲线打架时先查哪一边、什么条件下该怀疑数据源,而不是怀疑策略。
01
PART
分红那天跌的那一下,是切,不是跌
EX-RIGHT · 机制与公式
除权除息,指的是上市公司派发现金红利、送股或者转增股本的那一天。
这一天,交易所会把这只股票的参考价调低。
为什么要调低?因为分红送股不是凭空生钱。
举个例子,以下是假设数据。某只股票前收盘 10 元,每股派现 1 元。
公司账上少了这笔现金,股票本身也就不值 10 元了。
所以交易所会把参考价减掉这一块钱,变成 9 元。
交易所给的公式分两步。
第一步,从前收盘价格里减掉每股现金红利,再加上配股价格乘以股份变动比例。
第二步,把结果除以「1 加上股份变动比例」。
课堂链接|除权(息)参考价的原文算法
除权(息)参考价格 =[(前收盘价格 − 现金红利)+ 配股价格 × 流通股份变动比例]÷(1 + 流通股份变动比例)
这就是《上海证券交易所交易规则》(2023 年修订)第 4.3.2 条给出的算法。
深圳证券交易所的交易规则里,对除权除息参考价的计算也有明确规定。
代进上面的例子。只派现、不送股,股份变动比例为 0,参考价就是 10 减 1,等于 9 元。
如果每 10 股再送 10 股,股份变动比例为 1,9 元还要再除以 2。
这就像从左口袋掏出一百块,放进右口袋。左口袋轻了,你的总资产没变。
所以分红日那个向下的缺口,是参考价被技术性调整的结果,不是有人在这天集中卖出。
这个判断可以被反驳。如果某只股票当日的实际跌幅,明显超过按公式算出的调整幅度,那缺口里就有真实的抛压成分。
02
PART
两个基准点,两条不一样的曲线
BASELINE · 两种接法
既然断裂前后的价格不在同一个参照上,跨期比价就得把断裂接上。
接法只有两种,关键只有一个:那个不动的基准点,钉在哪一头?
前复权把基准点钉在最新价格上,历史价格统统往前折算。
后复权反过来,把基准点钉在最早价格上,后面的价格往上推。
这就好比记账。一种做法是每有新收支,就把整本历史账重抄一遍。另一种是把历史那几页锁死,新账往后接着记。
钉在哪一头,决定了你看到什么。
前复权的好处,是最新价和盘面能对上。代价是每发生一次新的除权除息,整条历史序列都要重算一遍。
这意味着,你半年前存下来的那份前复权数据,和今天重新下载的一份,历史那一段未必还是同一个数。
后复权正相反。历史价格定死不动,序列稳定、可复现。代价是最新价和盘面差得远。
用哪一条,看你要什么
算长期持有收益,该用后复权;看当下的形态,才用前复权
反过来用,你会把后来才发生的分红,塞进前面那段价格里。早年那一段收益被系统性抬高。
03
PART
前复权为什么会提前知道后来
LOOKAHEAD · 未来函数
回测,就是拿过去的行情,把一套买卖规则从头走一遍,看它历史上会是什么结果。
前复权的问题,恰好在这个场景里从「看着别扭」变成硬伤。为什么?
未来函数,指的是在模拟历史决策时,用到了当时根本不可能知道的信息。
前复权的历史价格里,含着当时还没发生的除权除息信息。把前复权序列直接丢进回测,它就可能构成未来函数。
用含未来函数的数据去验证策略,结论会系统性偏乐观。
这个判断同样可以被证伪。如果你把同一套规则换到后复权序列上重跑,结果没有系统性变差。那说明,未来函数在这套策略里没有实际影响。
课堂链接|回测里的信号价与成交价,为什么经常不是同一个价?
回测要指定两个价格:信号在哪个价上生成,成交在哪个价上撮合。
常见的一种设定是「收盘后算信号、按下一交易日开盘价成交」。两者只要错开一格,同一套规则的收益就会变。
04
PART
复权曲线不是你的成绩单
BOUNDARY · 三道扣减
但复权有一条边界必须划清楚:复权价格不等于你实际到手的收益。
第一,分红要缴税,而且税负跟持股期限直接挂钩。
持股 1 个月以内(含 1 个月),股息红利所得全额计入应纳税所得额。
持股 1 个月以上至 1 年(含 1 年),暂减按 50% 计入应纳税所得额。
持股超过 1 年,暂免征收个人所得税。三档统一适用 20% 的税率。
换算成实际税负,就是 20%、10% 和 0 这三档。
1 个月以内
全额计税 · 实际 20%
1 个月至 1 年
减按 50% · 实际 10%
超过 1 年
暂免征收 · 实际 0
依据是《关于上市公司股息红利差别化个人所得税政策有关问题的通知》。
这份文件由财政部、国家税务总局、证监会联合发布,文号为 财税〔2015〕101号。
施行时间是 2015-09-08。
第二,交易有成本。佣金、过户费、印花税,都不在复权公式里。
第三,现金分红再投资的时点和价格,公式默认忽略。
所以复权曲线只能用来比形态、比口径,不能当成你账户里那笔钱的成绩单。
证伪条件。如果存在一只长期不分红、不送转的股票,它的复权序列和你账户收益仍然对不上。那说明差异另有来源,上面三项不构成完整解释。
课堂链接|股息红利的税,是什么时候扣的?
持股 1 年以内(含 1 年)的部分,上市公司派息时暂不扣缴个税。
等你转让股票时,由中国结算按实际持股期限计算应纳税额,再由托管券商从资金账户扣收。
持股期限按「先进先出」原则计算,即账户中先取得的股票视为先转让(财税〔2012〕85号)。
还有一种口径认为复权也不够。
交易所层面还有全收益口径的指数。例如上证收益指数,它的编制方法是把现金分红在除息日再投资计入。
这个指数在上海证券交易所网站「主要指数」栏目持续列示,2026-09-18 查阅。
按这个口径,前复权和后复权都不足以承载「持有收益」。只有把红利再投资算进去的序列才算数。
两种口径真正对不上的地方只有一处:复权序列该为「可比的价格」服务,还是为「可比的收益」服务。
这套判断也有失效信号。如果两边用的是同一种复权方式、同一本交易日历、同一份分红送转事件表,差异就确实出在策略实现上。
那种情况下,继续查口径没有意义。
05
PART
从分红到你的收益,中间走了四道手
CHAIN · 四道手
这条链上到底有哪几道手?
分红送股
派现与送转
交易所
调低参考价
复权序列
写回历史
你的收益
首尾两价
四道手,每一道都是标准动作 · 链条本身不产生差异,口径才产生差异
第一道,上市公司派现送转。这一步要么真的付出去一笔现金,要么增加一批股本。
第二道,交易所按《交易规则》下调参考价,让除权日开盘那一刻的价格可比。
第三道,行情软件按某一种复权方式,把这次调整写回历史序列。
第四道,你从这条序列里取出首尾两个价格,算出收益率。
四道手,每一道都是标准动作。所以两条曲线对不上,更常见的原因是两边选了不同的标准。
另外有两笔钱是在这条链外面发生的。股息税在分红到账环节产生,交易成本在买卖成交环节产生,两者都不进入复权序列。
06
PART
两条曲线对不上,你先查哪一边
DEBUG · 排查顺序
回到最开始那个问题:为什么你算的会和软件显示的不一样?
先别急着怀疑策略。差异的来源按出现频率排,常见的是这三类。
复权方式
两边设置不同
取数日期
序列会被重算
算法与事件表
口径各家不同
第一类,复权方式不同。一边前复权、一边后复权,长期收益必然对不上。自查动作:把两边的复权设置调成同一个,再比一次。
第二类,数据取数日不同。前复权序列会被每一次新的除权除息重算。昨天取的和今天取的,历史那一段未必是同一组数。自查动作:记下取数日期,两边不一样就先统一。
第三类,复权算法与事件表不同。有的软件只按比例做等比调整,有的把现金分红按除息日再投资折回去。配股、停牌、交易日历的处理也各家不同。自查动作:核对两边用的是不是同一份分红送转事件表。
排查顺序不能反。先看数据源可不可信,再看复权口径,再看交易日历与取数日,最后才动策略参数。
先看数据源可不可信
再看复权口径
再看交易日历与取数日
最后才动策略参数
理由很直接:口径没对齐之前,任何自洽的结论都不成立。
反过来也有一个边界。如果两边口径一样、数据源也一样,收益仍然对不上,那问题就在策略实现,不在这条顺序里。
明天你能做的一件具体事:建一张三行的数据记录卡。
第一行写复权方式,第二行写交易日历来源,第三行写取数日期。
以后每下一份数据,先把这三行填上,再跑回测。
07
PART
算收益的、写回测的、只看软件的你
AUDIENCE · 各拿走一句话
那这篇文章到底是写给谁的?按处境分,是三件事。
自己动手算收益的人:明天先做一件事,把复权方式、交易日历、取数日期写进你的数据表。
而不是先去调策略参数。
写回测的人:用前复权跑择时类策略之前,先问自己一句。
这段历史价格里,有没有当时还不存在的分红信息?
有,就换后复权重跑一遍再下结论。
只看软件曲线的人:你没有算错。软件那条曲线本身就是一个口径。它回答的是「形态变了没有」,不回答「你赚了多少」。想看你自己的收益,用你的交割单,不用复权序列。
///
LAST
写在最后
CONCLUSION · 结论 边界 指标
把前面七节的推导收成三句话。
结论
两条收益曲线对不上时,更常见的原因在口径,不在策略
因为前复权序列会随每一次新的除权除息重算。你半年前存的那份数据,今天本来就不是同一组数了。
边界:这个判断在两边口径与数据源一样时失效。那种情况下,差异确实出在策略实现上,继续查口径没有意义。
接下来盯三件事。
你用的复权方式(前 / 后 / 不复权),写下来固定住。
数据取数日期,每次下载都记。
两边交易日历是不是同一本。
三项对齐之后再谈策略。
本内容仅为个人观察与数据分享,不构成任何投资建议。数据来源于公开网络,投资有风险,入市需谨慎。
我是磐老师,致力于让零代码基础的人实现将个人的交易思想转化成可落地的个人量化系统。
既然看到这里了,如果觉得有用,随手点个赞、转发、推荐、评论吧。
THANKS FOR READING