Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

Heston 模型与波动率微笑解析

单一波动率无法为整个期权链定价。了解 Heston 模型如何通过随机方差模拟市场波动,以及各参数如何影响波动率微笑的形态,揭示期权定价的内在逻辑。

Heston 模型概述

Heston 模型是一种期权定价模型,它将波动率视为随机变量而非固定值。该模型包含两个动态变量:股票价格及其价格方差,且两者均受各自的随机冲击影响。正是这种第二来源的随机性,使得模型能够模拟出波动率微笑(volatility smile)。Black-Scholes 模型假设波动率为常数,这只能在不同行权价之间画出一条平坦的曲线,而现实中没有任何期权链呈现过这种平坦状态。

为何单一波动率数值无法覆盖整个期权链

隐含波动率是使定价公式得出期权实际交易价格的波动率输入值。正如我们在 隐含波动率计算方法 页面中所述,对每个合约进行反向推算后会发现,同一到期日的期权在不同行权价上呈现出一条曲线,而非单一水平。下表选取了 2026 年上半年剩余期限在 20 至 45 天之间的所有 SPY 合约,按行权价与现价的距离划分为 2% 的区间,并计算了各区间内的平均隐含波动率。

查询SPY 隐含波动率(按行权价距离,20-45天到期,2026年1月-6月)
每个数字背后的完整 SQL
WITH
    (
        SELECT avg(implied_volatility)
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'SPY'
          AND date BETWEEN '2026-01-02' AND '2026-06-30'
          AND iv_converged = 1
          AND volume > 0
          AND days_to_expiry BETWEEN 20 AND 45
          AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.01
    ) AS atm_iv
SELECT
    concat(if(m_bucket > 0, '+', ''), toString(m_bucket), '%') AS moneyness,
    round(avg(iv) * 100, 2)                                    AS iv_pct,
    round((avg(iv) - atm_iv) * 100, 2)                          AS iv_vs_atm_pts,
    count()                                                     AS contracts
FROM
(
    SELECT
        implied_volatility AS iv,
        toInt16(round((toFloat64(strike_price) / toFloat64(underlying_close) - 1) * 50) * 2) AS m_bucket
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND date BETWEEN '2026-01-02' AND '2026-06-30'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.12
)
GROUP BY m_bucket
HAVING count() >= 100
ORDER BY m_bucket
Run this yourself

-12% 区间(行权价远低于现价)的平均隐含波动率为 28.05%,比同一窗口期平值期权的平均波动率高出 11.61 个波动率点。+12% 区间(看涨期权侧)的平均值为 15.56%。中间各区间勾勒出了该效应得名的曲线,其侧向倾斜即为 波动率偏斜。单一波动率参数模型无法涵盖这些变化:该模型假设所有行权价均基于同一到期价格分布进行定价,因此通过反向推算,该模型在任何行权价下得出的数值必然相同。

Heston模型带来的变化

Heston模型保留了股票的随机冲击,并为方差增加了第二个过程。用文字而非符号表述如下:

  • 股票在下一瞬间的变动由漂移项加上随机冲击构成,并由当前方差的平方根进行缩放。
  • 方差的变动表现为以固定速度向长期水平回归,加上其自身的冲击,并由波动率的波动率(vol-of-vol)参数及当前方差的平方根进行缩放。
  • 这两个冲击之间存在相关性,相关系数介于负一到一之间。

这种平方根缩放形式即Cox-Ingersoll-Ross模型,它有一个值得注意的作用:当方差趋近于零时,方差冲击会收缩至零,从而防止方差变为负值。当两倍的回归速度乘以长期方差超过波动率的波动率的平方时(该条件以Feller命名),方差将始终保持为正。

方差本身不可观测。其隐含对应项则是可观测的,且处于不断变化中。下图绘制了两个标的在二零二六年第二季度的平值隐含波动率,每个交易日记录一个数据点。

查询SPY 与 NVDA 平值隐含波动率走势(2026年4月-6月)
每个数字背后的完整 SQL
SELECT
    toString(date)                                                        AS session_date,
    round(avgIf(implied_volatility, underlying_symbol = 'SPY') * 100, 2)  AS spy_atm_iv_pct,
    round(avgIf(implied_volatility, underlying_symbol = 'NVDA') * 100, 2) AS nvda_atm_iv_pct
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('SPY', 'NVDA')
  AND date BETWEEN '2026-04-01' AND '2026-06-30'
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 20 AND 45
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.05
GROUP BY date
HAVING countIf(underlying_symbol = 'SPY') > 0
   AND countIf(underlying_symbol = 'NVDA') > 0
