前复权与后复权的隐藏陷阱:为什么动态前复权会让长周期回测产生未来函数?

作者:速铺宝工程团队 发布时间:2026-10-18 类别:量化投研方法论 · 复权口径工程
核心摘要速览:
用最新一日往前推算的前复权价格做10年回测,不仅会让多年前的股价变成负数或几毛钱导致价格过滤失真,更会在分红率高的标的上引入隐性未来信息。

一、为什么前复权(QFQ)在跨年回测中会污染历史价格阈值?

前复权公式为 `当日收盘价 × 当日复权因子 / 最新复权因子`。由于分母使用了回测结束日(甚至今天)的累计分红送转因子,意味着你在2018年看到的‘前复权价格’已经隐含了该股在2019-2025年是否持续高分红或高送转的未来结果。若策略包含‘剔除5元以下低价股’,前复权会把历史高分红牛股错误剔除或纳入。

二、不复权数据的除权日假暴跌事故

反之,若直接用不复权日线计算动量或均线,在10转10除权日当天股价名义腰斩50%,技术指标会瞬间触发虚假暴跌止损信号,导致回测净值出现荒谬断层。

三、工业级双轨价格回测标准:信号用当时前复权、撮合用真实价+复权因子

def compute_pit_return(close_t, close_t1, adj_t, adj_t1): """ 使用相邻交易日复权因子计算真实分红再投收益率,完全不依赖未来最新复权因子 """ if close_t <= 0 or adj_t <= 0: return 0.0 true_ret = (close_t1 * adj_t1) / (close_t * adj_t) - 1.0 return round(float(true_ret), 6)

四、数据入库与校验清单

1. 价格类过滤条件(如股价>3元、成交额>5000万)一律使用交易日当日真实未复权价格与真实成交额;2. 均线与技术指标计算一律基于固定历史起点或当日PIT复权因子序列;3. 每日盘前9:20同步核验最新 adj_factor 入库完整性。

怀疑你的策略存在回测过拟合或未来函数?

速铺宝投研工程团队提供专业级量化策略诊断服务:样本内外盲测、未来函数穿透排查与冲击成本深度重算,让策略在实盘中真正盈利。

申请策略深度诊断报告