14、波动率与信息:已实现波动率、隐含波动率的信息含量、波动率微笑与偏斜、波动率风险溢价
波动率这东西,我做了十年交易,越做越觉得它有意思。很多人盯着价格看,其实价格里藏着的秘密,远不如波动率多。今天咱们就聊聊,波动率到底能告诉我们什么信息。
14.1 已实现波动率:过去发生了什么
已实现波动率,说白了就是「已经发生的波动」。它衡量的是过去一段时间里,资产价格实际波动的剧烈程度。我个人习惯用5分钟高频数据来计算,这样能捕捉到日内的大部分波动信息。
计算方式其实不复杂:
# 已实现波动率计算(5分钟频率)
import numpy as np
import pandas as pd
def realized_volatility(price_series, freq='5min'):
# 计算对数收益率
log_returns = np.log(price_series / price_series.shift(1))
# 去掉NaN
log_returns = log_returns.dropna()
# 已实现方差
rv = np.sum(log_returns ** 2)
# 年化已实现波动率
rv_annual = np.sqrt(rv * 252)
return rv_annual
嗯,这里要注意:采样频率越高,对微观结构的噪声越敏感。我曾在项目中遇到过用tick级数据算波动率,结果噪声比信号还大,后来老老实实改回5分钟频率。
关键点:已实现波动率是后验的,它告诉我们「市场已经发生了什么」。但它有个致命缺陷——无法预测未来。
14.2 隐含波动率:市场在预期什么
隐含波动率就不一样了。它是从期权价格里反推出来的,反映的是市场对未来波动的一致预期。你想想看,期权交易者愿意花多少钱买保护,这本身就包含了大量信息。
计算隐含波动率需要解一个非线性方程:
from scipy.optimize import brentq
from scipy.stats import norm
def implied_volatility(option_price, S, K, T, r, option_type='call'):
"""使用二分法求解隐含波动率"""
def bs_price(sigma):
d1 = (np.log(S/K) + (r + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
d2 = d1 - sigma*np.sqrt(T)
if option_type == 'call':
price = S*norm.cdf(d1) - K*np.exp(-r*T)*norm.cdf(d2)
else:
price = K*np.exp(-r*T)*norm.cdf(-d2) - S*norm.cdf(-d1)
return price - option_price
try:
iv = brentq(bs_price, 0.01, 2.0)
return iv
except:
return np.nan
个人经验:隐含波动率往往比已实现波动率高,尤其是在市场恐慌时。我曾经在2015年股灾期间观察过,隐含波动率一度飙到已实现波动率的2倍以上。这说明什么?市场在给不确定性定价时,总是倾向于保守。
14.3 波动率微笑与偏斜:市场情绪的密码
如果市场是完美的,不同行权价的期权应该隐含相同的波动率。但现实不是这样。你会发现,虚值看跌期权的隐含波动率往往更高——这就是波动率微笑和偏斜。
为什么会这样?我个人的理解是:
- 波动率微笑:极端行权价的IV高于平值IV,像个笑脸。这反映了市场对尾部风险的担忧。
- 波动率偏斜:看跌端IV明显高于看涨端,说明市场更害怕暴跌而非暴涨。
我曾在项目中用以下代码来量化偏斜程度:
def skew_measure(iv_puts, iv_calls, moneyness):
"""计算波动率偏斜指标"""
# 选取25-delta的看跌和看涨期权
put_25 = np.interp(0.25, moneyness, iv_puts)
call_25 = np.interp(0.25, moneyness, iv_calls)
# 偏斜 = 看跌IV - 看涨IV
skew = put_25 - call_25
return skew
避坑指南:我曾经犯过一个错误——直接用平值附近的IV来代表整个波动率曲面。结果在极端行情下,这个指标完全失效。记住,波动率微笑的形态本身就是一个重要的信息变量。
14.4 波动率风险溢价:谁在为不确定性买单
波动率风险溢价,就是隐含波动率和已实现波动率之间的差值。说白了,这是期权卖方收取的「风险补偿」。
我习惯这样理解:
- 如果IV > RV,说明市场在支付溢价来对冲风险
- 如果IV < RV,说明市场低估了风险(这种情况很少见)
实际交易中,这个溢价是持续存在的。我统计过标普500指数过去10年的数据,平均波动率风险溢价大约在3-5个波动率点。这意味着什么?长期做空波动率是有正期望收益的——但前提是你扛得住黑天鹅。
核心结论:波动率风险溢价是市场对不确定性定价的「超额部分」。它包含了投资者的风险厌恶情绪、对冲需求以及市场微观结构的影响。
14.5 知识体系总览
下面这张图,是我自己梳理的波动率与信息的关系框架。你看完应该能有个整体把握:
你看这张图就清楚了:已实现波动率和隐含波动率是两条腿,波动率微笑与偏斜是情绪的放大器,而波动率风险溢价则是最终的「定价结果」。做交易时,我习惯把这四个维度结合起来看,而不是孤立地盯某一个指标。
我的习惯:每天早上开盘前,我会先看一眼波动率曲面的形态。如果偏斜突然变大,说明市场在酝酿什么。这时候我会更谨慎,减少方向性头寸,增加对冲。
好了,波动率与信息的关系,咱们就聊到这儿。记住一句话:波动率不是风险本身,而是市场对风险的定价。读懂这个定价,你就能比别人多看到一层信息。