1. 量化回测基础

1.1 量化回测的定义

量化回测(Quantitative Backtesting)是指利用历史市场数据,在模拟环境中执行交易策略,以评估其表现、风险特征和统计显著性的过程。它是量化策略开发中不可或缺的验证环节,通过将策略逻辑应用于过去的数据,回答一个核心问题:“如果我在过去按照这套规则交易,结果会怎样?”

核心公式: 回测 = 策略逻辑 × 历史数据 × 模拟执行环境

一个完整的回测系统通常包含以下组件:

组件 说明 关键要素
数据层 历史行情数据(OHLCV、Tick、订单簿) 数据清洗、复权处理、生存偏差
策略层 信号生成逻辑与交易规则 入场/出场条件、仓位管理
执行层 模拟撮合与订单管理 滑点、手续费、流动性限制
评估层 绩效指标与风险度量 夏普比率、最大回撤、胜率
量化回测核心流程 量化回测核心流程 历史数据 OHLCV / Tick 策略逻辑 信号生成 模拟执行 撮合/滑点 绩效评估 夏普/回撤 迭代优化

1.2 回测在策略开发中的核心作用

回测是量化策略开发的基石,它贯穿从想法到实盘的整个生命周期。没有回测,策略开发就如同盲人摸象,无法客观评估策略的有效性。

行业共识: 一个成熟的量化策略,其开发时间分配中,回测与验证通常占据 60% 以上的精力,远高于策略构思(10%)和实盘部署(30%)。

回测在策略开发中的核心作用体现在以下四个维度:

  1. 验证策略有效性 — 检验策略逻辑在历史数据中是否具有统计显著的盈利能力,排除随机性带来的虚假信号。
  2. 参数优化与选择 — 通过遍历参数空间,寻找最优参数组合,避免过拟合与欠拟合。
  3. 风险暴露识别 — 量化最大回撤、波动率、尾部风险等指标,评估策略在不同市场环境下的稳健性。
  4. 比较基准建立 — 与基准策略(如买入持有、同类策略)进行对比,判断超额收益的来源。
开发阶段 回测角色 典型输出
策略构思 快速验证假设 初步收益曲线、信号分布
策略开发 参数调优与鲁棒性测试 参数热力图、敏感性分析
策略评估 绩效归因与风险度量 夏普比率、最大回撤、IC/IR
策略上线 样本外验证与压力测试 样本外表现、极端行情测试
回测在策略开发中的位置 回测在策略开发中的位置 策略构思 假设提出 量化回测 验证 · 优化 · 评估 样本外测试 稳健性检验 实盘部署 实时交易 迭代反馈

1.3 回测与实盘的区别

回测与实盘之间存在本质差异,理解这些差异是避免“回测是神,实盘是鬼”悲剧的关键。以下从多个维度进行对比:

维度 回测环境 实盘环境 差异影响
数据质量 历史数据,可能存在生存偏差、前视偏差 实时数据,存在延迟、缺失、异常值 回测高估收益,实盘表现打折
执行成本 固定滑点与手续费,忽略市场冲击 动态滑点、流动性成本、订单簿深度 回测低估交易成本
市场影响 假设交易不影响价格 大单交易会推动价格 回测忽略流动性风险
心理因素 无情绪干扰,完全理性执行 恐惧、贪婪、犹豫等人性弱点 实盘执行偏差
环境变化 固定市场结构(固定规则、固定参与者) 市场微观结构持续演变 历史规律可能失效
⚠️ 常见陷阱: 许多初学者在回测中获得亮眼收益后直接实盘,结果遭遇大幅亏损。核心原因在于回测中未充分考虑滑点、手续费、流动性限制以及策略过拟合。建议在回测与实盘之间加入至少 3-6 个月的样本外模拟交易或小资金实盘验证。

为了量化回测与实盘的差距,业界常用回测-实盘衰减系数来估算:

# 回测-实盘衰减系数估算示例
backtest_sharpe = 2.5   # 回测夏普比率
live_sharpe = 1.2       # 实盘夏普比率
decay_ratio = (backtest_sharpe - live_sharpe) / backtest_sharpe
print(f"衰减系数: {decay_ratio:.2%}")  # 输出: 衰减系数: 52.00%

降低回测与实盘差距的核心手段包括:

  • 保守化假设:在回测中主动增加滑点(如 2-3 个 tick)和手续费(上浮 20%-50%)。
  • 样本外验证:严格区分训练集、验证集和测试集,避免数据泄露。
  • 压力测试:使用极端行情数据(如 2015 年股灾、2020 年疫情崩盘)检验策略韧性。
  • 模拟交易桥接:在回测与实盘之间设置模拟交易阶段,校准执行模型参数。
关键认知: 回测不是用来证明策略“一定赚钱”的工具,而是用来排除无效策略、暴露潜在风险、建立对策略行为模式理解的框架。优秀的量化团队会将回测视为“假设检验器”而非“印钞机”。