金融分析与风险管理——期权BSM模型

金融分析与风险管理——期权BSM模型

  • 1. BSM模型的假定
  • 2. 期权价格与相关变量的关系
    • 2.1 期权价格与标的物(S)价格的关系
    • 2.2 期权价格与执行价格(K)的关系
    • 2.3 期权价格与波动率(sigma)的关系
    • 2.4 期权价格与无风险收益率(r)的关系
    • 2.5 期权价格与期权剩余期限(t)的关系

1. BSM模型的假定

  • 1.标的物价格服从几何布朗运动
  • 2.允许做空,且可以完全运用做空所获得的资金
  • 3.无交易费用、无税收费用,且可以无限分割
  • 4.在期权期限内,标的物无期间收入
  • 5.市场不存在无风险套利机会
  • 6.证券交易是连续进行的
  • 7.短期无风险利率是一个常数

BSM模型可由如下微分方程推导:

∂ f ∂ t + r s ∂ f ∂ S + 1 2 ∂ 2 f ∂ S 2 σ 2 S 2 = r f \frac{\partial f}{\partial t} + rs\frac{\partial f}{\partial S} + \frac{1}{2}\frac{\partial^2 f}{\partial S^2}\sigma^2S^2 = rf tf+rsSf+21S22fσ2S2=rf

上式中, f f f 表示期权价格, S S S 表示标的物的价格, r r r 表示连续复利的无风险收益率, σ \sigma σ 表示标的物收益率的波动率, t t t 表示时间变量。上述微分方程的解就是欧式看涨期权的定价公式,其求解过程可以参考这篇文章。

欧式看涨期权的定价公式:

c = S 0 N ( d 1 ) − K e − r T N ( d 2 ) c = S_0N(d_1) - Ke^{-rT}N(d_2) c=S0N(d1)KerTN(d2)
其中: N ( x ) N(x) N(x) 表示标准正态分布的累积分布函数

由 put-call parity 关系式可推出/欧式看跌期权的定价公式:

c + K e − r T = p + S 0 = = > c + Ke^{-rT} = p + S_0 ==> c+KerT=p+S0==>

p = K e − r T N ( − d 2 ) − S 0 N ( − d 1 ) p = Ke^{-rT}N(-d_2) - S_0N(-d_1) p=KerTN(d2)S0N(d1)

其中:

d 1 = l n ( S 0 K ) + ( r + σ 2 / 2 ) T σ T d_1 = \frac{ln(\frac{S_0}{K}) + (r+\sigma^2/2)T}{\sigma \sqrt{T}} d1=σT ln(KS0)+(r+σ2/2)T

d 2 = l n ( S 0 K ) + ( r − σ 2 / 2 ) T σ T = d 1 − σ T d_2 = \frac{ln(\frac{S_0}{K}) + (r-\sigma^2/2)T}{\sigma \sqrt{T}} = d_1 - \sigma \sqrt{T} d2=σT ln(KS0)+(rσ2/2)T=d1σT

利用Python构建欧式看涨、看跌期权的定价公式

#call的计算
def call_BS(S,K,sigma,r,T):
    import numpy as np
    from scipy.stats import norm
    d1 = (np.log(S/K)+(r+sigma**2/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)
#put的计算
def put_BS(S,K,sigma,r,T):
    import numpy as np
    from scipy.stats import norm
    d1 = (np.log(S/K)+(r+sigma**2/2)*T)/(sigma*np.sqrt(T))
    d2 = d1 - sigma*np.sqrt(T)
    return K*np.exp(-r*T)*norm.cdf(-d2) - S*norm.cdf(-d1)

call = call_BS(S = 5.29,K=6,sigma=0.24,r=0.04,T=0.5)
put = put_BS(S = 5.29,K=6,sigma=0.24,r=0.04,T=0.5)
print('看涨期权的价格:',round(call,4))
print('看跌期权的价格:',round(put,4))
看涨期权的价格: 0.1532
看跌期权的价格: 0.7443

2. 期权价格与相关变量的关系

2.1 期权价格与标的物(S)价格的关系

运用BSM模型的期权定价公式,利用Python程序模拟S与期权价格的关系

# 标的价格的变动
S_list = np.linspace(5,7,100)
call_list1 = call_BS(S = S_list,K=6,sigma=0.24,r=0.04,T=0.5)
put_list1 = put_BS(S = S_list,K=6,sigma=0.24,r=0.04,T=0.5)

#画图展示
plt.figure(figsize=(8,6))
plt.plot(S_list,call_list1,label='看涨期权')
plt.plot(S_list,put_list1,label='看跌期权')
plt.legend()
plt.grid('True')

金融分析与风险管理——期权BSM模型_第1张图片

2.2 期权价格与执行价格(K)的关系

运用BSM模型的期权定价公式,利用Python程序模拟K与期权价格的关系

# 执行价格的变动
K_list = np.linspace(5,7,100)
call_list1 = call_BS(S = 5.29,K=K_list,sigma=0.24,r=0.04,T=0.5)
put_list1 = put_BS(S = 5.29,K=K_list,sigma=0.24,r=0.04,T=0.5)

plt.figure(figsize=(8,6))
plt.plot(K_list,call_list1,label='看涨期权')
plt.plot(K_list,put_list1,label='看跌期权')
plt.legend()
plt.grid('True')

金融分析与风险管理——期权BSM模型_第2张图片

2.3 期权价格与波动率(sigma)的关系

运用BSM模型的期权定价公式,利用Python程序模拟波动率与期权价格的关系

# 波动率的变动
sigma_list = np.linspace(0.05,0.35,100)
call_list1 = call_BS(S = 5.29,K=6,sigma=sigma_list,r=0.04,T=0.5)
put_list1 = put_BS(S = 5.29,K=6,sigma=sigma_list,r=0.04,T=0.5)

plt.figure(figsize=(8,6))
plt.plot(sigma_list,call_list1,label='看涨期权')
plt.plot(sigma_list,put_list1,label='看跌期权')
plt.legend()
plt.grid('True')

金融分析与风险管理——期权BSM模型_第3张图片

2.4 期权价格与无风险收益率(r)的关系

运用BSM模型的期权定价公式,利用Python程序模拟无风险收益率与期权价格的关系

# 无风险收益率的变动
r_list = np.linspace(0.01,0.1,100)
call_list1 = call_BS(S = 5.29,K=6,sigma=0.24,r=r_list,T=0.5)
put_list1 = put_BS(S = 5.29,K=6,sigma=0.24,r=r_list,T=0.5)

plt.figure(figsize=(8,6))
plt.plot(r_list,call_list1,label='看涨期权')
plt.plot(r_list,put_list1,label='看跌期权')
plt.legend()
plt.grid('True')

金融分析与风险管理——期权BSM模型_第4张图片

2.5 期权价格与期权剩余期限(t)的关系

运用BSM模型的期权定价公式,利用Python程序模拟无风险收益率与期权价格的关系

# 时间的变动
T_list = np.linspace(0.01,3,100)
call_list1 = call_BS(S = 5.29,K=6,sigma=0.24,r=0.04,T=T_list)
put_list1 = put_BS(S = 5.29,K=6,sigma=0.24,r=0.04,T=T_list)

plt.figure(figsize=(8,6))
plt.plot(T_list,call_list1,label='看涨期权')
plt.plot(T_list,put_list1,label='看跌期权')
plt.legend()
plt.grid('True')

金融分析与风险管理——期权BSM模型_第5张图片

你可能感兴趣的:(BSM模型,看涨期权,看跌期权,python)