2. 隐含波动率与历史波动率:IV与HV的定义、计算方式、两者关系及背离信号

波动率交易里,有两个最基础也最绕不开的概念——隐含波动率(IV)历史波动率(HV)。很多人刚接触时容易搞混,觉得都是波动率,有什么区别?

我刚开始做期权交易那会儿,也犯过这个错。有一次我盯着一个期权价格,觉得它太贵了,就做空波动率。结果市场一波动,IV直接飙上天,我亏得那叫一个惨。后来我才明白:IV是市场情绪,HV是历史事实。两者根本不是一回事。

今天我们就来彻底讲清楚这两个概念。你想想看,搞懂了它们,你就能看懂市场在「赌」什么,也能找到交易机会。

2.1 历史波动率(HV)—— 过去的真实波动

历史波动率,说白了就是过去一段时间里,资产价格实际波动的剧烈程度。它反映的是「已经发生的事」。

计算方式其实不复杂。我习惯用对数收益率的标准差来算,然后年化一下。具体步骤是这样的:

  1. 取过去N天的收盘价,计算每日对数收益率:ln(P_t / P_{t-1})
  2. 计算这些收益率的标准差
  3. 乘以年化因子(比如日数据就乘以√252)

嗯,这里要注意:N的选择很关键。我个人习惯用20天(约一个月)和60天(一个季度)两个窗口。20天HV对短期波动敏感,60天HV更平滑,能看出趋势。

给你看个代码示例,这是我常用的计算方式:

import numpy as np
import pandas as pd

def calc_hv(price_series, window=20, annual_factor=252):
    """
    计算历史波动率
    price_series: 收盘价序列
    window: 滚动窗口天数
    """
    log_returns = np.log(price_series / price_series.shift(1))
    hv = log_returns.rolling(window=window).std() * np.sqrt(annual_factor)
    return hv

# 使用示例
prices = pd.Series([100, 102, 101, 105, 103, ...])  # 你的价格数据
hv_20 = calc_hv(prices, window=20)
hv_60 = calc_hv(prices, window=60)
我的经验:计算HV时,记得剔除异常值。比如某天因为分红或拆股导致价格跳空,那天的收益率会严重失真。我一般会先做数据清洗,把这种「假波动」去掉。

2.2 隐含波动率(IV)—— 市场在赌什么

隐含波动率就完全不一样了。它不是算出来的,而是从期权价格里反推出来的

怎么理解?你把期权价格想象成一个黑箱。你知道标的资产价格、行权价、剩余时间、无风险利率,这些都能从市场上拿到。唯一不知道的就是波动率。那好,我们把期权价格代入Black-Scholes模型,反解出那个让模型价格等于市场价格的波动率——这就是IV。

说白了,IV是市场对未来波动的一致预期。它反映了市场情绪:恐慌时IV飙升,平静时IV回落。

计算IV没有解析解,得用数值方法。我常用牛顿迭代法:

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

def bs_call_price(S, K, T, r, sigma):
    """Black-Scholes 看涨期权定价"""
    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 bs_call_price(S, K, T, r, sigma) - market_price
    try:
        return brentq(f, 0.01, 5.0)  # 在0.01到5.0之间找根
    except:
        return np.nan
避坑指南:我曾经遇到过一个问题——深度实值或深度虚值的期权,IV计算容易发散。原因是这些期权的时间价值很小,价格对波动率不敏感。我的建议是:只计算平值附近(ATM)的IV,或者用加权平均的方式处理。

2.3 IV与HV的关系 —— 预期 vs 现实

搞清楚了定义,我们来看看两者的关系。其实就一句话:IV是市场对未来的赌注,HV是已经发生的现实

正常情况下,IV会略高于HV。为什么?因为市场总是为不确定性支付溢价。就像买保险一样,你付的保费总是略高于预期损失。

但两者之间有个重要的关系:均值回归。当IV远高于HV时,说明市场过度恐慌,IV大概率会回落。反过来,当IV远低于HV时,说明市场过于乐观,IV大概率会上升。

我画了一张图,帮你直观理解这个关系:

IV与HV关系示意图 时间 波动率 (%) HV(历史波动率) IV(隐含波动率) 背离区 背离区 均值 • 当IV远高于HV(背离区):市场过度恐慌,IV可能回落 • 当IV远低于HV(背离区):市场过于乐观,IV可能上升 • 两者长期围绕均值波动,存在均值回归特性

2.4 背离信号 —— 交易机会在哪里

好了,重点来了。IV和HV的背离,就是我们的交易信号。

什么叫背离?就是IV和HV的走势出现明显分化。比如HV在下降(实际波动在减小),但IV在上升(市场预期波动在增大)。或者反过来。

我总结了几种常见的背离模式:

背离类型 HV走势 IV走势 市场含义 交易策略
恐慌背离 下降或平稳 快速上升 市场过度恐慌,预期波动远大于实际 做空波动率(卖出期权)
乐观背离 上升或平稳 快速下降 市场过于乐观,低估了实际波动 做多波动率(买入期权)
趋势背离 持续上升 持续下降 趋势可能反转,市场预期错误 谨慎观望或反向操作

核心逻辑:IV最终会向HV回归。当两者背离时,就是交易波动率回归的机会。但要注意——背离可能持续很长时间,不要急着入场。

我记得有一次做原油期权交易,HV已经降到20%了,但IV还在35%以上。我当时觉得背离太明显了,就做空了波动率。结果呢?中东局势突然紧张,IV直接飙到50%。我差点爆仓。

所以我的经验是:背离信号要结合基本面来看。如果市场恐慌是有原因的(比如地缘政治、财报季),那IV可能还会继续涨。这时候做空波动率就是接飞刀。

2.5 实战中的量化指标

光看图形还不够,我们需要量化指标来辅助判断。我常用两个指标:

1. IV-HV 差值

直接计算IV减去HV。差值越大,说明市场越恐慌。我一般设两个阈值:

  • 差值 > 10%:严重背离,考虑做空波动率
  • 差值 < -5%:反向背离,考虑做多波动率

2. IV/HV 比率

用IV除以HV。这个比率更稳定,不受绝对数值影响。我习惯用1.2和0.8作为阈值:

  • 比率 > 1.2:市场过度恐慌
  • 比率 < 0.8:市场过度乐观
def calc_divergence_signal(iv_series, hv_series, threshold_ratio=1.2):
    """
    计算背离信号
    返回: 1=做空波动率, -1=做多波动率, 0=无信号
    """
    ratio = iv_series / hv_series
    
    if ratio > threshold_ratio:
        return 1  # IV过高,做空波动率
    elif ratio < 1/threshold_ratio:
        return -1  # IV过低,做多波动率
    else:
        return 0  # 无信号
我的习惯:我不会只看单一阈值。我会结合波动率锥(Volatility Cone)来判断——把不同期限的IV和HV放在一起比较。如果短期IV远高于长期IV,那背离信号更可靠。

好了,关于IV和HV的核心内容就这些。记住一句话:IV是市场的心,HV是市场的脚。心跑得太快,脚迟早会跟上。反过来,脚跑得太快,心也会追上来。找到两者背离的时刻,就是找到交易机会的时刻。

嗯,最后提醒一句:背离信号不是万能的。它只是一个概率优势,不是确定性。我见过太多人因为背离信号而重仓,结果被市场打脸。所以,仓位管理永远比信号本身更重要