第二十章 策略失效的识别与应对

早期预警、归因分析与标准处理流程

239页 · 预计12

实盘运行一段时间后,谁都会遇到策略表现不及预期的时候。新手最容易走两个极端:要么回撤两三个点就慌了,觉得策略失效了,急着改参数、换逻辑;要么连续亏一两个月还死扛,说这是正常波动,最后亏到大伤筋动骨才反应过来。
问题的核心,是没有一套客观的预警标准和标准化的处理流程,全凭感觉判断。本章就给出一套可量化的失效预警体系、归因分析框架、标准处理流程,以及策略重启和组合分散的方法。到什么阶段做什么事,清清楚楚,不用靠猜。

20.1 策略失效的六个早期预警信号

我总结出六个早期预警信号,按严重程度从低到高分为黄色、橙色、红色三级。不用等亏很多,出现对应信号就可以提前排查,把问题消灭在萌芽阶段。

信号一:选股超额收益持续为负(预警级别:黄色)

定义:每月计算持仓股票的等权平均收益,减去同期沪深300指数收益,得到选股超额收益。如果连续3个月选股超额收益为负,说明选股能力在下降。
这里的超额收益,特指选股部分的超额,不是整体账户的收益。整体账户收益还受仓位高低、择时操作的影响,而选股超额收益直接反映选股逻辑的有效性,剔除了仓位管理的干扰。
为什么设连续3个月?因为市场风格切换的时候,任何策略都会短暂跑输,一两个月跑输非常正常。但连续三个月跑输,就不是偶然波动了,大概率是选股逻辑和当前市场风格已经不匹配。

信号二:资金面信号胜率下降(预警级别:黄色)

定义:统计近20次根据“连续5日主力净流入”条件买入的股票,在买入后5个交易日内,相对指数超额收益为正的比例。如果胜率从历史均值(约60%)下降到40%以下,说明资金面信号可能失效。
背后的逻辑很简单:资金面信号的核心是跟随主力赚钱。如果跟进去之后,不涨反跌的比例越来越高,说明要么主力资金的行为模式变了,开始用净流入做诱多出货;要么资金流向指标的噪音变大了,信号有效性下降。
补充一个排查技巧:分行业看胜率。如果只是某个行业的资金信号失效,大概率是板块轮动,板块内资金兑现离场;如果全行业的资金信号胜率都下降,才是整体资金面因子失效。

信号三:空仓期越来越长(预警级别:橙色)

定义:每月统计合格股票(同时满足四维条件)的数量均值。如果连续2个月均值低于3只,且市场并非单边熊市(沪深300月跌幅<5%),说明四维框架过于严格,可能漏掉大量机会。
这里有个重要前提:如果是单边熊市,空仓期长是正常的,反而是风控有效的表现,不是问题。只有在非熊市环境下,市场整体震荡甚至上涨,但合格股票一直很少,才是预警信号——说明阈值设置过严,或者因子组合逻辑不适应当前市场,导致选不出股票,持续踏空行情。

信号四:产业赛道标签大面积失效(预警级别:橙色)

定义:每月统计持仓股票中,来自十大未来产业的股票占比。如果占比从历史均值(约80%)下降到50%以下,且替代的传统行业股票表现也不好,说明产业趋势可能已经切换。
四维框架的核心锚就是产业赛道,如果大部分持仓已经不在核心赛道里了,说明市场主线行情变了,原来的赛道逻辑不成立了。如果硬守着原来的赛道清单,会持续跑输大盘。
这时候要做的不是硬扛,是重新审视赛道清单,看看是不是市场主线已经转移。

信号五:回撤模式改变(预警级别:红色)

定义:历史上策略的最大回撤通常都发生在市场快速下跌期间,和大盘同步。如果回撤发生在市场横盘或上涨期间,且回撤深度超过历史均值,说明策略内部出了问题。
正常情况下,大盘涨的时候,策略净值应该创新高或者小幅波动,大盘跌的时候才会出现回撤。如果大盘没跌,策略自己回撤很大,说明不是市场的问题,是策略内部出了问题——可能是持仓集中踩雷、可能是交易成本异常升高、可能是调仓过于频繁导致摩擦损耗过大。
这是最高级别的预警之一,出现就要立刻暂停排查。

信号六:交易成本占比异常升高(预警级别:红色)

定义:每月统计交易总成本(佣金+滑点+印花税+过户费)占当月总成交额的比例。如果成本占比从历史均值0.4%上升到0.6%以上,且换手率没有明显增加,说明滑点恶化、佣金变动,或者无效交易变多了。
交易成本是策略的隐形损耗,很多时候策略收益下降,不是选股逻辑不行,是交易成本悄悄涨了,或者频繁的无效交易多了,成本吃掉了利润。
尤其是小资金投资者,容易忽略最低佣金5元的影响,小额交易多了,实际佣金比例会远高于万分之三,积少成多吃掉收益。

