1. 波动率基础:什么是波动率?历史波动率与隐含波动率的定义与区别

做量化交易这些年,我见过太多人一上来就盯着价格看。其实真正懂行的人,第一眼看的是波动率。为什么?因为价格是表象,波动率才是灵魂。

说白了,波动率就是资产价格上下跳动的幅度。你想想看,一只股票一天涨跌1%,和一天涨跌5%,背后的交易逻辑完全不同。前者可能是正常波动,后者可能出了大事。

1.1 波动率的数学定义

从数学上讲,波动率是收益率的标准差。嗯,这里要注意,我们用的是对数收益率,不是简单收益率。

import numpy as np

# 假设我们有一串收盘价
prices = [100, 102, 101, 105, 107, 106, 110]

# 计算对数收益率
log_returns = np.diff(np.log(prices))

# 计算波动率(日度)
daily_vol = np.std(log_returns, ddof=1)

# 年化波动率
annual_vol = daily_vol * np.sqrt(252)

print(f"日度波动率: {daily_vol:.4f}")
print(f"年化波动率: {annual_vol:.4f}")

我个人习惯用年化波动率来交流,因为不同时间频率的数据可以统一比较。比如日度数据乘以√252,周度数据乘以√52,月度数据乘以√12。

核心公式:

年化波动率 = 日度波动率 × √252

这里的252是A股一年的交易日数,美股用252,港股用250左右。

1.2 历史波动率:回头看

历史波动率,就是拿过去的数据算出来的波动率。它告诉你「过去发生了什么」。

我在项目中遇到过一个问题:用30天还是60天的窗口算历史波动率?这其实没有标准答案。短窗口反应快但噪音大,长窗口平滑但滞后。

我的经验:

做短线策略用20天窗口,做中线用60天,做长线用120天。没有绝对的对错,关键是要和你的策略周期匹配。

历史波动率的计算步骤很简单:

  1. 取过去N天的收盘价
  2. 计算每日对数收益率
  3. 计算这些收益率的标准差
  4. 年化处理

但这里有个坑——你用什么频率的数据?日线、小时线、还是分钟线?我曾经用5分钟线算波动率,结果发现噪音太大,反而不如日线好用。

1.3 隐含波动率:向前看

隐含波动率就不一样了。它是从期权价格里反推出来的波动率。说白了,就是市场「认为」未来会波动成什么样。

为什么叫「隐含」?因为它藏在期权价格里,你看不到,得用模型把它挖出来。

from scipy.stats import norm
from scipy.optimize import brentq

def black_scholes_call(S, K, T, r, sigma):
    """BS模型计算看涨期权价格"""
    d1 = (np.log(S/K) + (r + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
    d2 = d1 - sigma*np.sqrt(T)
    return S*norm.cdf(d1) - K*np.exp(-r*T)*norm.cdf(d2)

def implied_volatility(market_price, S, K, T, r):
    """用二分法反推隐含波动率"""
    def f(sigma):
        return black_scholes_call(S, K, T, r, sigma) - market_price
    
    try:
        return brentq(f, 0.01, 2.0)
    except:
        return np.nan

# 示例:假设期权市价为5.2,标的现价100,行权价105,剩余30天,无风险利率3%
S, K, T, r = 100, 105, 30/365, 0.03
market_price = 5.2

iv = implied_volatility(market_price, S, K, T, r)
print(f"隐含波动率: {iv:.2%}")

注意:

隐含波动率不是真实波动率,它是市场情绪的反映。有时候市场恐慌,隐含波动率会飙升,但实际波动可能没那么大。

1.4 两者的核心区别

我把它们的区别整理成了一张表,这样更直观:

维度 历史波动率 隐含波动率
数据来源 历史价格数据 期权市场价格
时间方向 向后看(过去) 向前看(未来)
计算方式 直接计算标准差 通过期权定价模型反推
反映内容 实际发生的波动 市场预期的波动
主要用途 风险评估、回测 定价、套利、情绪判断

你想想看,如果历史波动率是20%,隐含波动率是30%,这意味着什么?市场预期未来会比过去更动荡。这时候做波动率套利就有机会了。

1.5 为什么波动率这么重要?

我记得刚入行时,带我的老交易员说过一句话:「价格会骗人,但波动率不会。」当时不太理解,后来做多了才明白。

举个例子:某只股票从100涨到110,看起来是好事。但如果它的波动率从20%飙到了50%,说明这波上涨很不稳定,随时可能回调。只看价格的人会追高,看波动率的人会谨慎。

波动率套利的本质,就是利用历史波动率和隐含波动率之间的差异。当隐含波动率明显高于历史波动率时,你可以卖出期权赚取溢价;反过来,当隐含波动率被低估时,你可以买入期权。

核心逻辑:

波动率套利 = 发现「预期」与「现实」的偏差

隐含波动率是市场预期,历史波动率是现实参考

两者差距越大,套利空间越大

1.6 知识体系总览

下面这张图是我自己画的,把波动率的核心知识串起来了。你看一遍就能明白整个框架:

波动率知识体系 波动率定义 历史波动率 隐含波动率 计算方式:标准差 时间方向:向后看 计算方式:BS模型反推 时间方向:向前看 风险评估 / 回测 定价 / 套利 / 情绪 核心:发现预期与现实的偏差

这张图把波动率分成了两大块:左边是历史波动率,右边是隐含波动率。它们各自的计算方式、时间方向、应用场景都不同。但最终都指向同一个目标——找到套利机会。

一个小技巧:

刚开始做波动率分析时,别急着上复杂模型。先把历史波动率和隐含波动率画在一张图上,看看它们的差值。差值大的地方,往往就是机会所在。

好了,波动率的基础就讲到这里。记住一句话:波动率不是数字,是市场的呼吸。读懂它,你就能听懂市场在说什么。

专注资料整理