2. 失效类型分类:市场环境变化、数据错误、过拟合、执行偏差
策略跑得好好的,突然开始亏钱。这时候你第一反应是什么?
别急着改参数。先搞清楚——到底出了什么问题。
我处理过的失效案例,基本跑不出四大类:市场环境变了、数据有问题、模型过拟合了、执行层面出了偏差。今天咱们把这四类掰开揉碎了讲。
知道了病根在哪,才能对症下药。
2.1 市场环境变化
这是最常见的失效类型。说白了,行情变了,但你的策略还活在过去。
市场有个特性——它不是固定不变的。波动率、相关性、流动性、趋势结构,这些要素会随着宏观周期、监管政策、甚至社交媒体情绪发生陡变。
很多策略在回测时看起来很漂亮,但一上线,市场风格换了个频道,它就失灵了。
| 市场特征 | 常见变化方向 | 典型失效表现 |
|---|---|---|
| 波动率 | 低→高 / 高→低 | 止损被频繁触发,或趋势策略长期无信号 |
| 相关性 | 风险平价模型中资产相关系数突然飙升 | 组合回撤远超预期 |
| 流动性 | 缩表、假期、黑天鹅事件 | 滑点大幅增加,成交价偏离信号价格 |
| 趋势/震荡 | 趋势转为震荡,或震荡转为趋势 | 均线突破策略反复打脸 / 网格策略单边爆仓 |
我之前遇到过一套“日内动量”策略,在2019年到2021年中一直很稳定。2022年俄乌冲突后,波动率裂变,那套策略一天内连续止损了5次。
嗯,问题不在策略逻辑,而是市场环境发生了结构性改变。我们后来在策略里加了一个波动率自适应过滤器,才缓过来。
2.2 数据错误
数据出问题,是排查时最容易跳过的坑。为什么会这样?因为人人都觉得数据源“应该没问题”。但现实中,数据错了,什么都白搭。
数据错误可以分为几个层面:
- 源数据异常: 交易所盘中数据断流、tick拼接错位、除权除息未复权。
- 清洗逻辑漏洞: 未来函数、前向引用、错误填充、停牌期间用错误价格。
- 特征工程错误: 指标计算中用错参数(比如用收盘价算了两次)、roll-over换月造成跳空。
- 时间戳对齐问题: 不同数据源时间精度不一致,导致策略信号错位。
举个例子。我有一次排查一套CTA策略,盘中发现信号明明该开多,结果下单却是空。查了两天,最后发现是因为数据服务商在某个品种的涨跌停时重复了当根bar,导致策略认为趋势反转——数据多刷新了一个tick。
2.3 过拟合
过拟合是老生常谈了。但我想说,很多人的“过拟合”其实是被美化后的“数据挖掘”。
策略在回测时表现完美,但一到样本外就不行。区别在于:过拟合通常意味着模型学了很多噪声,而不是真实规律。数据挖掘则是你试了太多参数组合,总有一款能“拟合”历史。
| 信号 | 描述 |
|---|---|
| 回测曲线过于平滑 | 几乎没有回撤,最大回撤小于2%且持续多年的策略,大概率过拟合 |
| 参数敏感度过高 | 参数微调(如移动均线周期从20改到21)导致收益剧烈波动 |
| 多策略叠加后夏普比异常高 | 同时用了趋势+均值回归+择时,每个单独一般,组合后曲线完美——往往是协方差估计错了 |
| 样本外/前向测试表现显著下滑 | 这个大概率就是过拟合的实锤 |
你想想看,如果一个策略有20个参数,每个参数试10个值,那就是10的20次方种组合。理论上总能找到一组在历史数据上表现好的参数。
但历史不会简单重演。所以我个人非常反对”暴力调参”。
- 做滚动窗口交叉验证(先做5倍时间序列交叉验证)
- 保持参数数量尽量少(3-5个核心参数为佳)
- 对每个参数做灵敏度分析,看曲面是否平坦
2.4 执行偏差
策略逻辑没问题,数据也没错,但就是赚不到钱——很可能问题出在执行上。执行偏差是指理论信号与实际成交结果之间的系统性差异。
- 滑点低估: 回测时假设固定1个tick滑点,实盘遇到流动性差时滑了10个tick。
- 延迟问题: 从信号生成到下单到成交确认之间的延迟,导致成交价偏离信号价格。
- 订单类型不当: 用市价单时被吃透,用限价单又无法成交。
- 交易所规则变化: 熔断机制、最小变动单位调整、涨跌停板幅度变化,都会影响执行。
我记得有一次做跨期套利,回测年化收益能做到20%。实盘上线之后连续三周都没赚到钱。
后来我一笔一笔地分析成交明细,发现回测时用的是收盘价,但实盘时我需要双边同时挂单,实际成交价与收盘价差了几个tick。再加上交易所调整了最小变动单位,导致理论价差与实际价差完全对不上。
- 回测时要使用比实际预期更保守的滑点和手续费假设(比如滑点多加1-2个tick)
- 实盘日志必须记录每笔订单的“信号时间”“下单时间”“成交时间”“成交价格”四个字段,用于后续偏差分析
- 定期对执行偏差做归因:是延迟还是滑点?是订单路由问题还是市场微观结构变化?
2.5 四种失效类型的交叉关系
上面四种类型不是孤立的。很多时候,策略失效是多种因素叠加的结果。比如:市场环境变化导致波动率升高,进而放大了数据错误带来的影响;过拟合的策略在市场环境变化时首当其冲。
所以我建议,在开始排查时,先不要急着锁定某一类。而是按流程走一遍,把可能性筛一遍。
好了,四种失效类型的基本画像讲完了。
下回你看到策略回撤,别再一头扎进参数优化里,先按这个框架对号入座,效率高得多。
真正要上手干的事,在后面的章节会逐步展开。先把分类概念吃透,后面都是水到渠成的事。