1. 课程导入
在量化研究与策略回测中,最危险的问题往往不是模型不够复杂,而是研究者在不知不觉中使用了“未来信息”。当回测曲线异常漂亮、实盘却迅速失效时,背后常见的元凶之一就是幸存者偏差与前视偏差。本课程的第一章不急于写代码,而是先建立一套正确的认知框架:我们到底要解决什么问题、需要掌握哪些概念、后续三十章如何层层推进。
一、学习目标:从“会回测”到“回测可信”
本课程的目标不是教你调用某个回测框架的API,而是让你具备识别和消除回测偏差的能力。完成学习后,你应当能够:
- 识别偏差:判断一个回测结果是否受到幸存者偏差、前视偏差、数据窥探或样本外失效的影响。
- 理解Point-in-Time(PIT):掌握“在历史某一时点,投资者真实可获得的信息集合”这一核心思想。
- 构建PIT数据:能够为价格、财务、成分股、指数权重等数据设计as-of对齐逻辑。
- 落地回测:使用事件驱动或向量化框架,按时间顺序逐日推进,避免未来函数。
- 复盘与验证:通过样本外测试、滚动窗口、敏感性分析评估策略稳健性。
核心判断标准:一个可信的回测,必须能够在每一个历史交易日回答——“如果我就站在那一天,我能否合法地拿到这些数据,并做出这个决策?”如果答案是否定的,回测就存在偏差。
二、核心概念:幸存者偏差与Point-in-Time
幸存者偏差(Survivorship Bias)指研究样本只包含“活到今天”的标的,而忽略了历史上退市、被并购、破产或剔除出指数的公司。例如,若你今天用当前沪深300成分股回溯过去十年,就会天然剔除那些曾经入选但后来衰落的企业,导致收益被高估、风险被低估。
Point-in-Time(PIT)则强调数据的时间戳必须与决策时点严格对齐。它包含三个层面:
- 价格PIT:只能使用当日收盘后已知的价格,不能用未来价格计算信号。
- 财务PIT:财报数据必须按“实际披露日”而非“报告期”对齐,避免用未公布业绩交易。
- 成分股PIT:指数成分、行业分类、权重调整必须使用历史快照,而非当前名单。
两者关系可以概括为:幸存者偏差是“样本选择错误”,PIT是“时间对齐错误”。它们常常同时出现,共同制造出虚假的Alpha。
三、整体框架:三十章的学习路线
本课程按“认知—数据—回测—验证—进阶”五阶段展开,共30章。第一阶段建立偏差意识与PIT思想;第二阶段处理价格、财务、成分股等PIT数据;第三阶段实现事件驱动回测引擎;第四阶段进行样本外与滚动验证;第五阶段讨论多因子、机器学习与实盘衔接中的偏差问题。
| 阶段 | 章节范围 | 核心任务 | 关键产出 |
|---|---|---|---|
| 认知建立 | 第1–4章 | 理解偏差来源与PIT原则 | 偏差检查清单 |
| 数据处理 | 第5–12章 | 构建PIT价格、财务、成分股数据 | as-of数据管道 |
| 回测实现 | 第13–20章 | 事件驱动回测与订单模拟 | 可复现回测引擎 |
| 验证评估 | 第21–26章 | 样本外、滚动窗口、敏感性分析 | 稳健性报告 |
| 进阶实战 | 第27–30章 | 多因子、机器学习与实盘衔接 | 完整策略案例 |
四、典型场景:一个被幸存者偏差“美化”的回测
假设你构建了一个“低估值+高ROE”选股策略,使用当前A股全部上市公司作为股票池,回测2015–2024年。结果显示年化收益28%,最大回撤仅15%。但当你把股票池换成“2015年当时真实存在的全部上市公司”,并加入退市股票后,年化收益降至11%,最大回撤扩大到32%。差异来自哪里?
- 当前股票池自动剔除了2015年后退市、ST、被并购的公司;
- 财务数据使用了最新财报,而非当时披露的版本;
- 指数成分股使用了当前名单,而非历史快照。
警示:任何使用“当前股票池+历史价格”的回测,都默认引入了幸存者偏差。修正它需要历史成分股快照与退市股票数据,这通常比写策略本身更耗时,但决定了回测是否可信。
五、方法流程:PIT回测的五个步骤
后续章节会反复使用以下流程,这里先建立整体印象:
步骤1:确定决策时点 t
步骤2:从PIT数据库中提取 t 时刻可获得的数据
步骤3:基于该数据生成信号与订单
步骤4:按 t+1 或指定延迟执行成交
步骤5:记录持仓与净值,推进到 t+1 并重复
关键纪律是:信号生成只能使用 t 时刻及之前的数据,成交只能发生在 t 之后。任何“用当天收盘价计算信号、又用当天收盘价成交”的做法,都属于前视偏差。
六、常见误区与复盘清单
初学者最容易踩的坑包括:用当前指数成分回测历史、用财报报告期代替披露日、用复权价格却忽略分红再投资时点、在向量化回测中一次性计算全期信号。以下清单可用于每次回测后的自查:
- 股票池是否使用了历史快照?退市股票是否保留?
- 财务数据是否按实际披露日对齐?是否处理了财报修正?
- 价格数据是否区分了收盘可得与盘中可得?
- 信号与成交之间是否存在合理延迟?
- 是否存在用全样本统计量(如均值、标准差)做标准化的行为?
- 样本外测试是否真正独立于参数选择过程?
学习建议:从第2章开始,每学一个数据处理技巧,就回到本清单勾选一项。三十章结束后,这份清单将成为你评审任何回测报告的实用工具。