ORDER BY date
Run this yourself

SPY在2026-04-0120.39%开启该窗口,并在2026-06-3014.45%收盘。在相同的62个交易日内,NVDA从36.83%波动至38.22%。两条曲线均未保持静止,也未出现单边发散:两者均呈现随机游走特征,并不断回归至某一区间。对该图表两端的定价需要设定一个初始水平,以及一个包含回归速度的长期水平。

Heston模型各参数对波动率曲面的影响

均值回归与长期水平决定期限结构

期权价值取决于其存续期内的预期平均方差,而非当前的瞬时方差。对于下周到期的合约,当前方差对平均值影响显著;对于一年后到期的合约,长期水平则起主导作用。速度参数决定了预期向长期水平回归的快慢,从而决定了隐含波动率从近端到远端的斜率。

查询近月隐含波动率期限结构(2026年1月-6月)
每个数字背后的完整 SQL
SELECT
    tenor,
    round(avgIf(implied_volatility, underlying_symbol = 'SPY') * 100, 2)  AS spy_iv_pct,
    round(avgIf(implied_volatility, underlying_symbol = 'NVDA') * 100, 2) AS nvda_iv_pct
FROM
(
    SELECT
        implied_volatility,
        underlying_symbol,
        days_to_expiry,
        multiIf(
            days_to_expiry <= 7,   '1 to 7 days',
            days_to_expiry <= 21,  '8 to 21 days',
            days_to_expiry <= 45,  '22 to 45 days',
            days_to_expiry <= 90,  '46 to 90 days',
            days_to_expiry <= 180, '91 to 180 days',
                                   '181 to 365 days') AS tenor
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'NVDA')
      AND date BETWEEN '2026-01-02' AND '2026-06-30'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 1 AND 365
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.02
)
GROUP BY tenor
HAVING countIf(underlying_symbol = 'SPY') > 0
   AND countIf(underlying_symbol = 'NVDA') > 0
ORDER BY min(days_to_expiry)
Run this yourself

2026年上半年,SPY平值合约在 1 to 7 days 区间的平均波动率为 17.05%,而 181 to 365 days 区间为 18.77%。同期 NVDA 在这两个区间的表现分别为 41.22% 和 44.94%。单参数模型无法区分不同期限的波动率,而 Heston 模型通过速度参数控制形态,赋予了近端和远端各自的波动率水平。更多此类曲线请见我们的 隐含波动率期限结构 页面。

波动率的波动率(Vol of vol)决定微笑曲线的弯曲程度

波动率的波动率即方差本身的波动性。若将其设为零,方差路径将变得平滑:此时期限结构虽仍有斜率,但不同行权价间的波动率微笑将趋于平坦。调高该参数会增加到期价格分布在两端尾部的权重,从而使远离现价的行权价波动率高于平值附近。方差的实际波动幅度因标的资产而异,下表直接衡量了这一波动情况。

查询平值隐含波动率波动幅度(2026年1月-6月)
每个数字背后的完整 SQL
SELECT
    symbol,
    round(min(daily_iv) * 100, 2)                   AS low_iv_pct,
    round(max(daily_iv) * 100, 2)                   AS high_iv_pct,
    round((max(daily_iv) - min(daily_iv)) * 100, 2) AS swing_pts
FROM
(
    SELECT
        underlying_symbol      AS symbol,
        date,
        avg(implied_volatility) AS daily_iv
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO')
      AND date BETWEEN '2026-01-02' AND '2026-06-30'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.05
    GROUP BY symbol, date
)
GROUP BY symbol
ORDER BY swing_pts DESC
Run this yourself

AMZN 在面板中覆盖范围最广:平值隐含波动率最低为 28.21%,最高达 74.42%,六个月内波动率点差为 46.22KO 的覆盖范围最窄,仅为 10.75 个点。Vega 是衡量期权价格对波动率敏感度的指标,详见 我们的 Vega 页面,它反映了曲面的整体水平。在随机波动率模型下,当曲面形态而非水平发生变化时,两个 Vega 相同的合约表现可能截然不同。

相关性使微笑曲线倾斜为偏度(Skew)

股票价格冲击与方差冲击之间的相关性会将对称的微笑曲线转化为不对称的偏度曲线。在负相关条件下,股价下跌往往伴随方差上升,导致到期价格分布的左尾权重增加。此时,相同距离的看跌期权隐含波动率会高于看涨期权。

