通过python绘图展现crr模型的收敛性
时间: 2023-06-26 14:08:02 浏览: 58
首先需要导入所需的库:
```python
import numpy as np
import matplotlib.pyplot as plt
```
然后定义CRR模型的函数:
```python
def CRR(S, K, r, sigma, T, N):
dt = T / N
u = np.exp(sigma * np.sqrt(dt))
d = 1 / u
p = (np.exp(r * dt) - d) / (u - d)
stock_tree = np.zeros((N + 1, N + 1))
option_tree = np.zeros((N + 1, N + 1))
for i in range(N + 1):
for j in range(i + 1):
stock_tree[j, i] = S * (u ** (i - j)) * (d ** j)
option_tree[j, i] = max(stock_tree[j, i] - K, 0)
for i in range(N - 1, -1, -1):
for j in range(i + 1):
option_tree[j, i] = np.exp(-r * dt) * (p * option_tree[j, i + 1] + (1 - p) * option_tree[j + 1, i + 1])
return option_tree[0, 0]
```
其中,参数S为股票价格,K为行权价格,r为无风险利率,sigma为波动率,T为期限,N为二叉树的层数。
接下来,我们可以定义不同的参数值,然后计算CRR模型的值,并将其绘制成图表:
```python
S = 100
K = 105
r = 0.05
sigma = 0.2
T = 1
N = 100
option_prices = []
for n in range(1, N + 1):
option_price = CRR(S, K, r, sigma, T, n)
option_prices.append(option_price)
plt.plot(option_prices)
plt.xlabel('Number of steps')
plt.ylabel('Option price')
plt.title('Convergence of CRR model')
plt.show()
```
运行上述代码,即可得到CRR模型的收敛曲线图表。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)