1. 量化回测基础

1.1 回测的定义

回测(Backtesting) 是指利用历史市场数据,按照预设的交易规则和资金管理方案,模拟执行一个量化策略的完整交易过程,并统计其绩效指标的过程。它是量化策略开发中唯一能够低成本、高效率验证策略有效性的手段。

核心公式: 回测 = 历史数据 × 交易规则 × 模拟执行 → 绩效统计

回测的本质是一个离散事件模拟系统:系统按时间顺序逐笔(或逐K线)读取历史行情,当策略逻辑触发买入/卖出信号时,记录模拟成交,并更新持仓与资金状态。最终输出收益率、夏普比率、最大回撤、胜率等关键指标。

1.2 回测在量化策略开发中的核心地位

在量化策略的完整生命周期中,回测处于承上启下的枢纽位置。没有回测,策略开发就失去了客观评价的标尺。下图展示了回测在策略开发流程中的核心位置:

量化策略开发流程 - 回测核心地位 量化策略开发流程:回测的核心地位 策略构思 数据准备 回测验证 绩效分析 优化迭代 实盘部署 💡 回测的核心地位说明: • 回测是连接“策略构思”与“实盘部署”的唯一验证环节。 • 回测结果驱动“优化迭代”,而优化后的策略必须再次回测,形成闭环。

回测在策略开发中的核心价值体现在以下三个层面:

层面 具体作用 典型问题
验证层 检验策略逻辑在历史行情中是否产生预期收益 策略是否具有正期望收益?
诊断层 暴露策略的风险特征(最大回撤、波动率、尾部风险) 策略在极端行情下是否扛得住?
优化层 为参数调优、因子筛选、组合构建提供量化依据 参数是否过拟合?因子是否有效?
⚠️ 常见误区: 许多初学者将回测等同于“策略有效性的最终证明”。实际上,回测只是必要条件而非充分条件——一个在回测中表现优异的策略,在实盘中可能因过拟合、幸存者偏差、交易成本估计不足等原因而表现不佳。

1.3 回测与实盘的区别

理解回测与实盘的差异,是避免“回测曲线美如画,实盘账户惨如狗”的关键。以下从六个维度进行系统对比:

对比维度 回测环境 实盘环境 差异影响
数据质量 历史数据,可能存在幸存者偏差、前视偏差、数据缺失 实时行情,存在数据延迟、断流、异常跳动 回测高估策略稳定性
交易成本 通常按固定费率或滑点模型估算 实际佣金、印花税、冲击成本、过夜利息 回测低估交易成本
成交假设 理想成交:按收盘价/开盘价/限价全部成交 部分成交、滑点、拒单、流动性不足 回测高估成交率和收益
资金管理 静态资金模型,忽略资金规模对市场的影响 动态资金管理,大资金面临市场冲击 回测低估大资金执行难度
心理因素 无情绪干扰,完全机械执行 恐惧、贪婪、犹豫、纪律松懈 实盘执行偏差
过拟合风险 可反复调整参数直至曲线完美 参数固定后无法临时修改 回测高估策略泛化能力

下图直观展示了回测与实盘在关键环节上的差异:

回测 vs 实盘 关键差异对比 回测 vs 实盘:关键差异对比 回测环境 ✅ 历史数据,无延迟 ✅ 理想成交,无滑点 ✅ 固定费率,成本可控 ✅ 无限次参数调优 ✅ 无情绪干扰 ✅ 无资金冲击 差异 实盘环境 ❌ 实时数据,存在延迟/断流 ❌ 部分成交,滑点显著 ❌ 实际成本更高,冲击成本 ❌ 参数固定,无法临时修改 ❌ 恐惧/贪婪干扰执行 ❌ 大资金冲击市场 💡 核心结论:回测是“理想实验室”,实盘是“真实战场”,两者之间的差距需要通过严谨的回测设计来弥合。
💡 实战建议: 在回测阶段,应主动引入“实盘压力测试”——例如在回测中加入随机滑点模型、部分成交概率、以及资金冲击成本估算,使回测结果更贴近实盘表现。通常建议在回测绩效上预留 20%~30% 的安全边际,以覆盖回测与实盘之间的系统性偏差。

1.4 回测的核心假设与局限性

任何回测都建立在若干核心假设之上。理解这些假设,是正确解读回测结果的前提:

  • 历史会重演假设: 过去的价格行为模式在未来仍会以某种形式出现。这是所有量化策略的哲学基础,但市场结构可能发生根本性变化(如2020年原油期货负价格事件)。
  • 无市场冲击假设: 回测中的交易不会影响市场价格。对于小资金策略这一假设近似成立,但对于大资金或低流动性品种,这一假设严重偏离现实。
  • 完全执行假设: 所有信号都能以预设价格成交。实盘中因流动性、网络延迟、交易所规则等原因,部分成交或无法成交是常态。
  • 静态环境假设: 交易规则、市场微观结构、监管政策在回测期间保持不变。实盘中这些因素可能随时变化。
⚠️ 回测的三大“隐形杀手”:
1. 前视偏差(Look-Ahead Bias): 在回测中使用了未来数据(如用当日收盘价计算当日开盘信号)。
2. 幸存者偏差(Survivorship Bias): 回测数据只包含当前仍在交易的标的,忽略了已退市或破产的标的。
3. 过拟合(Overfitting): 过度优化参数以拟合历史数据,导致策略在样本外数据上失效。