Black-Scholes模型中N'd1和N'd2意义
时间: 2024-04-01 20:38:03 浏览: 14
在Black-Scholes模型中,N'd1和N'd2都是与期权定价有关的函数。
其中,d1是一个无单位的值,表示标的资产价格在到期日时可能达到行权价格的概率,计算公式为:
d1 = [ln(S/K) + (r + σ^2/2)t] / (σ√t)
其中,S是标的资产的当前价格,K是期权的行权价格,r是无风险利率,σ是标的资产价格的波动率,t是期权的时间到期日的剩余时间。
N'd1则表示标准正态分布的概率密度函数在d1处的值,用于计算期权的Delta值。具体而言,若期权类型为看涨期权,则期权的Delta值为N(d1),若期权类型为看跌期权,则期权的Delta值为N(-d1)。
同理,d2的计算公式为:
d2 = d1 - σ√t
N'd2表示标准正态分布的概率密度函数在d2处的值,用于计算期权的价格。具体而言,期权的价格可以表示为:
C = S * N(d1) - K * e^(-r*t) * N(d2)
其中,C表示期权的价格,S、K、r、σ、t等参数的含义同上。
相关问题
Black-Scholes模型MTALB实现
Black-Scholes模型是一种用于定价欧式期权的数学模型,可以用来计算期权价格。MATLAB是一种非常适合进行数学计算的编程语言,因此可以使用MATLAB来实现Black-Scholes模型。
以下是MATLAB实现Black-Scholes模型的代码:
```matlab
function [call,put] = BlackScholes(S,K,r,sigma,T)
% S: 当前股票价格
% K: 期权行权价
% r: 无风险利率
% sigma: 波动率
% T: 期限
d1 = (log(S/K)+(r+0.5*sigma^2)*T)/(sigma*sqrt(T));
d2 = d1 - sigma*sqrt(T);
call = S*normcdf(d1)-K*exp(-r*T)*normcdf(d2);
put = K*exp(-r*T)*normcdf(-d2)-S*normcdf(-d1);
end
```
在MATLAB中,我们可以使用normcdf函数来计算正态分布的累积分布函数。在Black-Scholes模型中,我们需要用到正态分布的累积分布函数来计算d1和d2的值,从而计算期权的价格。
使用上述代码,我们可以计算出给定股票价格、期权行权价、无风险利率、波动率和期限下的期权价格。
python实现Black-Scholes模型
Black-Scholes模型是一种用于欧式期权定价的数学模型,它可以计算出期权的理论价格。下面是Python实现Black-Scholes模型的示例代码:
```python
import numpy as np
import scipy.stats as si
def black_scholes(S, K, T, r, sigma, option_type):
"""计算欧式期权的理论价格
Args:
S: 标的资产的当前价格
K: 期权的行权价格
T: 期权的到期时间(以年为单位)
r: 无风险利率
sigma: 标的资产的年化波动率
option_type: 期权类型,'call' 或 'put'
Returns:
option_price: 期权的理论价格
"""
d1 = (np.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
d2 = d1 - sigma * np.sqrt(T)
if option_type == 'call':
option_price = S * si.norm.cdf(d1) - K * np.exp(-r * T) * si.norm.cdf(d2)
elif option_type == 'put':
option_price = K * np.exp(-r * T) * si.norm.cdf(-d2) - S * si.norm.cdf(-d1)
else:
raise ValueError("Option type must be 'call' or 'put'")
return option_price
```
这个函数的参数包括标的资产的当前价格S,期权的行权价格K,期权的到期时间T,无风险利率r,标的资产的年化波动率sigma和期权类型option_type。最后函数返回期权的理论价格。在计算过程中,我们需要使用scipy库中的norm.cdf函数来计算标准正态分布的累积分布函数。
下面是一个使用这个函数计算欧式看涨期权和看跌期权理论价格的示例:
```python
S = 100
K = 95
T = 0.5
r = 0.05
sigma = 0.2
call_price = black_scholes(S, K, T, r, sigma, 'call')
put_price = black_scholes(S, K, T, r, sigma, 'put')
print("欧式看涨期权理论价格为:", call_price)
print("欧式看跌期权理论价格为:", put_price)
```
输出结果为:
```
欧式看涨期权理论价格为: 8.021352235143176
欧式看跌期权理论价格为: 2.7986170258806127
```
这个例子中,我们假设标的资产的当前价格为100,期权的行权价格为95,期权的到期时间为半年,无风险利率为5%,标的资产的年化波动率为20%。我们使用上面实现的函数计算了欧式看涨期权和看跌期权的理论价格,结果分别为8.02和2.80。