一、90%的量化策略失效,不是因为因子不行,而是因为“用错了行情”
很多量化初学者都有过这样的经历:明明回测曲线很漂亮,一上实盘就变脸;上个月赚得盆满钵满的策略,这个月亏得爹妈不认。
原因往往不是因子本身失效,而是——市场行情变了,你的因子没变。
A股市场从来不是单一节奏:牛市主升浪、熊市阴跌、熊市反弹、震荡横盘、结构性分化……不同行情下,有效的因子完全不同。用牛市的动量策略去熊市里跑,就是送钱;用震荡市的反转策略去牛市中做,就是踏空。
这篇文章,我帮你把6种典型A股行情分别拆解,给出最适配的因子组合、技术指标参数和交易逻辑。文末还附了一个动态切换的PTrade代码框架,可以直接上手。
二、先学会判断:现在到底是什么行情?
在选因子之前,先解决一个问题:当前市场处于什么状态?
2.1 华泰金工牛熊指标(推荐方法)
利用波动率 + 换手率两个维度的趋势方向,划分四象限:
实操中,用60日线性回归斜率判断方向(比均线大小对比更稳定),分别计算上证综指的20日波动率序列和20日换手率序列,看斜率正负。
2.2 技术指标快速打分(五维加权)
你也可以用下面这套综合打分模型,每日输出一个分数,判断市场状态:
市场得分 = 0.25×趋势分 + 0.20×动量分 + 0.20×波动率分 + 0.20×成交量分 + 0.15×市场广度分
每个维度的评分标准,参考文档中的量化规则(比如趋势分看MA20/MA60的差值占比,动量分看MACD的DIF位置等)。
有了这个判断,我们就可以“看菜下饭”了。
三、6种行情下的因子搭配与交易逻辑
3.1 牛市主升浪:趋势为王,强者恒强
市场特征:MA20>MA60>MA120多头排列,MACD DIF>0且上行,成交额>1.2万亿,涨跌比>1.5。
核心逻辑:趋势延续 + 动量加速 + 散户追涨 → 顺势而为,别猜顶。
最适配因子组合:
技术指标配置:MA5>MA10>MA20>MA60(强趋势确认),MACD零轴上方金叉加仓,布林带沿上轨运行持有,OBV持续新高确认资金流入。
牛市禁忌:❌ 不要用反转因子(RSI超卖抄底) ❌ 不要用低波动因子 ❌ 不要过度看重价值因子 ❌ 不要频繁止损(给趋势15%以上空间)
调仓建议:月度调仓,集中持仓3~5只,止损放宽到-15%,MACD零轴上方二次金叉或回踩MA20不破可加仓。
3.2 牛市初期(底部反转):超跌修复,资金抄底
市场特征:前期跌幅>20%,波动率从高位回落,换手率从低位回升,MACD底部金叉,MA5上穿MA20。
核心逻辑:超跌修复 + 资金流入 → 前期跌得越惨,反弹越猛。这阶段因子和主升浪完全不同。
最适配因子组合:
技术指标:RSI<30抄底区间,KDJ的J值<0后上穿,MACD底部金叉(最好配合底背离),布林带触及下轨后回升,MA5上穿MA20为第一反转信号。
禁忌:❌ 不要用动量因子(方向混乱) ❌ 不要用成长因子 ❌ 不要等“确认牛市”再进场(那时已经涨了20%)
调仓建议:周度调仓(反弹变化快),持仓4~6只,止损-8%,退出信号为RSI>70、MACD顶背离或MA20走平。
3.3 熊市:持续下跌——活下去是第一要务
市场特征:MA20<MA60<MA120空头排列,MACD DIF<0且下行,成交额持续萎缩,换手率下行、波动率上行(恐慌)。
核心逻辑:防守 + 质量 + 低波动 → 目标不是赚钱,而是少亏,跑赢指数。
最适配因子组合:
技术指标:ATR/C越低越好,布林带带宽越窄越稳定,股价必须站上MA60(否则排除),RSI控制在30~50区间,排除OBV持续下降的票。
禁忌:❌ 小市值(熊市跌最惨) ❌ 动量因子(容易崩溃) ❌ 成长因子(杀估值) ❌ 重仓单一行业 ❌ 加杠杆
调仓建议:月度调仓,持仓5~8只高度分散,止损严控-5%,**仓位控制在30%~50%**,可考虑沪深300ETF对冲。
3.4 熊市反弹:快进快出,弹完就跑
市场特征:熊市中跌幅>15%后出现,波动率从极高回落,成交量突然放大,MACD低位金叉,KDJ的J值<0后拐头,通常持续1~4周。
核心逻辑:短期修复,不是反转 → 跌得最多的反弹最猛 + 弹性大的涨幅最大。这是最考验择时的行情。
最适配因子组合:
技术指标:KDJ的J<0后上穿20(最敏感底部信号),RSI(6)<20后拐头,收盘价跌破布林下轨后首次收回,MACD底部金叉,成交量>1.5倍均量确认反弹。
退出信号(重要!) 满足任意一条即减仓:
调仓建议:周度甚至日度调仓,持仓集中2~3只,止损-5%,仓位30%~50%,最长持有期不超过4周。
3.5 震荡市:高抛低吸,均值回归
市场特征:指数在MA20和MA60之间反复穿越,MACD在0轴附近震荡,成交额6000~9000亿,波动率中等偏低,板块轮动快,无持续主线。
核心逻辑:买低卖高 + 反转 + 质量 → 没有趋势,动量失效,靠超买超卖反复做波段。
最适配因子组合:
技术指标:RSI<30买入、>70卖出;KDJ的K<20买入、>80卖出;布林带触下轨买入、触上轨卖出;MACD仅在零轴附近做金叉死叉波段;价格偏离MA20超过±5%时反向操作。
禁忌:❌ 动量因子 ❌ 趋势跟踪 ❌ 追涨杀跌 ❌ 重仓单一方向
调仓建议:周度调仓,持仓4~6只,止损-5%,仓位60%~80%,单次盈利目标5%~10%(不贪)。
3.6 结构性行情:跟热点,抓行业动量
市场特征:指数涨幅不大甚至微跌,但某些板块暴涨;涨跌比接近1;成交额集中于热点板块;行业轮动极快(典型:2023年AI、2024年红利)。
核心逻辑:行业/主题驱动,不是因子驱动 → 宽基多因子失效,需要聚焦热点行业 + 资金流向。
最适配因子组合:
技术指标:OBV创新高+价格创新高(资金确认),MACD高位不拐头,连续放量且价格不跌(主力吸筹),RSI(6)强势回调到50~60区间不破,北向/主力资金持续净流入热点行业。
退出信号:行业成交量连续3天萎缩,领涨股MACD死叉,资金连续净流出该行业,行业RSI(6)>85。
调仓建议:周度调仓,总持仓15~25只但集中在2~3个热点行业(单一行业不超过40%),止损-8%,仓位70%~90%。
四、一张速查总表:什么行情用什么因子
因子有效性矩阵(⭐越多越有效)
一句话口诀
牛市追趋势(动量+MACD),熊市保安全(低波动+ROE),震荡做反转(RSI+均值回归),反弹打弹性(小市值+KDJ),结构性跟热点(行业动量+资金流)。
五、动态切换:用代码实现“看行情下菜碟”
- 每月初判断当前市场状态(牛/熊/震荡/反弹/结构性……)
核心函数接口示例:
defjudge_market_state(context):
# 返回 'bull' / 'bear' / 'shock' / 'rebound' / 'structural'
defget_factor_weights(market_state):
# 返回对应状态的因子列表、权重、方向、仓位上限
注意事项:状态判断有滞后性 → 可设置“缓冲区”(得分45~55沿用上月判断),或采用大小周期共振(长周期稳趋势+短周期抓拐点),以及斜率加速度、ADL背离预警等进阶优化。文档中提供了完整优化方案,篇幅所限不展开,感兴趣的朋友可以私信获取完整代码。
写在最后
量化交易不是找到一个“万能因子”然后躺赢。真正的专业,是懂得在不同市场环境下,主动切换不同的因子组合和交易逻辑。
这套方法论,你可以直接用在自己已有的策略上:先加一个市场状态判断模块,再根据上文的速查表动态调整因子权重。你会发现,策略的最大回撤明显下降,而收益曲线更加平滑。
最后送你三句话:
- 策略模型是骨架,行情适配是血肉,纪律执行才是灵魂。
风险提示:本文所有内容仅为量化策略教学与研究分享,不构成任何投资建议。因子策略基于历史数据,历史表现不代表未来收益。市场有风险,投资需谨慎。请根据自身风险承受能力独立决策。
如果觉得这篇文章对你有帮助,欢迎点赞、在看、转发,让更多朋友看到。