Qlib 量化选股面板

AI 驱动的 A 股量化策略回测系统

配置不完整
返回知识库
策略方法
2026-05-14
量化回测完全指南

回测的原理、常见陷阱和最佳实践

回测
策略验证

回测在验证什么?

回测(Backtesting)是用历史行情与规则,重放策略若在那时交易会怎样——得到净值曲线、收益夏普最大回撤IC 等统计量。它是研究阶段最主要的证据链,但不能代替实盘:成交、冲击成本、停牌、涨跌停等都可能让真实结果偏离仿真。

可把回测理解成三句话:

  1. 可重复:同一数据、同一规则,应得到同一结果(便于 debug 与对比实验)。
  2. 有边界:只覆盖已发生的历史;外推「未来也会这样」需要额外逻辑(样本外、滚动、压力情景)。
  3. 对表不对路:曲线好看不等于可交易,还要看换手、容量、规则是否与真实制度一致。

更完整的学习顺序见《学习目标与学习路径》;因子与特征层面见《因子投资入门》《Alpha 因子体系》。


典型流水线(与 Qlib / 本面板)

一条常见的 训练 + 评价 + 组合模拟 流水线大致为:

数据与标签 → 特征(如 Alpha158)→ 模型训练 → 预测分数
    → 信号分析(IC / Rank IC)→ 组合生成(如 TopK)→ 回测绩效
  • 信号层:关心预测与未来收益是否对齐(IC)。
  • 组合层:关心排序怎么变成持仓、换手与约束(如 TopK-Dropout)。
  • 绩效层:关心净值、风险指标与成本假设是否可信。

本面板侧重把这条链「拧在一块」:运行策略历史记录敏感性分析滚动回测 等 Tab 对应你在不同阶段要答的问题。


常见陷阱与对策

陷阱表现可操作的缓解
过拟合训练段极好,测试段崩塌;对参数极度敏感简化模型与特征、交叉验证、时间切分(绝不用未来训过去)、在 敏感性分析 里看指标是否「好得不自然」
前视偏差用到当时尚未发布或不可得的数据、或标签与特征时间对齐错误严格按「时点 t 只能看到 ≤t」构造特征;核对标签定义(如 Qlib 默认 label 与持有期)
幸存者偏差股票池只有「活下来的」,退市/长期停牌被抹掉使用包含退市样本的完备 universe,或用指数成分的历史快照做股票池
成本低估回测收益偏高、换手一上来实盘亏显式设佣金、滑点、最小价差;高换手策略对成本更敏感
看似可成交小市值、涨停无量仍按收盘价「成交」检查涨跌停、流动性、成交量过滤是否与假设一致

时间与样本切分(最重要习惯)

严谨研究几乎总是:训练 / 验证 / 测试时间轴上切开,且测试集只评一次、不回头调参。进阶做法包括:

  • 滚动 / 扩展窗口:每隔一段时期重训,用下一小段做样本外(与面板 滚动回测 叙事一致)。
  • 不同 regime:牛熊切换时策略失效很常见;单一时段亮眼可能只是风格运气好。

读结果时在问什么

  • 收益总收益年化 是否在同口径、同区间可比?
  • 风险最大回撤卡玛 是否匹配你能承受的路径?
  • 预测质量:IC 是否稳定,还是只靠少数日期「撞大运」?
  • 可实现性:换手、持股数、集中度与 仓位回撤控制 是否一致?

小结

回测是在历史里做受控实验:要把数据与规则的时点对齐、把偏差和成本摊在阳光下,再用时间切分与样本外检验防过拟合。它和因子研究、组合规则、风险管理 是一条绳上的不同阶段,不要孤立地看某一条净值曲线。

相关文章