2026年八月28日 · 研究

为什么你的回测会把波动率飙升当成新市场状态

为什么你的回测会把波动率飙升当成新市场状态

波动率目标策略会在测得的波动率上升时削减仓位,并在波动率下降时增加敞口。听起来很简单,直到一次冲击让估算值飙升。根据估算方法和再平衡规则,策略可能在事件发生后连续数周缩减仓位,只在市场反弹后才买回来,或者让仓位来回剧烈波动。

3种实现错误造成了其中许多问题。每一种都可能让一条合理的风险规则在回测中显得毫无用处,或是效果惊人。要修正问题,首先要明确目标究竟要控制什么,再让估算方法和交易安排与之匹配。

错误1:把最近一次波动率估算当成预测

滚动标准差只是对选定时间窗口的概括。它无法知道下一交易时段会平静还是剧烈。短窗口对冲击反应快,但冲击离开样本后,估算值仍可能维持在高位。长窗口则无论上升还是下降都变化缓慢。

假设某策略的年化波动率目标为10%,估算窗口为20天。如果估算值从10%跳升至25%,简单的反波动率规则会将敞口削减至原先的40%。冲击退出窗口后,估算值可能迅速回落,敞口也随之跳回。最终的仓位路径不仅取决于目标值,也取决于窗口、收益序列和再平衡安排。

问题往往表现为:仓位在回撤后卖出,又在价格反弹后恢复风险敞口。这并不能证明规则有错:在动荡时期限制风险,可能正是它的目的。但如果回测只报告实现波动率,就可能掩盖为此付出的换手成本和参与市场的延迟。

用同一时期的数据测试多个窗口,并检查冲击前后的敞口路径。如果预测模型能改善样本外决策,那么采用它或许有道理;但估算方法更复杂,并不意味着只要曲线更平滑就值得信任。

错误2:限制仓位规模,却声称达到了目标

波动率目标管理通常通过乘数实现。粗略来说,就是用目标波动率除以估算波动率,再乘以策略的基础仓位。在杠杆市场中,估算值较小时,乘数可能变得很大。开发者通常会设置最大值上限,这对回测来说是谨慎做法,但上限会改变规则。

假设目标为12%,估算波动率为4%,基础仓位为1.0。未经限制的乘数为3.0。若上限为1.5,策略就无法达到预期敞口。反过来,当估算波动率升至30%时,未经限制的乘数会降至0.4。如果最低敞口下限为0.5,策略承担的风险就会高于目标公式所要求的水平。

规则防止的问题造成的影响
最大敞口上限估算波动率极低时出现过度杠杆平静时期策略敞口低于目标
最低敞口下限仓位降至零波动时期保留更多风险敞口
波动率下限除以接近零的估算值为分母设定下限

这是3种不同的控制措施。应在策略规格中分别说明,并报告每种措施触发的频率。如果最大值上限在一半样本中都生效,那么实现波动率低于目标可能就是预期结果。

错误3:模型中持续再平衡,账户中却按固定间隔再平衡

回测可能每根K线都重新计算敞口,而模拟交易账户每天只检查一次。即便两者使用相同公式,它们也是不同的策略。频繁再平衡反应更快,却可能把估算噪声变成交易指令。在期货中,换手会产生手续费,也可能带来资金费率敞口;在股票中,则会产生佣金、价差和市场冲击。频繁跨越价差进行小额调整,成本可能很高。

设想一个价值100,000美元的投资组合,目标仓位为50,000美元。如果估算波动率使目标仓位降至47,000美元,下一交易时段又升至49,000美元,那么按日规则会在两天内交易5,000美元。按周规则可能只交易一次,具体取决于观察日期。哪种安排都不一定更优。回测需要模拟模拟策略实际能够执行的交易安排。

一种实用的替代方案是设置再平衡区间:只有当前敞口与目标的偏差超过指定阈值时才交易。这样可以减少频繁交易,但也会让风险偏离目标。应同时展示区间、由此产生的换手和实现波动率;不要把目标说得仿佛区间没有影响。

波动率目标回测应报告哪些内容?

让规则足够清晰,使他人能根据输入解释仓位为何变化。至少要在每次更新时保留估算值、未经限制的乘数、实际采用的乘数、上限或下限状态、目标敞口、实际敞口和再平衡决策。然后在相同数据、成本和执行假设下比较不同方案。

3项应披露的独立控制:上限、下限和再平衡区间
2条需要检查的路径:目标敞口和实际敞口

还要仔细检查最糟糕的几周。策略是在亏损发生前降低风险,还是之后才降?它是在市场反弹前恢复敞口,还是之后才恢复?这些答案无法决定这条风险规则是否值得采用,但会告诉你实际测试的究竟是哪条规则。

波动率目标管理风险管理回测仓位规模
← 全部文章