3. 组合级回测概述

组合级回测概述 学习卡片

单资产回测回答的是“这个策略在这只标的上赚不赚钱”,而组合级回测回答的是“把多个策略、多个资产、多笔资金放在同一个账户里,整体表现如何”。这两者的差别不是把单资产结果简单相加,而是引入了资金共享、权重分配、再平衡、现金约束与归因分解等一整套账户级机制。理解这些机制,是构建可信回测引擎的前提。

一、组合回测与单资产回测的本质区别

单资产回测通常假设:资金全部投入单一标的,信号独立,收益按标的自身价格序列计算。组合回测则必须处理三个额外问题:

  • 资金竞争:多个信号同时出现时,账户现金有限,必须决定谁先成交、分配多少资金。
  • 权重漂移:持仓价格变化后,各资产的实际权重会偏离目标权重,需要判断是否再平衡。
  • 相关性耦合:组合波动不是各资产波动的加权平均,而是取决于协方差结构,风险贡献与资金占比并不一致。

因此,组合回测引擎的核心不是“多跑几个单资产回测”,而是维护一个账户状态机:现金、持仓、市值、权重、交易成本、滑点、分红与费用都在同一时间轴上推进。

组合回测的最小状态变量:
现金 cash、持仓数量 qty[i]、持仓市值 mv[i]、总权益 equity、目标权重 w_target[i]、实际权重 w_actual[i]。

二、组合权重:从信号到资金分配

权重是组合回测的“方向盘”。常见权重方案包括:

权重方案计算方式适用场景主要风险
等权w[i] = 1/N资产数量少、预期收益接近高波动资产实际风险占比过高
市值加权w[i] = mv[i] / Σmv指数增强、宽基配置动量追高、集中度上升
风险平价使各资产风险贡献相等多资产稳健配置依赖协方差估计稳定性
信号强度加权w[i] ∝ score[i]多因子、多策略叠加信号过拟合、换手过高
波动率倒数w[i] ∝ 1/σ[i]波动差异大的资产池低波动资产权重过大

权重生成后,还需经过归一化、上限截断、现金缓冲三步处理。例如单资产权重上限 30%,剩余权重按比例回填;同时保留 5% 现金以应对费用与滑点。

# 权重归一化与截断示例
raw = {"A": 0.45, "B": 0.35, "C": 0.30}
cap = 0.30
w = {k: min(v, cap) for k, v in raw.items()}
total = sum(w.values())
w = {k: v / total for k, v in w.items()}
# 结果: A=0.30, B=0.30, C=0.30 (归一化后)

三、再平衡:频率、阈值与成本权衡

再平衡决定“什么时候把实际权重拉回目标权重”。常见方式有三类:

  1. 日历再平衡:每月、每季度固定日期执行,规则简单,换手稳定。
  2. 阈值再平衡:当某资产实际权重偏离目标超过阈值(如 ±5%)时触发。
  3. 混合再平衡:定期检查 + 阈值触发,兼顾纪律性与成本控制。

再平衡不是免费的。每次调仓都会产生交易成本、滑点和税费。回测中必须把再平衡成本计入净值曲线,否则会高估组合收益。一个实用原则是:再平衡带来的风险控制收益,必须大于其交易成本。

在回测引擎中,再平衡应作为独立事件处理:先计算目标权重,再生成买卖订单,最后按成交价更新持仓与现金。不要把再平衡写成“直接修改权重”,否则会丢失成本与现金约束。

四、绩效归因与风险分解

组合赚钱了,但钱从哪里来?绩效归因回答收益来源,风险分解回答风险来源。两者共同构成组合回测的“解释层”。

  • 收益归因:将组合收益拆分为资产配置收益、选股/择时收益、交互项与交易成本。
  • 风险分解:将组合波动拆分为各资产波动贡献、协方差贡献与集中度贡献。
  • 风险贡献:边际风险贡献 MRC[i] = w[i] × (Σw)[i] / σ_p,用于识别“资金占比小但风险占比大”的资产。

例如一个等权组合中,某高波动资产资金占比 25%,但风险贡献可能达到 45%。如果不做风险分解,就会误以为组合风险是均匀分布的。

组合回测核心流程 信号/目标权重 再平衡决策 订单与成本 账户状态更新 绩效归因:配置收益 + 选择收益 + 交互项 - 交易成本 风险分解:资产波动贡献 + 协方差贡献 + 集中度贡献 输出:净值曲线、权重轨迹、风险贡献表、归因报表

五、常见误区与复盘

误区一:把单资产回测结果直接加权平均。这忽略了现金共享与再平衡成本,组合净值会系统性偏高。
误区二:再平衡只看频率,不看成本。高频再平衡在震荡市中可能被交易成本吞噬全部超额收益。
误区三:只看资金权重,不看风险贡献。等权不等于等风险,高波动资产会主导组合回撤。
误区四:归因只做收益,不做风险。收益归因解释“赚了多少”,风险分解解释“为什么波动这么大”,两者缺一不可。

复盘时建议按以下清单逐项检查:

  • 权重是否经过归一化与上限截断?
  • 再平衡是否计入交易成本与滑点?
  • 现金余额是否始终非负?
  • 风险贡献是否与资金权重一致?若不一致,原因是什么?
  • 归因结果是否能解释净值曲线的主要回撤段?

组合级回测的价值,不在于生成一条更漂亮的净值曲线,而在于让每一个收益来源和风险来源都可追溯、可解释、可复现。只有把权重、再平衡、归因与风险分解都纳入同一套账户状态机,回测结果才具备实盘参考意义。