开发指南

股票回测为什么必须处理复权?拆股和分红会制造“假收益”

拆股、反向拆股和现金分红会改变历史价格或持仓数量。量化回测如果混用未复权价格和复权收益,很容易制造不存在的暴涨暴跌。

核心解答

股票历史价格看起来是一条连续曲线,但真实市场中还会发生拆股、反向拆股、现金分红和股票分红等Corporate Actions。量化回测如果忽略这些事件,技术指标、止损和收益率都可能被污染。

拆股不是公司突然暴跌

假设一家公司进行2比1拆股。

投资者原来100股、每股100元,拆股后可能变成200股、每股约50元。持股比例和对应的整体权益并不会因为拆股动作本身减少一半。

如果回测直接读取未调整历史价格,就可能把100到50错误识别成一天暴跌50%。

反向拆股同样会制造假突破

反向拆股会减少股票数量,同时提高每股价格。

如果策略使用涨跌幅、均线突破、ATR或者历史高低点,却没有统一处理Corporate Actions,价格序列里的机械跳变可能被误认为真实行情。

结果就是策略可能在一个根本不存在的“突破信号”上开仓。

现金分红也会改变价格解释

股票进入除息阶段后,价格可能因为现金分红产生调整。

如果回测只看裸价格变化,却没有考虑投资者获得的现金分红,策略的总收益可能被低估;如果数据供应商已经提供复权价格,你又另外再加一次分红,则可能重复计算。

所以首先要知道自己的数据到底是什么口径。

复权价格和真实成交价不能混着用

复权价格很适合研究连续收益和长期技术指标,但它不是当时市场真实显示的成交价格。

例如历史止损、限价单、滑点模拟和真实成交金额,往往需要原始价格;连续收益、因子研究或长期曲线则可能更适合使用调整后数据。

关键不是“全部复权”或“全部不复权”,而是不同模块保持同一套逻辑。

股票数量也要跟着Corporate Action变化

如果回测维护真实持仓股数,就不能只修改价格。

拆股、反向拆股、股票分红等事件还可能改变持股数量。否则账户市值、佣金、仓位规模和后续卖出数量都会错。

先审计数据供应商

不同数据源可能提供Close、Adjusted Close、拆股因子、分红记录或已经处理好的连续序列。

拿到一套新数据时,建议随机抽查几只发生过拆股和大额分红的股票,对照官方Corporate Action日期,看回测引擎是否出现异常收益。

资料依据

美国Investor.gov《Stock Split》说明拆股改变股票数量和每股价格,但不会因为拆股本身改变持有人的比例权益。

Investor.gov关于Ex-Dividend Dates的资料说明除息日期决定分红权利,大额分红还可能影响股价表现。

FINRA关于Corporate Actions的投资者资料列出了拆股、分红、并购、代码变更等常见公司行动。

风险提示

本文讨论股票历史数据与回测工程,不构成证券投资建议。不同市场、证券和数据供应商的复权定义可能不同,应以对应市场规则和数据说明为准。

结论

股票量化不只是下载一份K线就开始跑策略。先把拆股、分红和其他Corporate Actions处理正确,才有资格讨论胜率、收益率和策略稳定性。

RELATED GUIDES

继续了解这个主题

项目咨询

淄博卓亚网络科技服务有限公司
电话:15269365953
地址:山东省淄博市张店区体育场街道办事处华光路2号泽泉消防市场三楼S18