4. 波动率分析:历史波动率计算、隐含波动率概念、波动率聚类效应、波动率在仓位管理中的应用
波动率这东西,说白了就是市场的心跳。做量化这几年,我越来越觉得,不懂波动率,仓位管理就是瞎蒙。今天咱们就把这块掰开揉碎了讲清楚。
4.1 历史波动率计算
历史波动率,就是看过去的价格波动有多剧烈。我习惯用对数收益率来计算,这样更符合金融数据的统计特性。
具体步骤其实不复杂:
- 先算每日对数收益率:r = ln(P_t / P_{t-1})
- 然后算这些收益率的样本标准差
- 最后年化一下(乘以根号252)
给你看段我常用的代码:
import numpy as np
import pandas as pd
def historical_volatility(prices, window=20):
"""
计算历史波动率
prices: 价格序列
window: 滚动窗口,默认20个交易日
"""
log_returns = np.log(prices / prices.shift(1))
hv = log_returns.rolling(window=window).std() * np.sqrt(252)
return hv
这里有个坑,我踩过好几次。窗口大小的选择很关键。20天太短,噪声大;60天太长,反应迟钝。我个人习惯用20天和60天两条线一起看,交叉的时候往往意味着趋势要变了。
重要提醒:历史波动率是向后看的,它告诉你过去发生了什么,但未来不一定重复。千万别把它当预测工具用。
4.2 隐含波动率概念
隐含波动率就更有意思了。它不是算出来的,是市场交易出来的。你想想看,期权价格里就藏着市场对未来波动率的预期。
怎么理解?举个例子。假设某股票当前价格100元,一个月的平值期权价格是5元。我们用Black-Scholes公式反推,就能算出隐含波动率。如果算出来是30%,说明市场预期未来一个月该股票的波动率在30%左右。
我在项目中遇到过一件挺有意思的事。2020年3月,标普500的VIX指数飙到80多,但实际波动率才60左右。这说明什么?市场在恐慌,隐含波动率被过度推高了。那时候做期权卖方,收益相当可观。
实战技巧:隐含波动率和历史波动率的差值,我管它叫"波动率溢价"。溢价太高,说明市场过度恐慌,可以考虑做空波动率;溢价太低甚至为负,说明市场太乐观,要小心了。
4.3 波动率聚类效应
这个现象很有意思。你会发现,高波动率的日子总是扎堆出现,低波动率的日子也是。这就是波动率聚类效应。
为什么会这样?说白了,市场有记忆。一次大跌会引发连锁反应,恐慌情绪会蔓延。同样,一段平静期也会让人放松警惕,波动率自然就低了。
我记得2018年2月那次"波动率末日",就是典型的聚类效应。之前几个月VIX一直在10以下趴着,结果突然一天飙到50。很多做空波动率的策略一天就爆仓了。
避坑指南:我曾经以为波动率均值回归很快,结果吃了大亏。实际上,波动率聚类意味着高波动期可能持续很久。做仓位管理时,一定要给波动率变化留出缓冲空间。
处理聚类效应,我推荐用GARCH模型。它能捕捉到波动率的自相关性:
from arch import arch_model
def fit_garch(returns):
"""
拟合GARCH(1,1)模型
"""
model = arch_model(returns * 100, vol='Garch', p=1, q=1)
result = model.fit(disp='off')
return result.conditional_volatility / 100
4.4 波动率在仓位管理中的应用
终于到重点了。波动率怎么用?核心就一句话:波动率高的时候少下注,波动率低的时候多下注。
具体做法,我分享一个自己用了多年的框架:
| 波动率状态 | 仓位比例 | 操作建议 |
|---|---|---|
| 低波动(HV < 15%) | 100% | 正常交易,可适当加杠杆 |
| 中等波动(15% ≤ HV < 30%) | 70% | 降低仓位,控制风险 |
| 高波动(30% ≤ HV < 50%) | 40% | 轻仓操作,快进快出 |
| 极端波动(HV ≥ 50%) | 20% | 观望为主,或做对冲 |
这个框架的核心逻辑是:波动率越高,市场越不确定,你的仓位就应该越小。别想着在高波动时博一把大的,那往往是送人头。
核心公式:目标仓位 = 基准仓位 × (目标波动率 / 当前波动率)
比如你的基准仓位是100万,目标波动率是15%,当前波动率是30%,那么目标仓位 = 100万 × (15% / 30%) = 50万。
嗯,这里要注意。波动率调整不是机械的。我一般会结合隐含波动率一起看。如果历史波动率低但隐含波动率高,说明市场在酝酿大事,我会更保守一些。
最后送你一句话:波动率是你的朋友,不是敌人。学会用它,你的仓位管理会上一个台阶。
我的经验:波动率分析不是一次性工作。我每天开盘前都会看一眼VIX和HV的对比,花不了两分钟,但能帮我避开很多坑。养成习惯,你会感谢自己的。