如果需要自动监控这些预警指标,每日扫描策略健康度,可访问a-sig.com壹信因子查询平台,内置策略健康度评分模型,出现异常自动推送提醒。

20.2 归因分析:是市场变化还是过拟合?

出现预警信号之后,第一步不是急着改参数,是先做归因:到底是市场风格变化导致的阶段性失效,还是策略本身过拟合导致的本质失效?原因不同,处理方式完全不一样。市场变化导致的,调整参数就能用;过拟合导致的,可能要整个重构策略。

我总结了两类失效的核心特征,可以对照排查:

市场变化导致的失效特征

  • 失效发生在市场风格切换之后,比如从成长切换为价值,从小盘切换为大盘,从赛道行情切换为价值行情。
  • 同一时期,市场上其他类似风格的策略也普遍表现不佳,不是你一个人的策略不行。
  • 策略的某个核心维度得分普遍下降,比如产业面整体得分都低,或者资金面整体信号失效。
  • 回撤是全局性的,所有持仓股票同步下跌,不是个别个股踩雷。

过拟合导致的失效特征

  • 失效发生在样本外,也就是回测的时候表现特别好,一上实盘就大幅跑输。
  • 策略参数敏感度极高,权重微调0.05,表现就差很多;阈值微调几个百分点,结果天差地别。
  • 策略在不同市场环境下的回测表现不一致,这段历史好,那段历史差,只在特定时间段表现好。
  • 回撤是结构性的,只有少数几只股票暴跌,其他持仓正常,说明选股逻辑钻了历史数据的牛角尖,选出了历史上表现好但未来不行的标的。

诊断方法:分维度IC值测试

最科学的诊断方法,是把策略拆解成四个独立维度,分别测试每个维度在最近3个月的择股能力,也就是计算每个维度的信息系数(IC)。
IC值衡量的是因子值和未来收益的相关性,IC为正说明因子有效,越高越有效;IC由正转负,说明这个因子已经失效。
如果只有某个维度IC由正转负,其他维度正常,那就是这个维度的因子失效了,调整对应阈值就行;如果所有维度的IC都集体下降,大概率是市场环境整体变化,或者策略整体过拟合了。

维度IC计算示例:

def dimension_ic(df, dim_col, return_col):
    """计算某个维度的IC值(与未来收益的相关系数)"""
    # df包含每日各股票的维度得分和次日/未来N日收益
    daily_ic = df.groupby('date').apply(lambda x: x[dim_col].corr(x[return_col]))
    return daily_ic.mean()

20.3 策略失效后的四步处理流程

诊断清楚原因之后,按照标准四步流程处理,不要乱改一气。

第一步:暂停(1-3天)

出现红色预警信号(回撤模式改变、成本异常升高)时,立即暂停交易。现有持仓中,不满足四维条件的先卖出,保留满足条件的标的和现金,期间不进行新买入。
如果只是黄色预警,可以边运行边排查,不用全停;橙色预警建议减半仓位,再逐步排查。
核心原则:出现问题先踩刹车,不要一边开一边修,越修越乱,小问题拖成大问题。

第二步:诊断(3-5天)

按照从易到难的顺序,逐项排查四个方向:

  1. 数据源排查:接口是不是变更了?字段是不是更新了?数据有没有延迟?有没有异常值?先排除最基础的数据问题。很多时候策略失效不是逻辑问题,是数据源挂了、字段改了,数据错了,排查半天白忙活。
  2. 参数排查:是不是阈值太严了?权重是不是不合适?牛市熊市的动态阈值有没有正常切换?确认参数逻辑和数值都正确。
  3. 赛道排查:产业赛道清单是不是过时了?有没有新兴起来的赛道?原来的核心赛道是不是产业逻辑变了?
  4. 成本排查:佣金是不是涨了?滑点是不是变大了?是不是无效交易增多了?把交易明细拉出来算一算实际成本。

第三步:修正(1-2周)

根据诊断结果,对应处理:

  • 数据问题:修复代码逻辑,切换备用数据源,增加数据校验步骤。
  • 参数问题:用最近6个月数据重新优化权重和阈值,注意用滚动窗口交叉验证,避免过拟合。不要为了贴合最近一段行情,把参数调到极值。
  • 赛道问题:更新产业标签库,增删赛道,调整赛道权重。
  • 成本问题:更换券商谈低佣金,调整下单策略,降低调仓频率,减少无效交易。

第四步:验证(1个月)

