波動率
赫斯頓模型的隱含波動率
當使用不同的行權價格和到期日建構隱含波動率曲面時
Heston model
,我們得到一個長期波動率小於短期波動率的曲面。這種形狀有任何商業原因嗎?
這絕對不是真的
HestonModel
的行為由幾個參數控制,但查看 Heston 模型中的變異數方程,我們發現長期 vol 由 $ \theta $ 術語,變異數將趨於等於這個,因為如果它超過漂移會將其拉回,反之亦然(即它是均值回复)。所以,如果初始變異數
v0
是情人 $ \theta $ , 長期 IV 將高於短期 IV。下面是一個片段,它生成一個 vol 表面來展示這一點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)