4、动量因子与反转因子:行业动量策略构建、反转效应捕捉
各位同学,今天我们聊一个在实战中特别有意思的话题——动量与反转。
说白了,这就是在回答一个问题:涨的行业还会继续涨吗?跌的行业会不会反弹?
我做了这么多年量化,可以负责任地告诉你:两个答案都是“会”,但时机不同。
嗯,这里要注意。动量效应和反转效应,其实是同一枚硬币的两面。它们在不同时间尺度上起作用。我个人习惯把动量看作“短期趋势的延续”,把反转看作“长期趋势的修正”。
核心观点:动量因子在1-6个月的时间窗口内表现显著,反转因子则在6-12个月甚至更长的周期中发挥作用。
4.1 行业动量策略构建
先讲动量。我在项目中遇到过很多新手,上来就买最近涨得最猛的行业。结果呢?经常买在最高点。
为什么会这样?因为纯粹的动量策略,需要配合严格的筛选和风控。
我建议的行业动量策略构建步骤如下:
- 计算行业收益率:取过去N个交易日的累计收益率(N通常取20、60、120)
- 排名分组:将所有行业按收益率从高到低排序,取前20%作为动量组合
- 等权或市值加权:构建投资组合
- 持有期设定:通常持有1-3个月,然后重新调仓
这里有个关键点——动量策略最怕“急转弯”。你想想看,如果一个行业连续大涨,突然某天放量暴跌,这时候你还追进去,大概率是接盘侠。
我的小技巧:在动量策略中加入“波动率过滤”。如果行业过去5天的波动率超过历史均值的2倍,我通常会跳过这个行业。这个习惯帮我躲过好几次“假突破”。
下面是一个简单的动量策略代码示例:
import pandas as pd
import numpy as np
def momentum_strategy(industry_returns, lookback=60, top_pct=0.2):
"""
行业动量策略
:param industry_returns: DataFrame, 各行业日收益率
:param lookback: 回看窗口
:param top_pct: 选取前百分之多少
"""
# 计算累计收益率
cum_returns = (1 + industry_returns).rolling(lookback).apply(
lambda x: x.prod() - 1
)
# 排名并选取动量最强的行业
rank = cum_returns.rank(axis=1, ascending=False)
top_n = int(rank.shape[1] * top_pct)
momentum_portfolio = rank.apply(
lambda x: x[x <= top_n].index.tolist(), axis=1
)
return momentum_portfolio
# 使用示例
# 假设 df 是行业收益率数据
# portfolio = momentum_strategy(df, lookback=60, top_pct=0.2)
4.2 反转效应捕捉
反转效应,说白了就是“跌多了会涨”。但这里有个坑——不是所有下跌都会反转。
我曾经踩过一个坑:2018年某周期行业连续下跌了8个月,我按反转策略抄底,结果又跌了3个月。为什么?因为那个行业的基本面已经彻底变了。
所以,捕捉反转效应,我建议加上基本面过滤:
- 跌幅足够深:过去6-12个月跌幅超过30%
- 估值合理:PE、PB处于历史低位
- 行业景气度未恶化:营收、利润没有持续下滑
警告:反转策略最怕“价值陷阱”。一个行业跌了很多,看起来很便宜,但如果它的盈利也在持续恶化,那可能还会继续跌。我建议用“盈利动量”作为辅助指标——如果行业盈利开始企稳或回升,反转的概率会大很多。
反转效应的捕捉,我常用的方法是:
- 计算过去12个月的累计跌幅
- 筛选跌幅最大的前20%行业
- 剔除基本面恶化的行业
- 等权买入,持有3-6个月
4.3 动量与反转的轮动逻辑
你可能会问:什么时候用动量,什么时候用反转?
我个人经验是:
- 趋势市(市场单边上涨或下跌):动量策略表现更好。因为趋势会自我强化。
- 震荡市(市场横盘整理):反转策略更有效。因为价格会在区间内来回摆动。
- 极端行情后:比如市场连续暴跌后,反转策略往往有超额收益。
我习惯用市场波动率来判断当前适合哪种策略。当VIX(恐慌指数)处于低位时,动量策略占优;当VIX处于高位时,反转策略更安全。
实战框架:动量因子与反转因子的结合使用
- 先用动量因子选出强势行业(过去3个月涨幅前20%)
- 再用反转因子从弱势行业中筛选“假弱势”行业(跌幅大但基本面未恶化)
- 最后根据市场状态,动态调整两类策略的权重
4.4 知识体系图
下面这张图,是我自己梳理的动量与反转策略的核心逻辑。你一看就明白了:
4.5 实战中的避坑指南
最后,分享几个我踩过的坑,希望能帮你少走弯路:
- 不要只看价格动量:我曾经只用量价数据做动量策略,结果在2015年股灾时亏得很惨。后来加入了“资金流”指标——如果行业上涨但资金在流出,那就是假动量。
- 反转策略要设止损:反转不是100%成功的。我一般设10%的止损线。如果买入后继续跌10%,说明判断错了,果断离场。
- 注意行业间的相关性:有些行业走势高度相关(比如银行和保险)。如果同时买入,相当于在同一个赌注上押了两次。我建议用“行业聚类”来分散风险。
一个小工具:我习惯用“动量-反转剪刀差”指标——即动量排名减去反转排名。如果这个值很大,说明该行业既有动量优势,又没有过度超跌。这种行业往往是最安全的。
好了,关于动量与反转,今天就聊到这里。记住一句话:动量是顺势而为,反转是逆势布局。两者结合,才能穿越牛熊。
公众号:蓝海资料掘金营,微信deep3321