查询看跌与看涨期权隐含波动率偏度(20-45天,2026年1月-6月)
每个数字背后的完整 SQL
SELECT
    underlying_symbol                                                    AS symbol,
    round(avgIf(iv, ratio <= 0.95) * 100, 2)                             AS otm_put_iv_pct,
    round(avgIf(iv, ratio >= 1.05) * 100, 2)                             AS otm_call_iv_pct,
    round((avgIf(iv, ratio <= 0.95) - avgIf(iv, ratio >= 1.05)) * 100, 2) AS put_minus_call_pts
FROM
(
    SELECT
        underlying_symbol,
        implied_volatility                                    AS iv,
        toFloat64(strike_price) / toFloat64(underlying_close) AS ratio
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO')
      AND date BETWEEN '2026-01-02' AND '2026-06-30'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.20
)
GROUP BY underlying_symbol
HAVING countIf(ratio <= 0.95) > 0
   AND countIf(ratio >= 1.05) > 0
ORDER BY put_minus_call_pts DESC
Run this yourself

2026年上半年,SPY 在面板中表现出最大的偏度差距:行权价低于现价至少5%的合约平均波动率为 27%,而高于现价至少5%的合约为 14.76%,波动率点差为 12.23。相比之下,MSFT 在相同指标下的点差为 3.9。每个标的资产仅需一个相关性参数,即可覆盖上述所有倾斜范围。

初始方差设定曲面水平

第五个参数是模型当前的初始方差。它在不改变曲面形态的前提下整体抬升或下调曲面,因此该参数的拟合频率最高:它使模型保持在市场当前水平,而其余四个参数则负责刻画几何形态。

模型买入的内容及其成本

该模型通过五个可解释的数值构建出一个双向弯曲的曲面,并能快速定价。Heston模型利用特征函数和一个数值积分对欧式期权进行估值,无需模拟,因此在几分之一秒内拟合整个期权链在实际操作中是可行的。其成本值得明确指出。

  • 这五个参数是通过校准得到的,它们拟合自观察到的期权价格,而非直接测量得出。
  • 校准只是一个快照。明天重新拟合时数值会发生变动,这意味着模型的“常数”并非恒定不变。
  • 一组参数很难同时拟合所有到期日。在极短期限内,观察到的波动率微笑曲线比该方差过程所能模拟的弯曲程度更剧烈。
  • 市场价格存在跳空。该模型假设方差和现货价格均连续波动,因此跳空缺口必须由拟合出的数值来吸收。

对于从波动率页面跳转而来的读者,有一点需要注意。方差过程描述的是期权定价的动态机制,这与股票后续实现的波动率是两个不同的概念。两者之间的差异是 隐含波动率与已实现波动率 的讨论主题。

模型仍存在的局限

针对上述每个缺口,目前均有扩展模型。Bates模型在保留Heston模型的随机波动率基础上,为价格过程引入了跳跃项,从而使短期波动率微笑曲线更加陡峭。粗糙波动率模型则保留了随机波动率,并将驱动因子替换为比标准布朗运动更“粗糙”的路径,从而更精准地拟合极短期波动。然而,这些模型均未能解决校准难题:两者都增加了需要根据特定时刻进行拟合,且事后还需重新拟合的参数。

常见问题解答

简而言之,赫斯顿(Heston)模型是什么?

这是一种波动率为随机变量的期权定价模型。方差遵循其自身的路径,并向长期水平回归;方差的随机性与股票价格的随机性相关联,这使得该模型能够对弯曲的波动率微笑进行定价,而非假设其为一条直线。

为什么布莱克-舒尔斯(Black-Scholes)模型会得出平坦的波动率微笑?

该模型假设波动率为常数,从而固定了到期日价格的单一分布。每个行权价均基于同一分布定价,反推公式后,在每个行权价上得出的波动率均相同。平坦的直线是该假设的产物,而非对市场实际情况的发现。

赫斯顿模型的五个参数分别代表什么?

初始方差设定了当前波动率曲面的水平。长期方差设定了方差随时间推移所回归的目标值,而均值回归速度则设定了这种回归的快慢。波动率的波动率(Vol of vol)决定了微笑的曲率,而两个冲击之间的相关性则决定了其倾斜度。

赫斯顿模型是否契合真实的期权价格?

该模型能较好地拟合典型曲面的中间部分,但在极短期限内表现较差,因为观测到的波动率微笑弯曲程度往往超过了其方差过程所能模拟的范围。此外,拟合参数会随时间变化,这使得校准工作成为一项需要反复进行的练习,而非一次性的测量。


上述每个面板均附带了生成该数据的 SQL 代码,可随时指向其他标的或时间窗口。若需使用自然语言针对期权数据查询上述问题,请打开 Strasmore 终端。