第二章 低波动因子详解

好,咱们直接进入正题。低波动因子,这个名字听起来挺学术,其实说白了就是——买那些涨得慢、跌得也慢的股票。我刚开始接触这个因子时,也觉得它反直觉:凭什么涨得慢的股票反而能赚钱?但回测数据摆在那里,不服不行。

一、低波动因子的定义

低波动因子,衡量的是股票价格的“稳定程度”。我个人习惯用过去N个月的日收益率标准差来定义它。标准差越小,说明股价波动越平缓,因子值越低。

这里有个关键点:低波动因子不是指“股价不涨”,而是指“价格变动幅度小”。你想想看,一只股票每天涨跌都在1%以内,另一只动不动就涨停跌停,前者就是低波动。

核心定义公式:

低波动因子值 = -σ(rt)

其中 σ(rt) 是过去N个交易日的日收益率标准差。取负号是为了让低波动股票获得更高的因子得分。

我在项目中遇到过一个问题:有些股票长期横盘,波动确实低,但也不涨。这种股票要不要纳入?嗯,这里要注意,低波动因子需要配合其他因子使用,比如动量因子。光看波动率,容易买到“僵尸股”。

二、低波动因子的计算方法

计算方法其实不复杂,但细节决定成败。我给大家拆解一下标准流程:

  1. 数据准备:获取股票过去N个交易日的收盘价(我一般用252个交易日,也就是一年)
  2. 计算日收益率:rt = (Pt - Pt-1) / Pt-1
  3. 计算标准差:σ = sqrt( Σ(rt - μ)² / (N-1) )
  4. 因子标准化:将原始波动率进行Z-score标准化,或者直接排序分位数

下面是我常用的Python实现代码:

import numpy as np
import pandas as pd

def calc_low_vol_factor(price_df, window=252):
    """
    计算低波动因子
    price_df: DataFrame, 每列是一只股票的收盘价序列
    window: 回看窗口,默认252个交易日
    """
    # 计算日收益率
    returns = price_df.pct_change().dropna()
    
    # 计算滚动标准差(年化)
    vol = returns.rolling(window=window).std() * np.sqrt(252)
    
    # 取负号,低波动得高分
    factor = -vol
    
    # 横截面标准化
    factor = (factor - factor.mean()) / factor.std()
    
    return factor

这段代码我用了很多年,有个坑想提醒大家:一定要做横截面标准化。不同时间点的波动率水平不一样,牛市和熊市的波动率差异很大。不做标准化,因子值在不同时期不可比。

避坑指南:我曾经在2015年股灾期间直接用原始波动率做选股,结果选出来的全是停牌股。后来我加了两个处理:一是剔除停牌超过5天的股票,二是用中位数去极值。这两个小改动,让因子IC值提升了将近30%。

三、低波动因子的有效性检验

因子有没有用,不能光靠感觉。我一般用三个维度来检验:

1. IC值分析

IC(Information Coefficient)衡量因子值与未来收益的相关性。具体做法是:

  • 每个月末计算所有股票的因子值
  • 计算下个月股票的收益率
  • 计算两者的Spearman秩相关系数

我个人的经验标准:IC均值大于0.03,IC标准差小于0.1,IR(IC均值/IC标准差)大于0.5,这个因子就算合格。

2. 分组回测

把股票按因子值分成10组(Decile),看第1组(最低波动)和第10组(最高波动)的收益差异。我见过最夸张的一次回测:低波动组年化收益18%,高波动组只有3%。

分组 年化收益 最大回撤 夏普比率
第1组(低波动) 18.2% -12.5% 1.45
第5组(中等) 10.8% -18.3% 0.89
第10组(高波动) 3.1% -35.7% 0.21

你看这个表格,低波动组不仅收益高,回撤还小。这就是低波动异象——理论上高风险应该对应高收益,但现实中恰恰相反。

3. 稳定性检验

因子在不同市场环境下表现是否一致?我习惯分牛市、熊市、震荡市三个区间分别测试。低波动因子在熊市里表现尤其亮眼,因为大家都想找避风港。但在大牛市中,它可能会跑输——这很正常,没有完美的因子。

重要提醒:低波动因子在A股市场存在明显的“市值暴露”。小盘低波动股票的表现往往优于大盘低波动。所以做多因子模型时,一定要对市值因子做中性化处理,否则你选出来的可能只是小盘股,而不是真正的低波动股。

为什么会这样?我个人的理解是:机构投资者偏好大盘股,而大盘股本身波动就相对较低。但小盘股里的低波动股票,往往是被市场忽略的“隐形冠军”,反而有更大的超额收益空间。

低波动因子知识体系 低波动因子 定义:价格波动幅度小 计算:收益率标准差 检验:IC值/分组回测 日收益率标准差 年化波动率 252日滚动窗口 横截面标准化 IC均值 > 0.03 分组收益差异 核心:低波动 ≠ 低收益,而是风险调整后的高收益

最后说一句,低波动因子不是万能药。它最大的问题是“拥挤交易”——当太多人都知道这个因子有效时,它的超额收益会衰减。我现在的做法是:把低波动因子作为基础配置,再叠加一些另类因子(比如分析师预期调整、供应链数据等),做出差异化。

好了,这一章的内容就到这里。记住:因子研究不是一锤子买卖,需要持续跟踪、动态调整。你拿到的每一个回测结果,都要问自己一句——这个结果在实盘中还能复制吗?


公众号:蓝海资料掘金营,微信deep3321