已知d1 d2 求N(d1) N(d2)
时间: 2023-08-27 09:04:08 浏览: 267
在数理金融学中,d1 和 d2 是 Black-Scholes 模型中的两个参数,其计算公式如下:
d1 = [ln(S/K) + (r + 0.5 * sigma^2) * T] / [sigma * sqrt(T)]
d2 = d1 - sigma * sqrt(T)
其中,S 是股票当前价格,K 是期权行权价格,r 是无风险利率,sigma 是股票的年化波动率,T 是期权到期时间与当前时间之间的时间差(以年为单位)。
N(x) 表示标准正态分布的累积分布函数,可以使用 Python 中的 SciPy 库计算。以下是计算 d1 和 d2 对应的 N(d1) 和 N(d2) 的 Python 代码:
```python
from scipy.stats import norm
# 输入参数
S = 100 # 股票价格
K = 110 # 行权价格
r = 0.05 # 无风险利率
sigma = 0.2 # 年化波动率
T = 1 # 到期时间与当前时间之间的时间差
# 计算 d1 和 d2
d1 = (np.log(S/K) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
d2 = d1 - sigma * np.sqrt(T)
# 计算 N(d1) 和 N(d2)
N_d1 = norm.cdf(d1)
N_d2 = norm.cdf(d2)
print(f"N(d1) = {N_d1:.4f}")
print(f"N(d2) = {N_d2:.4f}")
```
在以上代码中,我们首先导入 Scipy 库中的 norm 模块,它提供了一个标准正态分布的累积分布函数 cdf,可以用来计算 N(x)。然后,我们输入参数 S、K、r、sigma 和 T,并计算出 d1 和 d2。最后,我们使用 norm.cdf 函数计算出 N(d1) 和 N(d2),并输出结果。
需要注意的是,计算 N(d1) 和 N(d2) 需要使用累积分布函数,而不是概率密度函数。因此,如果需要计算概率密度函数,需要使用 norm.pdf 函数。
阅读全文