因子投资-14-低波动特质波动率与流动性

QUANT RESEARCH NOTE LESSON 14

传统直觉认为高风险应有高收益,但经验中低 Beta、低总波动股票有时反而取得更高风险调整收益;高特质波动也常没有得到补偿。与此同时,难交易资产可能要求流动性溢价。波动、Beta、特质波动与流动性相关,却不是同一因子。

类型核心课程
模块经典因子
阅读约 7 分钟
材料10 节 · 1 段代码

本节解决什么问题

传统直觉认为高风险应有高收益,但经验中低 Beta、低总波动股票有时反而取得更高风险调整收益;高特质波动也常没有得到补偿。与此同时,难交易资产可能要求流动性溢价。波动、Beta、特质波动与流动性相关,却不是同一因子。

前置知识与学习目标

需要第 02 讲风险、第 06 讲 CAPM 和第 08 讲交易状态。学完后你应该能:

  • 区分总波动、Beta 和特质波动;
  • 计算 Amihud 非流动性;
  • 解释 BAB 如何对低、高 Beta 组合做杠杆调整;
  • 说明低波动异象的杠杆约束、彩票偏好等解释;
  • 避免把“平均异象”写成“波动越低收益必然越高”。

直觉与手算

股票 A 年化总波动 20%,市场 Beta=1;股票 B 总波动 30%,Beta 也为 1。给定同一个市场因子,B 多出的波动主要是特质部分。CAPM 不为可分散特质风险支付溢价,所以“波动更高”不自动意味着预期收益更高。

某股票一天绝对收益 2%,成交额 1000 万元;Amihud 指标为 0.02/1000 万。另一股票同样变动 2%,成交额 1 亿元,指标只有前者十分之一。它用单位成交额对应的价格变化近似冲击,值越高表示越不流动。

若低 Beta 组合 Beta=0.7、高 Beta 组合 Beta=1.4,BAB 可把低 Beta 腿杠杆到市场 Beta 1(权重约 1/0.7),把高 Beta 腿去杠杆到 1(权重约 1/1.4),再做多前者、做空后者。融资成本和 Beta 估计误差是策略核心,不是附注。

定义与公式

因子接口

定义与公式 5 行 × 7 列
name direction formula rebalance lag economic_story failure_modes
总波动 VOL 低波动方向常为正收益 收益标准差 月 过去 1–12 月 杠杆限制、彩票偏好 状态变化、停牌压低
Beta 低 Beta 方向 cov(Ri,Rm)/var(Rm) 月 滚动窗口 杠杆受限投资者追高 Beta 非同步交易、时变
特质波动 IVOL 经验方向常为低 IVOL 因子回归残差标准差 月 滚动窗口 彩票偏好、信息与套利限制 模型依赖、估计噪声
Amihud ILLIQ 高表示不流动 mean( R /Amount) 月 过去日数据 交易成本和流动性风险 单位、零成交、价格限制
BAB 多低 Beta、空高 Beta 两腿调至相同 Beta 月 Beta 估计窗口 融资约束导致高 Beta 低 Alpha 杠杆、融资、去杠杆崩溃

总波动与 Beta

总波动单位是每期或年化百分比,Beta 无量纲。两者关系还取决于相关性和市场波动:

特质波动

先估因子模型:

再定义:

IVOL 依赖因子模型、窗口、频率和缺失处理。同一股票在 CAPM 和五因子模型下会有不同 IVOL。

Amihud 非流动性

Amount 的单位可能是元、千元或百万元,指标尺度随单位变化。跨数据库比较前必须统一;零成交日不能简单除零或删除而不说明。

BAB

设低、高 Beta 组合收益分别为 R(L)、R(H),估计 Beta 为 β(L)、β(H):

这是简化表达。实际构造包含 Beta 排名、缩减、两腿权重、杠杆和融资收益。目标是比较相同市场 Beta 下低、高 Beta 资产的风险调整表现。

Python 最小实验

PYTHON 可复现实验
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import numpy as np

market = np.array([-0.02, 0.01, 0.03, -0.01, 0.02, 0.00])
noise = np.array([0.005, -0.004, 0.003, -0.003, 0.002, -0.003])
asset = 0.001 + 1.2 * market + noise

