开发指南

股票量化回测最隐蔽的坑:今天看到的股票池,过去并不存在

如果拿今天仍然上市的公司去回测十年前的策略,可能已经在无意中删除了历史里的失败公司,这就是幸存者偏差。

核心解答

股票量化中有一个非常隐蔽的问题。

你的代码没有报错。

交易逻辑也没有偷看未来价格。

回测结果甚至非常稳定。

但它仍然可能从数据源头就已经高估了策略。

这个问题叫幸存者偏差。

一、今天看到的公司,是已经活下来的公司

假设今天有1000家上市公司。

你拿这1000家公司去回测十年前的策略。

问题是:

十年前真实市场里并不只有今天这1000家公司。

还有一些公司已经:

退市;

破产;

被并购;

长期停牌;

被指数淘汰。

如果这些失败样本从历史数据中消失,相当于你提前知道了“哪些公司最终活到了今天”。

二、为什么它会让策略变漂亮

想象一个选股策略专门买基本面较弱、估值较低的公司。

真正历史中,其中一部分公司可能最终退市。

但如果数据集只留下今天仍然存活的公司,那些最差的结果就被自动删除了。

策略看起来会比当时真正能够实现的结果更好。

三、指数成分股也会产生同样的问题

例如研究历史指数策略。

如果直接使用今天的指数成分股回测过去十年,也可能出现偏差。

因为十年前指数里的成分公司与今天并不完全相同。

正确做法应该使用历史每个时点真实存在的成分列表。

四、点时数据非常重要

量化研究应尽量使用 point-in-time 数据。

也就是:

在历史某一天,只让策略看到当时真正可以获得的信息。

不能使用后来才修订的数据。

不能使用后来才公布的财务信息。

不能用今天的股票池倒推过去。

五、为什么这类错误最危险

因为它不会让程序崩溃。

相反,它通常会让结果更加漂亮。

而越漂亮的结果,人越容易相信它。

这也是为什么一个合格的量化系统,必须先做数据审计,再讨论策略收益。

结论

股票量化的第一步,不是寻找神奇指标。

而是确认:

历史股票池是不是历史真实股票池;

退市证券是否存在;

财务数据是什么时候公开的;

复权和公司行为是否正确;

交易成本是否真实。

如果这些基础不成立,后面再复杂的模型也可能建立在错误数据上。

RELATED GUIDES

继续了解这个主题

项目咨询

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