波动率基础:什么是波动率?
做量化交易这些年,我见过太多人一上来就研究各种复杂策略,结果连波动率都没搞明白。说实话,波动率这东西,就像做菜时的火候——你控制不好它,再好的食材也得糊锅。
今天咱们就聊聊波动率的本质。别怕,我不会扔一堆数学公式吓唬你。我会用我踩过的坑,帮你把这事理清楚。
波动率的直觉理解
先问个问题:为什么有的股票一天能涨5%,有的一个月才动1%?
答案就是波动率。它衡量的是资产价格变动的剧烈程度。说白了,就是价格上蹿下跳的幅度。
我刚开始做市时,遇到过一只冷门股。它的波动率极低,一天波动不到0.1%。我按常规策略挂了单,结果一整天都没成交。后来我才意识到——波动率太低,做市商根本赚不到差价。
核心观点:波动率不是风险本身,而是价格不确定性的度量。高波动率意味着价格可能大幅波动,但不代表一定会亏钱。
波动率的数学定义
数学上,波动率通常用收益率的标准差来表示。公式长这样:
σ = √( (1/(n-1)) * Σ(rᵢ - r̄)² )
其中:
- rᵢ 是第 i 天的收益率
- r̄ 是平均收益率
- n 是样本数量
嗯,这里要注意:我们算的是收益率的标准差,不是价格的标准差。为什么?因为价格不平稳,收益率才相对稳定。我见过有人直接用价格算波动率,结果算出来的值完全没意义。
小技巧:实际计算时,我习惯用对数收益率 ln(Pᵢ/Pᵢ₋₁),而不是简单收益率。对数收益率在时间上可加,处理起来更方便。
波动率的三种分类
做量化的人,嘴里常挂着三种波动率。它们各有各的用处,千万别搞混。
| 类型 | 定义 | 计算方式 | 用途 |
|---|---|---|---|
| 历史波动率 | 基于过去价格数据计算 | 用过去N天的收益率标准差 | 回测、风险评估 |
| 隐含波动率 | 从期权价格反推 | 用BS模型反解 | 市场情绪、定价 |
| 已实现波动率 | 高频数据计算的真实波动 | 用日内分钟级数据 | 实时监控、策略调整 |
历史波动率
历史波动率,说白了就是「回头看」。它告诉你过去一段时间价格是怎么动的。
计算时有个关键参数:窗口期。用20天还是60天?我个人的经验是:
- 短线策略用10-20天
- 中线策略用30-60天
- 长线策略用90-120天
我曾经犯过一个错:用60天窗口算波动率,结果策略在行情突变时反应迟钝。后来改成20天和60天加权平均,效果好了不少。
注意:历史波动率是滞后的。它只能告诉你过去发生了什么,不能预测未来。市场风格切换时,历史波动率会严重失真。
隐含波动率
隐含波动率就有点意思了。它不是算出来的,而是从期权价格里「挖」出来的。
你想想看,期权价格里包含了市场对未来波动的预期。我们用BS模型反着算,就能得到这个预期值。
隐含波动率有个特点:它通常比历史波动率高。为什么?因为市场总是为不确定性支付溢价。我见过极端情况,某只股票历史波动率才20%,隐含波动率却飙到80%。那说明市场在恐慌。
# 用Python反算隐含波动率(简化版)
from scipy.stats import norm
import numpy as np
def implied_vol(S, K, T, r, market_price):
# 用二分法求解
low, high = 0.01, 2.0
for _ in range(100):
mid = (low + high) / 2
d1 = (np.log(S/K) + (r + mid**2/2)*T) / (mid*np.sqrt(T))
d2 = d1 - mid*np.sqrt(T)
price = S*norm.cdf(d1) - K*np.exp(-r*T)*norm.cdf(d2)
if price > market_price:
high = mid
else:
low = mid
return (low + high) / 2
实战经验:隐含波动率是很好的情绪指标。当它突然飙升时,往往意味着市场要出大事。我在2020年3月就靠这个信号提前减了仓。
已实现波动率
已实现波动率,也叫RV。它用的是高频数据,比如每分钟的价格。
计算方式很简单:把一天内所有分钟收益率的平方加起来,再开根号。公式:
RV = √( Σ rᵢ² )
这里 rᵢ 是每分钟的收益率。注意,这里不用减去均值,因为高频数据的均值几乎为0。
我为什么强调已实现波动率?因为它最真实。历史波动率是日级别的,太粗糙。已实现波动率能捕捉到盘中的剧烈波动。
举个例子:某天开盘暴跌,收盘又拉回来。日收益率可能只有-1%,但盘中波动可能超过5%。历史波动率完全反映不出来,但已实现波动率能。
关键区别:
- 历史波动率:日频,滞后,适合回测
- 隐含波动率:前瞻,反映预期,适合定价
- 已实现波动率:高频,实时,适合做市
三种波动率的关系
它们不是孤立的。实际做策略时,我通常这样用:
- 用历史波动率做基准
- 用隐含波动率判断市场情绪
- 用已实现波动率做实时调整
比如,当隐含波动率远高于已实现波动率时,说明期权被高估了。这时候卖出期权,赚取波动率溢价,是个不错的策略。
反过来,如果已实现波动率突然飙升,而隐含波动率还没跟上,那就是买入期权的好时机。
避坑指南
最后,分享几个我踩过的坑:
- 不要只看一种波动率。我曾经只盯着历史波动率,结果市场风格突变,策略直接崩了。三种波动率要结合起来看。
- 注意数据频率。用日线算波动率,和用分钟线算,结果可能差好几倍。选什么频率,取决于你的策略周期。
- 小心极端值。某天出现异常波动,会严重扭曲波动率。我习惯用截尾均值或者中位数来替代。
- 波动率是均值回归的。高波动率之后往往跟着低波动率,反之亦然。这个特性在做策略时非常有用。
重要提醒:波动率不是万能的。它只是工具,不是圣杯。再好的波动率模型,也预测不了黑天鹅事件。做市策略的核心,永远是风险管理。
好了,波动率的基础就聊到这。记住一句话:波动率是你做市策略的「油门」——踩得太猛容易翻车,踩得太轻赚不到钱。学会自适应调整,才是关键。