4、因子构建(上):动量因子与均值回归因子

各位同学,今天我们来聊聊因子构建中最基础、也最实用的两个方向——动量因子均值回归因子

说实话,我刚入行那会儿,觉得因子越多越好,恨不得把能想到的指标全塞进模型里。结果呢?过拟合得一塌糊涂,回测曲线漂亮得像假的一样,实盘一跑就露馅。后来我才明白,因子的逻辑比数量重要得多

今天这两个因子,一个追涨杀跌,一个抄底逃顶。听起来矛盾对吧?但它们在多因子模型里可以共存,甚至互补。我们一个一个来看。

一、动量因子:趋势是你的朋友

动量因子的核心思想很简单:过去涨的,未来还会涨;过去跌的,未来还会跌。这不是玄学,背后有行为金融学的解释——投资者反应不足、信息传播需要时间等等。

我个人习惯用两种方式构建动量因子:N日收益率乖离率

1. N日收益率

这个最直接。就是计算过去N天的累计收益率。

# 伪代码示例
def n_day_return(close_prices, n=20):
    return (close_prices[-1] / close_prices[-n-1]) - 1

N怎么选?这是个好问题。我做过大量测试,发现:

  • 短期动量(5-10天):噪音大,反转快,不太适合做因子
  • 中期动量(20-60天):效果最稳定,我个人常用30天
  • 长期动量(120天以上):在数字货币里效果一般,因为市场变化太快
我的经验:数字货币的动量周期比股票短得多。股票里用60天,币圈可能30天就够用了。你可以多试试几个参数,看看哪个在回测里表现最稳定。

2. 乖离率(BIAS)

乖离率衡量的是当前价格偏离移动平均线的程度。公式是:

BIAS = (当前价格 - MA(N)) / MA(N) * 100%

说白了,就是看价格跑得离均线有多远。乖离率越大,说明动量越强,但也意味着回调风险在积累。

我曾经在ETH上吃过亏。2021年那波牛市,乖离率一度冲到30%以上,我以为是超买信号就做空了。结果呢?市场继续涨,我爆仓了。后来我学乖了——乖离率在强趋势行情里会失效,它更适合震荡市。

注意:乖离率不是万能的。在单边行情里,乖离率可以持续在高位,这时候做反向操作就是找死。一定要结合趋势判断来用。

二、均值回归因子:涨多了会跌,跌多了会涨

均值回归因子的逻辑和动量完全相反。它认为价格会围绕某个均值波动,偏离太远就会拉回来。

听起来很有道理对吧?但实际操作中,均值回归因子有个致命问题——你不知道什么时候回归。价格可以偏离均值很久,久到你扛不住。

1. 均值回归的常见构建方式

我常用的均值回归因子有:

  • 价格与均线的距离:类似乖离率,但方向相反
  • RSI指标:低于30做多,高于70做空
  • 布林带位置:价格在布林带上下轨的位置
# 一个简单的均值回归因子示例
def mean_reversion_factor(close_prices, window=20):
    ma = close_prices.rolling(window).mean()
    std = close_prices.rolling(window).std()
    # 计算z-score
    z_score = (close_prices - ma) / std
    # 取负值,因为我们要做反向操作
    return -z_score
关键点:均值回归因子在震荡市里表现极好,但在趋势行情里会亏得很惨。所以,很多量化团队会把动量因子和均值回归因子结合起来,根据市场状态动态调整权重。

三、动量 vs 均值回归:什么时候用哪个?

这个问题我思考了很久,也踩过不少坑。我的结论是:

市场状态 动量因子 均值回归因子
强趋势行情 ✅ 有效 ❌ 失效
震荡行情 ❌ 失效 ✅ 有效
高波动行情 ⚠️ 需谨慎 ⚠️ 需谨慎

你想想看,如果市场在单边上涨,你用均值回归做空,那不是找死吗?反过来,如果市场在横盘震荡,你用动量追涨杀跌,大概率两边挨打。

所以,真正的难点不在于构建因子,而在于判断当前市场适合哪种因子。这也是为什么多因子模型比单因子模型更稳健——你可以让多个因子同时工作,用模型自动分配权重。

四、本章知识体系

下面这张图展示了本章的核心逻辑,我画成了SVG,方便你理解:

因子构建(上):动量因子与均值回归因子 动量因子 均值回归因子 N日收益率 乖离率(BIAS) 价格与均线距离 RSI指标 布林带位置 适用场景判断 趋势行情 → 动量因子 震荡行情 → 均值回归因子 多因子模型:动态权重,互补使用

嗯,这张图把今天的核心内容串起来了。你可以看到,动量因子和均值回归因子各有各的子因子,也各有各的适用场景。关键是要学会判断市场状态,然后灵活运用。

一个小建议:刚开始做因子研究时,不要贪多。先把动量因子和均值回归因子做扎实,跑通整个流程。等你有经验了,再慢慢加其他因子。我见过太多人一上来就搞几十个因子,结果连数据清洗都没做好。

好了,今天的内容就到这里。下一章我们会继续讲因子构建的下半部分——波动率因子和流动性因子。到时候你会发现,这些因子组合起来,威力会大得多。


蓝海数据掘金营,专注资料整理