回测前到底需要多少历史数据?
常见误区:「越多越好」。事实是不同策略对历史深度的诉求差几个数量级 — 高频策略 1 年远胜 10 年,长周期价值策略 20 年才有统计意义。按策略类型选数据,不要 dump 全部然后慢慢挑。
按策略类型推荐区间
| 策略类型 | 频率 | 推荐区间 | 理由 | |---|---|---|---| | 趋势跟踪 / 突破 | 日线 | 10~15 年 | 至少覆盖 1-2 个完整牛熊周期 | | 均值回归(配对 / 套利) | 日线 | 5~10 年 | 协整关系稳定性测试 | | 多因子选股 | 日线 + 财报 | 8~12 年 | 跨多个景气周期验证因子有效性 | | 行业轮动 | 日线 | 10~15 年 | 不同宏观环境下的板块表现 | | 日内回归 | 分钟线 | 2~3 年 | 微观结构变化快,过老的数据反而误导 | | 高频做市 / 撮合 | tick | 6 个月~1 年 | 市场微观结构 + 撮合规则变化频繁 | | 事件驱动(财报 / 公告) | 事件 + 日线 | 5~10 年 | 历史事件样本 |
为什么不是「越多越好」
-
市场结构变化:A 股 2014 年沪港通、2019 年科创板、2020 年注册制,微观结构反复重塑。10 年前的撮合数据已经不能反映现在。
-
样本偏差:历史包含已经退市 / 重组的股票。如果你的回测只用「现在还活着」的股票,会偷偷引入幸存者偏差,跑出虚高收益。反过来:历史太长,生存者偏差校正难度上升。
-
算力成本:tick 数据 10 年 ≈ 30 TB。本地机器跑不动,云算力贵。
-
过拟合风险:历史越长,样本内策略调参越容易跑得漂亮,样本外失败概率越高。
实操建议
第一性思考:你的策略「胜率统计意义」需要多少独立事件?
- 趋势策略:1 年 ~50 笔交易,要 200 笔以上才有 t-stat — 算下来约 5 年。但要覆盖牛熊,实际需要 10 年。
- 日内策略:1 年 200 个交易日 × 5 笔/天 = 1000 笔。1-2 年够。
- 高频:1 天几百笔,几个月够。
本地存储成本
- 日线全 A:1 年 ≈ 100 MB。10 年 1 GB,不是问题。
- 分钟线全 A 1m:1 年 ≈ 30 GB。3 年 100 GB,SSD 一个盘装得下。
- tick 全 A:1 年 ≈ 5 TB。慎重,通常只在样本品种上下。
查 RTD 怎么管理增量更新 → · Tushare 积分要多少 →