波動率

赫斯頓模型的隱含波動率

  • July 26, 2020

當使用不同的行權價格和到期日建構隱含波動率曲面時Heston model,我們得到一個長期波動率小於短期波動率的曲面。

這種形狀有任何商業原因嗎?

這絕對不是真的

HestonModel的行為由幾個參數控制,但查看 Heston 模型中的變異數方程,我們發現長期 vol 由 $ \theta $ 術語,變異數將趨於等於這個,因為如果它超過漂移會將其拉回,反之亦然(即它是均值回复)。

赫斯頓方程

所以,如果初始變異數v0是情人 $ \theta $ , 長期 IV 將高於短期 IV。下面是一個片段,它生成一個 vol 表面來展示這一點

使用上述參數的範例 Heston 曲面

import QuantLib as ql
import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

def plot_vol_surface(vol_surface, plot_years=np.arange(0.1, 2, 0.1), plot_strikes=np.arange(80, 120, 1)):
   fig = plt.figure()
   ax = fig.gca(projection='3d')

   X, Y = np.meshgrid(plot_strikes, plot_years)
   Z = np.array([vol_surface.blackVol(float(y), float(x)) 
                 for xr, yr in zip(X, Y) 
                     for x, y in zip(xr,yr) ]
                ).reshape(len(X), len(X[0]))

   surf = ax.plot_surface(X,Y,Z, rstride=1, cstride=1, linewidth=0.1)

   fig.colorbar(surf, shrink=0.5, aspect=5)

spot = 100
rate = 0.0

today = ql.Date(1, 7, 2020)

calendar = ql.NullCalendar()
day_count = ql.Actual365Fixed()
spot_quote = ql.QuoteHandle(ql.SimpleQuote(spot))

# Set up the flat risk-free curves
riskFreeCurve = ql.FlatForward(today, rate, day_count)
flat_ts = ql.YieldTermStructureHandle(riskFreeCurve)
dividend_ts = ql.YieldTermStructureHandle(riskFreeCurve)

# Create new heston model
v0 = 0.01; kappa = 1.0; theta = 0.04; rho = -0.3; sigma = 0.4

heston_process = ql.HestonProcess(flat_ts, dividend_ts, spot_quote, v0, kappa, theta, sigma, rho)
heston_model = ql.HestonModel(heston_process)

# How does the vol surface look at the moment?
heston_handle = ql.HestonModelHandle(heston_model)
heston_vol_surface = ql.HestonBlackVolSurface(heston_handle)

# Plot the vol surface ...
plot_vol_surface(heston_vol_surface)

引用自:https://quant.stackexchange.com/questions/55898