期權希臘值之vega
前言
前三篇文章介紹了期權希臘值的delta,theta,gamma,在這篇文章中,我們將對期權的vega進行介紹,
一、期權的vega
在計算希臘值時,通常將波動率看作隱含波動率,這與BS模型中的常數波動率是不同的,在實際市場中,波動率往往會隨著時間變化,這就意味著期權價格會隨著波動率的變化而變化,
期權的vega正是描述期權價值變化與標的資產價格變化的比率,

如果一個交易組合的vega絕對值很大,此交易組合的價值會對波動率的細微變化非常敏感,當一個交易組合的vega值為0時,資產價格波動率的變化會對交易組合價值的影響很小,
二、vega與標的資產價格的關系
1.例子
考慮一份無股息的看漲期權合約,股票價格為49元,執行價格為50元,無風險利率為5%,期限為20周,隱含波動率為20%,則期權的Vega為12.1
from matplotlib import cm
import math
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.axes3d as p3
# 定義標準正態分布的概率密度函式
def dN(x):
'''標準正態分布的概率密度函式公式'''
return math.exp(-0.5*x**2)/math.sqrt(2*math.pi)
def N(d):
'''計算概率密度函式'''
return quad(lambda x:dN(x),-20,d,limit=50)[0]
def d1f(St, K, t, T, r, sigma):
'''BS模型中的d1'''
d1=(math.log(St/K)+(r+0.5*sigma**2)*(T-t))/(sigma*math.sqrt(T-t))
return d1
# 定義看漲期權和看跌期權的vega
def BSM_vega(St, K, t, T, r, sigma):
''' Black-Scholes-Merton GAMMA of European call/put option.
Parameters
==========
St : float
stock/index level at time t
K : float
strike price
t : float
valuation date
T : float
date of maturity/time-to-maturity if t = 0; T > t
r : float
constant, risk-less short rate
sigma : float
volatility
Returns
=======
vega : float
European call option GAMM
'''
d1 = d1f(St, K, t, T, r, sigma)
vega=St*math.sqrt((T-t))*dN(d1)
return vega
St=49
K=50
r=5/100
T=0.3846
t=0
sigma=0.2
vega=BSM_vega(St, K, t, T, r, sigma)
print('看漲期權的Vega值為:',round(vega,2))
看漲期權的Vega值為: 12.11
2.vega與St之間的關系
price=np.linspace(1.2,5.6,50)
K1=2.6
K2=2.7
K3=2.8
K4=2.9
r=5/100
T=1
t=0
sigma=0.2
vega_0=[BSM_vega(St, K1, t, T, r, sigma) for St in price]
vega_1=[BSM_vega(St, K2, t, T, r, sigma) for St in price]
vega_2=[BSM_vega(St, K3, t, T, r, sigma) for St in price]
vega_3=[BSM_vega(St, K4, t, T, r, sigma) for St in price]
plt.figure(figsize=(12,10))
plt.plot(price,vega_0,label='k=2.6')
plt.plot(price,vega_1,label='k=2.7')
plt.plot(price,vega_2,label='k=2.8')
plt.plot(price,vega_3,label='k=2.9')
plt.xlabel('stock price')
plt.ylabel('option vage value')
plt.legend()
plt.show()

從圖中可以看出,vega>0,平價期權的 Vega 較大,
在其他情況相同時,平價期權的vega大于實值或者虛值期權的Vega,
隨著行權價的增加,vega逐漸向右移動,寬幅越大且峰值越高,當期權價格與行權價趨近時,Vega趨于峰值,
三、vega與到期期限之間的關系
St=2.7
K1=2.6
K2=2.7
K3=2.8
K4=2.9
r=5/100
T=np.linspace(0.1,1,100)
t=0
sigma=0.2
vega_0=[BSM_vega(St, K1, t, T, r, sigma) for T in T]
vega_1=[BSM_vega(St, K2, t, T, r, sigma) for T in T]
vega_2=[BSM_vega(St, K3, t, T, r, sigma) for T in T]
plt.figure(figsize=(12,10))
plt.plot(T,vega_0,label='k=2.6')
plt.plot(T,vega_1,label='k=2.7')
plt.plot(T,vega_2,label='k=2.8')
plt.xlabel('T')
plt.ylabel('option vage value')
plt.legend()
plt.show()

從圖中可以看出,其他引數相同時,剩余期限越長,Vega 越大,
四、vega與標的資產價格、到期期限之間的關系
def plot_greeks(function, greek):
# Model Parameters
St =2.7 # 50ETF value
t = 0.0 # valuation date
r = 0.015 # risk-less short rate
sigma = 0.2 # volatility
# Greek Calculations
tlist = np.linspace(0.01, 1, 50)
klist = np.linspace(2.1, 3.6, 50)
V = np.zeros((len(tlist), len(klist)), dtype=np.float)
for j in range(len(klist)):
for i in range(len(tlist)):
V[i, j] = function(St, klist[j], t, tlist[i], r, sigma)
# 3D Plotting
x, y = np.meshgrid(klist, tlist)
fig = plt.figure(figsize=(9, 5))
plot = p3.Axes3D(fig)
plot.plot_surface(x, y, V,cmap='rainbow')
plot.set_xlabel('strike $K$')
plot.set_ylabel('maturity $T$')
plot.set_zlabel('%s(K, T)' % greek)
plot_greeks(BSM_vega, vega)

從圖中可以看出,vega數值隨著到期期限的增加而增加,但是vega的數值會隨著標的資產價格從平價變為價內或者價外而減小,
總結
本章介紹了期權希臘值的Vega,并且應用python進行了量化,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/401527.html
標籤:AI
上一篇:賽題分析:AI決策?強化學習落地挑戰賽——學習指定平等的促銷策略
下一篇:國科大高級AI考試證明題整理
