28. 波动率曲面与波动率因子:波动率因子在资产定价中的应用
聊到波动率因子,我得先说说自己的一个认知转变。刚入行那几年,我总觉得波动率就是个风险指标,用来算算VaR、调调保证金就完事了。后来做期权做深了才发现——波动率本身,就是一种可以交易的因子。而且,它在资产定价里的角色,远比大多数人想象的要复杂。
波动率因子到底是什么?
说白了,波动率因子不是指某个具体的波动率数值,而是波动率在横截面上的系统性差异。你想想看,同样是一篮子股票,为什么有些股票的隐含波动率总是比别的贵?为什么低波动股票组合长期跑赢高波动股票组合?这些现象背后,就是波动率因子在起作用。
我个人习惯把波动率因子分成两类:
- 时序因子:VIX指数本身、VIX期货期限结构斜率、波动率风险溢价
- 横截面因子:个股/行业间的波动率差异、低波异象、波动率偏度
嗯,这里要注意,这两类因子在定价模型里的用法完全不同。
波动率因子如何进入定价模型?
传统的CAPM模型里,只有市场beta一个因子。后来Fama-French加了规模和价值,再后来动量、质量、低波都进来了。但你会发现——波动率因子其实是个"隐变量"。
为什么这么说?
举个例子。我在做多因子选股模型时发现,低波动率股票组合的夏普比率往往比高波动组合高出不少。这不是偶然,而是有行为金融学解释的:投资者普遍存在"彩票偏好",喜欢追高波动、高偏度的股票,导致这些股票被高估,未来收益反而低。
所以,波动率因子在定价中的应用,核心就两个方向:
- 作为风险因子:波动率本身是系统性风险的代理变量
- 作为错误定价因子:利用波动率异象获取超额收益
关键认知:波动率因子不是"波动率越高风险越大"这么简单。它反映的是市场参与者对不确定性的定价偏差。你如果能识别这种偏差,就能找到alpha。
波动率曲面如何映射到因子?
这里我要画一张图,帮你理清波动率曲面和波动率因子之间的关系。
这张图其实概括了我做波动率因子研究的整个流程。从曲面数据出发,提取出有经济含义的因子,再把这些因子塞进定价模型里。每一步都有坑,我一个个说。
实战:波动率因子在期权定价中的应用
我记得有一次做VIX期权定价,发现直接用BS模型怎么都对不上市场价。后来把波动率曲面拆成三个因子——水平因子、斜率因子、曲率因子——再用PCA降维,效果就好多了。
具体怎么做?
第一步,从曲面数据中提取因子载荷矩阵。假设我们有T个交易日,每个交易日有N个隐含波动率观测值(不同期限×不同行权价),那么我们可以做PCA:
import numpy as np
from sklearn.decomposition import PCA
# 假设 iv_matrix 是 T x N 的隐含波动率矩阵
pca = PCA(n_components=3)
factor_loadings = pca.fit_transform(iv_matrix)
# 前三个主成分解释的方差比例
print(pca.explained_variance_ratio_)
# 通常第一个因子(水平)解释80%+,第二个(斜率)10%+,第三个(曲率)5%左右
第二步,把这些因子作为解释变量,放入资产定价模型。比如,我们可以检验这些波动率因子是否对股票收益有显著的横截面解释力:
# 假设 returns 是股票收益,factors 是波动率因子载荷
# 做Fama-MacBeth回归
import statsmodels.api as sm
# 第一步:时间序列回归,估计因子暴露
# 第二步:横截面回归,估计因子溢价
# 代码略,核心是检验因子载荷的显著性
我的经验:波动率因子的第一个主成分(水平因子)往往和市场整体波动水平高度相关。但真正有意思的是第二个和第三个主成分——它们捕捉的是期限结构和偏度信息,这些才是alpha的来源。
避坑指南
我曾经在波动率因子回测上栽过一个大跟头。当时用历史数据拟合了一个看起来很漂亮的波动率因子模型,样本内夏普比率高达2.0。结果一上实盘,直接亏了三个月。
问题出在哪?
- 幸存者偏差:回测时用了存活至今的股票,忽略了退市的
- 前视偏差:因子构建时无意中用了未来信息
- 因子拥挤:当太多人用同一个因子时,alpha会迅速衰减
所以我现在做波动率因子研究,一定会做三件事:
- 用滚动窗口做样本外测试
- 加入交易成本(波动率因子换手率通常不低)
- 做因子相关性分析,避免多重共线性
警告:波动率因子在低波动率环境下表现通常不错,但在市场剧烈波动时(比如2020年3月),因子之间的相关性会急剧上升,导致模型失效。一定要做压力测试。
波动率因子在波动率指数交易中的特殊应用
回到我们课程的主题——波动率指数交易。波动率因子在这里的应用更直接:
| 因子类型 | 具体指标 | 交易应用 |
|---|---|---|
| 水平因子 | VIX绝对水平 | 判断波动率高低区间,做均值回复 |
| 斜率因子 | VIX期货期限结构 | 升贴水交易,展期收益策略 |
| 曲率因子 | VIX期权偏度 | 尾部风险对冲,黑天鹅策略 |
| 波动率风险溢价 | 隐含波动率 - 已实现波动率 | 波动率套利,做空波动率 |
我个人最常用的是斜率因子。你想想看,当VIX期货处于深度升水(contango)时,做空波动率指数的展期收益非常可观。但反过来,当贴水(backwardation)出现时,往往意味着市场恐慌,这时候做多波动率反而更安全。
嗯,这里有个细节要注意:斜率因子本身也会均值回复。我见过太多交易员在contango最高点冲进去做空,结果被一波急涨打爆。所以,波动率因子不是简单的"高抛低吸",而是要结合曲面形态和宏观环境综合判断。
最后说一句,波动率因子在资产定价中的应用,本质上是在回答一个问题:市场对不确定性的定价是否合理?如果你能找到定价偏差,就能赚钱。但别忘了,市场也在进化,因子会失效,模型需要迭代。保持敬畏,持续学习,这才是做波动率交易该有的态度。