核心问题
分红、送转、拆并股、配股等公司行为会改变股票的权益单位,使原始价格在除权日前后产生非交易性的机械跳变。复权的目的不是还原真实成交价,而是把不同时点的价格换算到同一权益口径。量化研究应区分三件事:交易所除权参考价、研究用复权序列、真实账户财富。
一、为什么需要复权?
1. 原始问题:价格变了,但财富未必变了
假设某股票昨日收盘价为 10 元,今日每股派现 1 元。除息参考价约为 9 元。如果直接计算:
就会把权益从“股票”转移到“现金”误认为市场亏损。送股、拆股也类似:股数增加、单股价格下降,但投资者总权益不会仅因单位换算而同比下降。
因此,直接拼接原始价格会污染:
- 跨日收益率与预测标签;
- 动量、均线、波动率、RSI 等价格类因子;
- 跨除权日的分钟序列;
- 依赖历史比例变化的统计模型。
一句话定位
复权因子是价格单位的换算器:它消除公司行为造成的非交易性断点,使跨期比例可比较。
2. 必须分开的三个层次
交易所除权除息
交易所根据公司行为重新定义除权日的参考昨收价。设:
符号 | 含义 |
除权前一交易日原始收盘价 | |
每股现金红利 | |
送转、拆股比例 | |
配股比例 | |
配股价格 | |
除权除息参考价,即除权日 PreClose |
在常见的简化口径下:
这个等式来自公司行为前后的理论总权益价值守恒:
即“原来 1 股的价值 + 配股投入 = 获得的现金红利 + 公司行为后的股票价值”。移项后便得到上述除权除息参考价公式。从投资收益的角度来说这背后更深的假设是“再投资”假设。
E 是涨跌幅计算的理论基准,不一定是真实可成交价格。
数据商复权
数据商从原始价 构造研究序列:
其中 为累计复权因子。前复权、后复权以及比例法、加减法都属于这一层的数据变换。
真实投资账户
真实账户使用原始成交价,并分别处理现金、股数、税费和配股选择:
复权价格不是实际成交价,也无法统一表示不同投资者在红利税、持股期限和配股选择上的真实财富路径。
二、复权因子本身是什么?
1. 从第一性原理推导单次调整因子
复权要求除权边界前后的价格使用同一权益口径。若除权前收盘价为 C,除权日参考价为 E,则后复权的单次倍率为:
前复权的反向倍率为:
若行情数据提供了可靠的
Close 与交易所口径 PreClose,可以直接从日行情反推:正常交易日有 ,故 ;只有发生公司行为或口径修订时才跳变。累计后复权因子为:
关键辨析
不能仅用相邻两天的 OHLC 跳空反推复权因子。低开、涨跌停、停牌后复牌都可能造成价格跳变;只有公司行为数据或交易所口径的
PreClose 才能区分市场跳空与权益单位变化。2. 为什么标准因子应当近似阶梯函数?
权益口径只在公司行为发生时改变。因此,在同一公司行为区间内:
标准累计复权因子应表现为“平台—跳变—平台”。如果一个所谓的复权因子几乎每天小幅漂移,通常说明它不是纯粹的公司行为累计因子,或其计算链存在问题。
常见原因包括:
- 错把 或市场涨跌纳入因子;
- 使用了未按除权口径修正的昨收价;
- 价格精度、四舍五入或早期历史数据回溯方式不同;
- 停复牌、缺失值、日期错位或重复累计;
- 混用了前复权、后复权、定点复权或动态归一化口径;
- 不同数据商对配股、特殊分红和早期公司行为采用了不同规则。
判断因子质量时,优先检查:
- 非公司行为日是否严格保持不变;
- 跳变日是否与公告和除权日一致;
- 是否满足 ;
- 跨除权日收益是否等于 ;
- 同一数据版本重复计算是否确定、可复现。
3. 前复权与后复权
前复权
以当前价格为基准,保持最新原始价格不变,向过去调整历史价格。优点是当前价直观;缺点是新增公司行为会改写全部历史复权价。
后复权
以早期价格为基准,保持起点不变,向未来累计调整。优点是历史序列稳定;缺点是最新复权价不是真实成交价。
在同一比例复权体系中,两者只差一个全局常数 :
因此任意两时点的收益率完全一致:
它们的绝对价格不同,但比例、收益率和大多数尺度不变的指标相同。不过,依赖绝对价位、固定金额阈值、最小价位单位或真实交易规则的计算不能直接使用复权价。
4. 比例法与加减法
比例法把除权前全部历史价格乘同一比例:
它保持历史收益率不变,因此适合收益率、动量、波动率和机器学习标签。
加减法把公司行为公式逐次作用到历史价格。令:
则:
两者之差为:
二者仅在 或 时相同。纯送转、拆股且无现金流时,二者通常一致;现金分红与配股资金是主要分歧来源。
为什么量化研究通常不用加减法
加减法会让未来发生的现金分红反过来改变更早时期已经发生的百分比收益,进而污染动量、波动率、RankIC 和预测标签。研究默认应采用比例法;若要模拟真实财富,直接进行账户记账比依赖加减复权价更清晰。
5. 比例复权的经济含义与边界
比例复权可以解释为:在除权瞬间,允许投资者按理论参考价 E 无摩擦地完成一次虚拟再平衡,使除权前后的资本使用同一比例口径。
这隐含:
- 可按
PreClose成交;
- 无手续费、印花税、滑点和冲击成本;
- 不受涨跌停与成交量约束;
- 忽略投资者差异化税负和配股选择。
由于
PreClose 只是理论参考价,这种解释适合研究,不等于可执行交易策略。三、精简案例与工程规范
案例 1:现金分红下的两种复权法
设原始价格序列为:
在第二日收盘后每股分红 10 元,因此 C=100、D=10、E=90。
比例前复权
复权序列为:
分红前的历史收益仍为:
加减前复权
复权序列为:
原本 的 100% 收益被改写为:
这说明比例法保护比例关系,加减法保护的是另一种现金流解释。
案例 2:跨日因子与日内因子
20 日动量:
跨越公司行为时必须使用比例复权价格,否则可能产生虚假跳变。
同一交易日的 90 秒收益:
由于当日 F_t 为常数:
因此纯日内收益、价差、订单失衡、MicroPrice 等可直接使用原始 Level-2 行情;跨交易日拼接时再统一复权口径。
案例 3:真实账户回测
持有 N=1000 股,每股现金分红 D=1,税率为 :
送股比例为 s:
若以配股价 K 参加比例为 r 的配股:
账户净值始终按原始价格计算:
最终工程规范
任务 | 推荐口径 | 原因 |
单日与多日研究收益率、预测标签 | 比例复权收益;也可直接用 Close_t/PreClose_t-1 后链乘 | 保持收益率结构 |
跨日价格类因子 | 比例前复权或后复权 | 消除除权息伪跳变 |
纯日内 Level-2 因子 | 原始行情 | 当日因子为常数,会在比例中约掉 |
订单、成交、滑点、手续费、涨跌停 | 原始价格 | 只有原始价格真实可成交 |
快速研究型回测 | 可用比例复权收益 | 便于快速评价 alpha,但含虚拟再平衡假设 |
实盘级账户回测 | 原始价 + 公司行为记账 | 正确处理现金、股数、税费和配股选择 |
数据库底层建议保留:
不要只保存一套复权价格。原始行情是不可替代的事实层;复权价格应当是由事实层和版本化公司行为数据可重复生成的派生层。
最终结论
跨日研究用比例复权,纯日内研究用原始行情,真实成交用原始价格,真实策略 PnL 用原始价格加公司行为记账。前复权与后复权只是比例序列的不同归一化基准;复权价格服务于比较,不代表历史真实成交价。
- 作者:务醒
- 链接:https://youngyyy.com/technology/3c0cf9ef-2dca-802b-91cd-ecc761c3a33c
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。





