📊 量化因子系列

波动率因子 深度解析

波动率因子是量化选股中最重要的风险因子之一。它衡量股票价格的不确定性,既是风险的度量,也是超额收益的来源。从学术研究到实战交易,波动率因子始终是机构投资者的核心关注点。

📐 什么是波动率因子

波动率因子(Volatility Factor)衡量股票价格在一定时间内的波动程度。在量化金融中,波动率通常用收益率的标准差来表示。波动率越高,意味着价格的不确定性越大,风险越高。

多因子选股模型中,波动率因子常作为风险因子使用——即投资者要求对承担的高波动风险获得额外补偿。然而,大量实证研究表明,低波动率股票在长期往往能获得比高波动率股票更高的风险调整后收益,这一现象被称为"低波动率异象"

核心计算公式

波动率(标准差) σ = √[ Σ(Rᵢ - R̄)² / (N - 1) ]

其中:

年化波动率

在实际应用中,通常将日波动率年化,以便比较不同时间频率的波动率:

年化波动率 σ年化 = σ × √252

252 代表一年的交易日天数(A股约为242-244天,美股约252天)。

📈 高波动率特征

> 40%
年化波动率

股价大起大落,短期涨幅可观但回撤也大。常见于题材股、小盘股、次新股。

📉 低波动率特征

< 25%
年化波动率

股价走势平稳,涨跌幅度较小,适合稳健型投资者。常见于大盘蓝筹、银行股。

🧩 波动率因子的主要类型

在量化选股中,波动率因子并非单一概念,而是包含多个维度的子因子。以下是常见的几种分类:

因子类型 计算方法 含义 常用周期
日波动率 日收益率的标准差 衡量每日价格波动幅度 20日、60日
周波动率 周收益率的标准差 过滤日间噪音,关注中期波动 12周、24周
已实现波动率 高频日内收益率的平方和 利用分钟级数据精确度量 5分钟、30分钟
特质波动率 回归残差的标准差 剔除市场因子后的特有波动 月度
下行波动率 仅统计负收益的标准差 只关注下跌风险 60日
振幅波动率 (最高价-最低价)/收盘价 利用日内价差衡量波动 20日平均

特质波动率详解

特质波动率(Idiosyncratic Volatility, IVOL)是近年来学术界和业界关注的重点。它通过以下步骤计算:

  1. 对个股收益率进行Fama-French三因子或五因子回归
  2. 提取回归残差(即市场无法解释的部分)
  3. 计算残差的标准差即为特质波动率

研究表明,特质波动率越高的股票,未来收益往往越低,这一现象被称为"特质波动率之谜"。该异象在A股市场同样显著存在。

💡 关键洞察

在A股市场,低波动率因子(包括低日波动率、低特质波动率)的选股效果非常显著。2005-2023年的回测数据显示,低波动率组合年化超额收益约6%-10%,且回撤明显低于高波动率组合。这为"追涨杀跌"的投资者提供了反向思考的视角。

🎯 基于波动率因子的选股策略

波动率因子既可以单独使用,也可以与其他因子结合构建多因子模型。以下是几种经过验证的有效策略:

策略一:低波动率选股

在全市场中选取过去60个交易日波动率最低的100只股票,等权构建组合。每月调仓一次。

适用场景:震荡市、熊市防守

年化收益:约12%-15%(回测数据,2005-2023)

最大回撤:约25%-30%

策略二:低波动率 + 低估值

在低波动率股票池中,进一步筛选市盈率PE和市净率PB较低的股票。将波动率因子与估值因子结合,实现"稳中求进"。

适用场景:价值回归行情

年化收益:约15%-20%

最大回撤:约20%-25%

策略三:低波动率 + 高股息

选择低波动且高股息率的股票,这类股票通常为成熟行业的龙头公司,兼具防御性和分红收益。

适用场景:利率下行周期、长期持有

年化收益:约10%-14%(含股息)

最大回撤:约15%-20%

策略四:波动率反转

基于"波动率均值回归"的规律:当某只股票波动率在短期内急剧放大(如连续涨停后的巨幅震荡),未来波动率大概率会回归正常水平。此时做空高波动股票或买入波动率回归到低位的股票。

适用场景:题材炒作退潮期

注意:该策略风险较高,需要严格的止损机制

多因子组合建议

在实际量化模型中,波动率因子通常与以下因子配合使用:

