1. 量化回测基础
1.1 回测的定义
回测(Backtesting) 是指利用历史市场数据,按照预设的交易规则和资金管理方案,模拟执行一个量化策略的完整交易过程,并统计其绩效指标的过程。它是量化策略开发中唯一能够低成本、高效率验证策略有效性的手段。
核心公式: 回测 = 历史数据 × 交易规则 × 模拟执行 → 绩效统计
回测的本质是一个离散事件模拟系统:系统按时间顺序逐笔(或逐K线)读取历史行情,当策略逻辑触发买入/卖出信号时,记录模拟成交,并更新持仓与资金状态。最终输出收益率、夏普比率、最大回撤、胜率等关键指标。
1.2 回测在量化策略开发中的核心地位
在量化策略的完整生命周期中,回测处于承上启下的枢纽位置。没有回测,策略开发就失去了客观评价的标尺。下图展示了回测在策略开发流程中的核心位置:
回测在策略开发中的核心价值体现在以下三个层面:
| 层面 | 具体作用 | 典型问题 |
|---|---|---|
| 验证层 | 检验策略逻辑在历史行情中是否产生预期收益 | 策略是否具有正期望收益? |
| 诊断层 | 暴露策略的风险特征(最大回撤、波动率、尾部风险) | 策略在极端行情下是否扛得住? |
| 优化层 | 为参数调优、因子筛选、组合构建提供量化依据 | 参数是否过拟合?因子是否有效? |
⚠️ 常见误区: 许多初学者将回测等同于“策略有效性的最终证明”。实际上,回测只是必要条件而非充分条件——一个在回测中表现优异的策略,在实盘中可能因过拟合、幸存者偏差、交易成本估计不足等原因而表现不佳。
1.3 回测与实盘的区别
理解回测与实盘的差异,是避免“回测曲线美如画,实盘账户惨如狗”的关键。以下从六个维度进行系统对比:
| 对比维度 | 回测环境 | 实盘环境 | 差异影响 |
|---|---|---|---|
| 数据质量 | 历史数据,可能存在幸存者偏差、前视偏差、数据缺失 | 实时行情,存在数据延迟、断流、异常跳动 | 回测高估策略稳定性 |
| 交易成本 | 通常按固定费率或滑点模型估算 | 实际佣金、印花税、冲击成本、过夜利息 | 回测低估交易成本 |
| 成交假设 | 理想成交:按收盘价/开盘价/限价全部成交 | 部分成交、滑点、拒单、流动性不足 | 回测高估成交率和收益 |
| 资金管理 | 静态资金模型,忽略资金规模对市场的影响 | 动态资金管理,大资金面临市场冲击 | 回测低估大资金执行难度 |
| 心理因素 | 无情绪干扰,完全机械执行 | 恐惧、贪婪、犹豫、纪律松懈 | 实盘执行偏差 |
| 过拟合风险 | 可反复调整参数直至曲线完美 | 参数固定后无法临时修改 | 回测高估策略泛化能力 |
下图直观展示了回测与实盘在关键环节上的差异:
💡 实战建议: 在回测阶段,应主动引入“实盘压力测试”——例如在回测中加入随机滑点模型、部分成交概率、以及资金冲击成本估算,使回测结果更贴近实盘表现。通常建议在回测绩效上预留 20%~30% 的安全边际,以覆盖回测与实盘之间的系统性偏差。
1.4 回测的核心假设与局限性
任何回测都建立在若干核心假设之上。理解这些假设,是正确解读回测结果的前提:
- 历史会重演假设: 过去的价格行为模式在未来仍会以某种形式出现。这是所有量化策略的哲学基础,但市场结构可能发生根本性变化(如2020年原油期货负价格事件)。
- 无市场冲击假设: 回测中的交易不会影响市场价格。对于小资金策略这一假设近似成立,但对于大资金或低流动性品种,这一假设严重偏离现实。
- 完全执行假设: 所有信号都能以预设价格成交。实盘中因流动性、网络延迟、交易所规则等原因,部分成交或无法成交是常态。
- 静态环境假设: 交易规则、市场微观结构、监管政策在回测期间保持不变。实盘中这些因素可能随时变化。
⚠️ 回测的三大“隐形杀手”:
1. 前视偏差(Look-Ahead Bias): 在回测中使用了未来数据(如用当日收盘价计算当日开盘信号)。
2. 幸存者偏差(Survivorship Bias): 回测数据只包含当前仍在交易的标的,忽略了已退市或破产的标的。
3. 过拟合(Overfitting): 过度优化参数以拟合历史数据,导致策略在样本外数据上失效。
1. 前视偏差(Look-Ahead Bias): 在回测中使用了未来数据(如用当日收盘价计算当日开盘信号)。
2. 幸存者偏差(Survivorship Bias): 回测数据只包含当前仍在交易的标的,忽略了已退市或破产的标的。
3. 过拟合(Overfitting): 过度优化参数以拟合历史数据,导致策略在样本外数据上失效。