Black-Scholes期权定价模型公式计算

用户头像mx_*716bsb
2023-10-19 发布

Black-Scholes期权定价模型是一种用于估算欧式期权价格的数学模型,其核心思想是基于期权的价格与标的资产的价格、行权价、时间、无风险利率和波动率之间的关系。

下面简要说明一下公式的计算。我们可以将该定价公式分为两个部分:期权定价公式、d1和d2的计算。

  1. 期权定价公式

根据BS定价模型,我们有:

  • C(S, K, r, T, σ) = S * N(d1) - K * e^(-r * T) * N(d2)
  • P(S, K, r, T, σ) = K * e^(-r * T) * N(-d2) - S * N(-d1)

其中:

  • C(S, K, r, T, σ) 代表欧式看涨期权的价格。

  • P(S, K, r, T, σ) 代表欧式看跌期权的价格。

  • S 代表标的资产的当前价格。

  • K 代表期权的行权价。

  • r 代表无风险利率(连续复利)。

  • T 代表期权的剩余到期时间(年为单位)。

  • σ 代表标的资产的年度波动率。

  • N(d1) 和 N(d2) 代表标准正态分布函数中的累积概率。

  1. d1和d2的计算
  • d1 = (ln(S/K) + (r + (σ^2)/2) * T) / (σ * √T) d2 = d1 - σ * √T

其中:

  • ln 表示自然对数。
  • σ^2 表示波动率的平方。

转化成代码时注意导入math库:

def call_option_pricer(spot,strike,maturity,r,vol):
    from math import log,sqrt,exp
    from scipy.stats import norm
  
    d1=(log(spot/strike)+(r+0.5*vol*vol)*maturity)/vol/sqrt(maturity)
    d2=d1-vol*sqrt(maturity)
    price=spot*norm.cdf(d1)-strike*exp(-r*maturity)*norm.cdf(d2)
    return price
  

可以加上一个输出指令明确各个部分的数据:

print('50etf购12月2700期权价格:%.4f'%call_option_pricer(spot=2.466,strike=2.7,maturity=111/365,r=0.044,vol=0.2285))

    #当前价 spot : 2.466
    #行权价 strike : 2.7
    #到期期限 maturity : 111/365
    #无风险利率 r : 0.044
    #波动率 vol : 0.2285
    #0.058

评论

需要帮助?

试试AI小助手吧