因子组合 效果 典型权重
低波动 + 低估值 (PE/PB) 防御性强,长期稳健 波动率40% + 估值60%
低波动 + 高质量 (ROE) 筛选优质蓝筹 波动率30% + 质量70%
低波动 + 低换手 过滤投机股 波动率50% + 换手率50%
低波动 + 动量 捕捉趋势中的稳健股 波动率30% + 动量70%

⚙️ 实战中的计算方法与工具

以下是用Python计算波动率因子的完整流程,你可以根据自己的需求调整参数:

Step 1:获取数据

使用Python的 aksharetushare 库获取A股日线数据。需要至少60个交易日的收盘价。

Step 2:计算每日收益率

Python代码示例 import pandas as pd
import numpy as np

# 假设df包含'close'列
df['return'] = df['close'].pct_change()
df['volatility'] = df['return'].rolling(60).std() * np.sqrt(242)

Step 3:因子标准化

为了在多因子模型中统一量纲,需要对波动率因子进行标准化处理:

Step 4:因子方向判断

由于低波动率异象的存在,波动率因子通常取负向:即波动率越低,因子得分越高。在多因子模型中,波动率因子的权重系数一般为负值。

🛠️ 实用工具推荐

如果你不想写代码,可以使用以下工具快速计算波动率:

  • 股老师工具页面 —— 内置波动率计算器
  • Excel中的 STDEV.S() 函数计算日收益率标准差
  • 同花顺/东方财富的"波动率"指标(在技术分析指标中可找到)

📋 案例分析

案例一:贵州茅台 vs 某小盘题材股

指标 贵州茅台 (600519) 某小盘题材股
60日年化波动率 22.3% 68.7%
过去1年涨幅 +15.2% +32.8%
最大回撤 -8.5% -35.2%
夏普比率 1.85 0.42
评价 低波动、高质量 高波动、高风险

虽然小盘题材股短期涨幅更大,但其波动率是茅台的3倍,最大回撤也是茅台的4倍。从风险调整后的收益看,茅台的表现远优于题材股。这正是低波动率因子的核心逻辑——稳健增长优于大起大落

案例二:低波动组合 vs 沪深300

我们选取2018年1月至2023年12月的数据,构建一个简单的低波动率组合(选取全市场波动率最低的50只股票,等权配置,月度调仓),对比沪深300指数:

指标 低波动组合 沪深300
累计收益 +68.3% +22.5%
年化收益 +12.1% +4.8%
年化波动率 14.2% 18.6%
最大回撤 -16.8% -28.3%
夏普比率 0.85 0.26

低波动组合在6年间的累计收益是沪深300的3倍,而最大回撤仅为沪深300的60%。这充分说明了低波动率因子在A股市场的有效性。

⚠️ 使用波动率因子的注意事项

1️⃣ 周期选择至关重要

短期波动率(如5日、10日)噪音较大,容易受到个别极端交易日的影响。建议使用60日以上的中长期波动率。在极端行情(如2020年疫情暴跌、2015年股灾)中,短期波动率会急剧放大,此时应谨慎使用。

2️⃣ 低波动不等于低风险

低波动率股票虽然在多数时间表现稳健,但在系统性风险爆发时(如2008年金融危机、2020年3月流动性危机),低波动股票也会出现大幅下跌。低波动率因子提供的是相对收益,而非绝对保本。

3️⃣ 注意因子拥挤

当过多资金追逐低波动率策略时,会导致因子拥挤(Factor Crowding),即低波动股票被高估,策略收益下降。2017-2019年A股"核心资产"行情中,低波动蓝筹股估值大幅提升,后续表现就有所降温。

4️⃣ 结合市场环境

低波动率因子在震荡市和熊市中表现最佳,在牛市中可能跑输高波动股票。如果你的判断是牛市初期,可以适当降低波动率因子的权重。

5️⃣ 避免幸存者偏差

在回测时,注意使用前向填充的方式处理退市股票数据,避免只统计存活下来的股票(幸存者偏差会导致收益被高估)。

📌 总结

波动率因子是量化选股体系中不可或缺的一环。它不仅能帮助投资者识别风险,更能提供稳健的超额收益。建议将波动率因子作为风险控制工具而非单纯的选股指标,与其他因子搭配使用效果更佳。

🔗 相关阅读

想深入了解量化选股和多因子模型?以下内容值得一看:

想系统学习量化投资?查看我们的 完整课程体系,从零开始掌握量化选股技能。

🚀 开始你的量化投资之旅

掌握波动率因子只是第一步。加入股老师,系统学习多因子模型、量化回测、实盘交易等核心技能。

查看课程