X = np.column_stack([np.ones_like(market), market])
alpha, beta = np.linalg.lstsq(X, asset, rcond=None)[0]
residual = asset - X @ np.array([alpha, beta])
ivol = residual.std(ddof=1)
total_vol = asset.std(ddof=1)

amount = np.array([10, 12, 8, 15, 9, 11]) * 1_000_000
illiquidity = np.mean(np.abs(asset) / amount)

assert total_vol > ivol
print(alpha, beta, total_vol, ivol, illiquidity)

样本只有 6 天且噪声人为构造,不能估真实 IVOL;它只验证“先回归、再对残差求波动”的步骤。

A 股实现注意事项

  1. 停牌压低波动。 前向填价产生零收益会让低流动、停牌股票看似低波动;复牌跳跃和无法退出必须进入风险。
  2. 涨跌停截断。 单日价格限制把价值调整延后,使日波动和 Amihud 同时受制度影响。
  3. 非同步交易。 低频成交会低估与市场的同期 Beta;可检查滞后市场收益、周频 Beta 和缩减估计。
  4. 成交额单位。 元与千元使 Amihud 相差千倍。指标排名可能不变,但解释、阈值和跨源复现会失败。
  5. 自由流通与容量。 高成交额不代表大资金可无冲击交易;应结合自由流通市值、参与率、价差和订单簿。
  6. 融资融券。 BAB 的空头和杠杆在 A 股受标的、保证金、借券与融资成本限制;研究因子不等于可执行组合。
  7. Beta 缩减。 短窗口估计极端 Beta 常是噪声。向 1 或截面均值缩减需事前设定,并做窗口敏感性。
  8. 危机去杠杆。 低 Beta 杠杆腿在融资收紧时可能被迫卖出;平均低波动不表示压力期安全。

常见错误与边界

  • 把低总波动、低 Beta、低 IVOL 当作同一排序。
  • 用未来整段收益估计历史每月波动和 Beta。
  • 停牌日填零后不报告停牌比例。
  • Amihud 不记录成交额单位,或删除零成交日。
  • BAB 忽略融资利率、杠杆上限和空头成本。
  • 看到低波动平均收益更高,就写成每个时期单调必然关系。
  • 用单一因子模型定义 IVOL,再把遗漏因子收益误称特质。

低波动异象可能来自杠杆约束、基准委托、彩票偏好、卖空限制和统计偏差;流动性溢价可能补偿交易成本或流动性在坏状态恶化的风险。单个平均 H-L 无法区分机制。

原书与论文

原书第 3 章(PDF 文件页 97–157)讨论波动率、Beta 和流动性类因子,第 4、5 章(158–223)连接组合与实践。

Frazzini 与 Pedersen(2014)系统提出 BAB:DOI 10.1016/j.jfineco.2013.10.005。阅读时重点检查 Beta 缩减、两腿杠杆、融资假设和压力期表现,而不只看平均 Alpha。

练习

  1. 构造相同总波动但相关性不同的两只股票,计算 Beta。
  2. 分别用 CAPM、市场+行业模型估同一股票 IVOL,解释差异。
  3. 将成交额从元改为千元,验证 Amihud 尺度变化并设计单位元数据。
  4. 对停牌日分别填零、缺失并加入复牌收益,比较 VOL 与 ILLIQ。
  5. 给低 Beta 腿设 120% 杠杆上限、空头腿设借券费,重算 BAB。
  6. 检验低波动收益是否集中于微盘、无法卖空或高估值股票。

小结与下一步

总波动描述全部收益离散,Beta 描述市场敏感度,IVOL 描述给定模型后的残差波动,Amihud 近似单位成交额价格冲击。BAB 用杠杆调整比较低、高 Beta。它们相关但口径不同,任何“低风险高收益”都必须经过交易、状态与模型依赖检验。

实验 05 将把价值与动量放入独立 3×3 双排序,观察单因子和联合控制后的边际收益与换手。


因子投资-14-低波动特质波动率与流动性
https://www.polarishaw.top/2026/07/17/因子投资-14-低波动特质波动率与流动性/
作者
Polaris
发布于
2026年7月17日
许可协议