修正后的策略,先回测最近6个月的数据,和修正前做对比。然后至少跑1个月模拟盘,或者用极小资金实盘验证。
如果样本外表现仍然不佳,不要硬救,考虑永久停止策略。不是所有策略都能救回来,该放弃就放弃,硬扛亏的更多。

如果需要专业的策略诊断与优化服务,可访问intoquant.com壹信量化官网,提供全维度的策略健康度排查与优化方案。

20.4 重新启用策略的条件

如果是市场变化导致的策略暂停,什么时候可以重新启用?必须同时满足三个条件,缺一不可,不要因为反弹两天就急着冲进去。

条件一:市场风格回归

连续3个月,四维框架的选股超额收益回正,且月均合格股票数量大于5只。说明市场风格重新匹配策略的选股逻辑,不是一两天的反弹。

条件二:核心产业趋势再次确立

赛道标签库中,至少有一个核心赛道,最近一个季度获得政策重点支持(国务院/工信部发文)、行业龙头资本开支增速超过30%、券商研报数量环比增加50%以上。说明产业逻辑重新确立,不是纯情绪炒作。

条件三:个人心理准备充分

完成至少3个月的模拟盘零资金运行,且模拟盘净值曲线与历史回测偏差在1倍标准差以内。
最重要的是,重新启用也要从10%资金开始阶梯式加仓,不要一下子满仓冲进去。一朝被蛇咬,十年怕井绳,慢一点总没错。

20.5 构建策略组合以分散失效风险

对方问:有没有办法不依赖单一策略?同时运行几个不同的策略,是不是就不会动不动就失效了?
这是机构投资者的标准做法。对于个人投资者,也可以构建策略组合分散风险,但不是越多越好,2-3个低相关策略足够。

策略组合的设计原则

  1. 低相关性:策略之间的净值相关性低于0.3最好。一个成长风格、一个价值风格;一个逆向超跌、一个趋势跟踪,互补性越强,分散效果越好。
  2. 独立运行:每个策略独立账户、独立风控、独立资金,互不干扰,不要拆东墙补西墙。
  3. 动态分配:资金分配根据各策略的夏普比率动态调整,夏普高的多配,夏普低的减配,定期再平衡。

适合与本书四维框架搭配的策略类型

  • 低频价值策略:低PE、高股息、高ROE,买入持有1年以上,和成长风格的四维策略相关性极低。
  • 市场中性策略:配对交易、股指期货对冲,和大盘相关性低,平滑整体净值。
  • 趋势跟踪策略:动量指标,只在强势市场交易,和逆向超跌的四维策略形成互补。

举个简单的双策略组合示例:
策略A(本书四维框架):50%资金,每日调仓,成长逆向风格
策略B(低估值价值策略):50%资金,选沪深300中低PE高ROE的10只股票,每季度再平衡
两个策略的净值相关性通常低于0.2,整体最大回撤能降低30%左右,净值曲线平滑很多,持有体验会好很多。

最后提醒:个人投资者,2-3个策略是上限。不要搞一堆策略,管不过来也分散精力。量化交易的精髓是少即是多,把少数几个策略做深做透,比瞎堆一堆半吊子策略强得多。

第20章量化专家笔记

滚动IC计算的注意事项

计算因子IC的时候,一定要用未来收益,不能用当日收益。比如用T日的因子值,和T+1到T+5日的收益算相关性,不然就是用未来数据,IC值虚高,没有意义。
另外IC不用追求很高,A股单因子IC能稳定在0.03以上就算不错,0.05以上就是很好的因子。不要拿学术论文里的IC值对标A股,市场结构不一样。

策略有效性的快速自检

教大家一个快速自检的方法:把策略的每日收益,对同期沪深300收益做线性回归,看阿尔法(截距)是不是显著为正。
如果阿尔法显著为正,说明策略有超额收益,跑赢大盘不是靠贝塔,是真的有选股能力;如果阿尔法不显著,贝塔很高,说明其实就是跟涨跟跌,没什么超额收益。

多策略组合的仓位管理

多策略组合,总仓位不要超过80%,永远留至少20%的现金作为缓冲。每个策略的单只股票仓位上限也要同步下调,避免单只个股黑天鹅冲击整个组合。

本章内容节选自原创量化书籍《因子会说谎》,更多策略诊断与风险管理的实战经验,可登录intoquant.com查阅完整内容。


本章完。下一章是常见问题深度答疑,汇总读者最常问的关于四维框架、数据获取、回测、实盘交易、心态纪律五大类问题,逐一给出明确解答。

⚠️ 风险提示:本书内容仅为量化研究与知识分享,不构成任何投资建议。套利交易存在基差、费率、流动性、平台与极端行情等风险,历史表现不代表未来收益。投资有风险,入市需谨慎,请自主决策、量力而行。

💡 键盘 ←/→ 翻章 · T 键切换目录