阶段1数据基础●●●●●

幸存者偏差:消失的股票不会开口说话

我的掌握程度:
q-067精讲

先掌握这个答案

幸存者偏差=样本只包含「活到现在」的个体,死去的(退市股、清盘基金)被系统性遗漏。后果:回测股票池只含赢家→平均收益被高估(尤其小盘/垃圾股策略:退市的-90%样本消失了,留下的都是幸存妖股)。免费数据源默认给「当前上市列表」→历史回测天然有幸存者偏差。防御:用历史时点的成分/上市状态快照(PIT股票池);至少做敏感性对比(含/不含已退市股)。

先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。

从理解到使用

本阶段实战方法 · 把行情数字变成可比较的收益

看股票、基金或策略业绩时,先对齐本金、起止日期、现金流与费用。

  1. 选一个固定区间,记录期初价值、期末价值、分红、出入金和交易费用。
  2. 没有中途出入金时,用(期末价值+已取出分红-期初价值-费用)÷期初价值计算收益;有出入金时先区分时间加权与资金加权。
  3. 用相同区间的基准作比较,同时记录最大亏损;不要单凭一次盈利评价能力。

使用边界

  • 不同期限的收益不可直接排名;年化只是换算,不是未来收益承诺。
  • 模拟价格不是实时行情。普通股票交易手数、T+1和费用应按具体市场规则核对。
背景 · 从一个困惑说起
瓦尔德看穿:返航轰炸机的弹孔分布是「幸存者」的数据——引擎中弹的飞机没能回来。金融数据的默认形态同样是幸存者:今天拉一份「当前上市股票列表」,里面全是从过去活到今天的赢家。
由此产生的问题
幸存者偏差如何让回测收益虚高?免费数据的幸存者问题有多严重?怎么系统性防御?
核心概念
幸存者偏差=样本只包含「活到现在」的个体,死去的(退市股、清盘基金)被系统性遗漏。后果:回测股票池只含赢家→平均收益被高估(尤其小盘/垃圾股策略:退市的-90%样本消失了,留下的都是幸存妖股)。免费数据源默认给「当前上市列表」→历史回测天然有幸存者偏差。防御:用历史时点的成分/上市状态快照(PIT股票池);至少做敏感性对比(含/不含已退市股)。
为什么需要它
①规模惊人:A股退市股30年累计数百家,早年ST策略的「真实收益」比免费数据回测低一大截;②与制度变迁共振:注册制后退市加速,2019年后该偏差愈发严重;③认知升级:这不是技术细节,是「样本从哪来」的统计学根本问题——瓦尔德问题的金融版。
实际应用场景
正确股票池构建:t日的池=t日实际上市且非ST非停牌的股票集合(需要退市股历史数据+状态表);tushare的stock_basic含退市股(status字段);指数历史成分接口(index_weight_all)。
与之前知识的联系
q-045的退市知识在此上升为数据纪律。它与前视偏差(q-063)、成本乐观(q-056)并列回测三大自欺——阶段6的「回测可信度检查清单」三位主角到齐。
⚠ 常见误解
  • 退市股很少影响不大:A股30年退市几百家,且集中在小盘高波风格——正是量化策略偏好的区域
  • 用中证500等指数成分就免疫了:指数成分有调入调出,「今天的成分」回测历史仍是幸存者口径,需用历史成分
  • 加个退市股数据就完事:还要时点状态(当时是否ST/停牌)——PIT思想在股票池维度的应用

🤖 AI导师

导师会先检查你的前置知识(退市、ST),再用案例、公式和代码帮助理解。此功能需要先启用服务。