波动率基础与度量方法
各位同学,咱们今天聊波动率。说实话,这东西在国债期货做市里,比价格本身还重要。你想想看,价格是表面,波动率才是灵魂。我做了这么多年量化,见过太多人盯着价格看,结果被波动率坑得血本无归。
今天这一章,咱们把波动率的几个核心概念掰开揉碎。历史波动率、已实现波动率、隐含波动率,还有那个让人又爱又恨的波动率微笑和期限结构。嗯,内容不少,但都是基本功。
一、波动率到底是什么?
先问个问题:波动率是啥?说白了,就是资产价格变动的剧烈程度。国债期货一天波动0.1%算正常,但要是突然跳到0.5%,那你就得小心了。
我个人习惯把波动率分成三类:
- 历史波动率:过去的数据算出来的,像后视镜
- 已实现波动率:高频数据算出来的,更精细
- 隐含波动率:从期权价格反推的,反映市场预期
这三者各有各的用处。做市的时候,我经常拿历史波动率当基准,用已实现波动率做风控,再拿隐含波动率判断市场情绪。缺一个都不行。
核心观点:波动率不是风险本身,而是风险的价格。做市商赚的就是波动率定价的差价。
二、历史波动率的计算
历史波动率,说白了就是过去一段时间价格波动的标准差。公式很简单:
σ = sqrt( 1/(n-1) * Σ(ln(P_t / P_{t-1}) - μ)² )
其中P_t是t时刻的价格,μ是对数收益率的均值。嗯,这里要注意,我们用的是对数收益率,不是简单收益率。为什么?因为对数收益率可加,而且更符合正态分布假设。
我在项目中遇到过一个问题:用日数据算历史波动率,结果发现跟实际交易对不上。后来才发现,日数据太粗糙了。你想想看,一天之内价格可能波动好几次,但日收盘价只记录一个点。所以,我建议做市的时候至少用30分钟或1小时的数据。
实战技巧:计算历史波动率时,窗口期选20天还是60天?我个人习惯做市用20天,因为国债期货的波动率变化快,长窗口反应太慢。
三、已实现波动率
已实现波动率,这个更高级一点。它用的是高频数据,比如每5分钟或每1分钟的价格。公式是:
RV = sqrt( Σ(r_i²) )
其中r_i是每个时间间隔的对数收益率。注意,这里没有减去均值,因为高频数据下均值趋近于0。
我记得有一次做回测,用日数据算的波动率跟实际交易成本对不上。后来换成已实现波动率,一下子就准了。为什么?因为做市商赚的是高频的价差,低频数据根本捕捉不到。
避坑指南:我曾经用1分钟数据算已实现波动率,结果发现噪音太大。后来改成5分钟,效果好了很多。高频数据不是越细越好,要平衡精度和噪音。
四、隐含波动率
隐含波动率,这个就有点玄学了。它是从期权价格反推出来的。你想想看,期权价格是市场交易出来的,那隐含波动率就是市场对未来的预期。
公式?其实没有显式公式。BS模型里,波动率是输入,价格是输出。隐含波动率就是反过来:给定价格,反推波动率。一般用牛顿迭代法或者二分法。
# 二分法求隐含波动率
def implied_volatility(price, S, K, T, r, option_type):
low, high = 0.01, 2.0
for _ in range(100):
mid = (low + high) / 2
est_price = bs_price(S, K, T, r, mid, option_type)
if est_price > price:
high = mid
else:
low = mid
return (low + high) / 2
这段代码看起来简单,但实际用的时候要注意收敛速度。我一般用牛顿法,但初始值要选好,不然容易发散。
五、波动率微笑与期限结构
这两个概念,是波动率模型的核心。咱们先看微笑。
波动率微笑:不同行权价的期权,隐含波动率不一样。一般来说,平值期权波动率最低,两边高。为什么?因为市场预期极端行情发生的概率比正态分布高。
国债期货的波动率微笑,跟股票不太一样。国债的尾部风险小一些,所以微笑没那么明显。但做市的时候,还是要关注。我记得有一次,国债期货的波动率微笑突然变得很陡,结果第二天就出了个重大政策。嗯,市场提前反应了。
波动率期限结构:不同到期日的期权,隐含波动率也不一样。一般来说,短期波动率高,长期波动率低。但也有倒挂的时候,比如市场预期近期有大波动。
我建议做市的时候,每天都要看波动率期限结构。如果发现异常,比如短期波动率突然飙升,那就要调整做市策略了。
实战要点:波动率微笑和期限结构,本质上是市场情绪的映射。做市商要做的,就是利用这些结构进行套利或对冲。
六、知识体系图
下面这张图,是我自己画的波动率知识体系。你看一眼,就能明白今天讲的内容是怎么串起来的。
七、总结与实战建议
好了,今天的内容就这些。咱们回顾一下:
- 历史波动率看过去,已实现波动率看当下,隐含波动率看未来
- 计算的时候注意数据频率和窗口期
- 波动率微笑和期限结构,是市场情绪的晴雨表
我个人建议,刚开始做市的时候,先把历史波动率和已实现波动率搞明白。隐含波动率可以慢慢来,但一定要理解它的含义。我曾经见过一个新手,把隐含波动率当成了历史波动率来用,结果亏了不少。嗯,这个坑你们别踩。
最后说一句:波动率这东西,看似简单,实则深不见底。但只要你把基础打牢了,后面的模型和策略就水到渠成。
课后练习:找一份国债期货的日数据,分别用20天和60天窗口计算历史波动率,看看有什么区别。再用5分钟数据算已实现波动率,对比一下。