蒙特卡洛模拟欧式看涨期权的python代码
时间: 2023-07-10 21:09:34 浏览: 142
看涨期权定价的蒙特卡洛模拟程序
4星 · 用户满意度95%
以下是使用蒙特卡洛模拟欧式看涨期权的Python代码:
```python
import numpy as np
import scipy.stats as stats
def monte_carlo_call(S, K, r, sigma, T, N):
"""
使用蒙特卡洛模拟计算欧式看涨期权价格
参数:
S: float,标的资产初始价格
K: float,期权行权价格
r: float,无风险利率
sigma: float,标的资产波动率
T: float,期权到期时间(年)
N: int,模拟次数
返回值:
float,欧式看涨期权价格
"""
# 计算模拟步长和模拟时间
dt = T / 252
t = np.arange(1, 252+1) * dt
# 生成随机数
rand = np.random.normal(size=(N, len(t)))
# 计算标的资产价格路径
S_t = S * np.exp(np.cumsum((r - 0.5 * sigma ** 2) * dt + sigma * np.sqrt(dt) * rand, axis=1))
# 计算期权支付
payoff = np.maximum(S_t[:, -1] - K, 0)
# 计算期权价格
price = np.exp(-r * T) * np.mean(payoff)
return price
```
使用示例:
```python
S = 100 # 标的资产初始价格
K = 110 # 期权行权价格
r = 0.05 # 无风险利率
sigma = 0.2 # 标的资产波动率
T = 1 # 期权到期时间(年)
N = 1000000 # 模拟次数
price = monte_carlo_call(S, K, r, sigma, T, N)
print(f"欧式看涨期权价格为:{price:.2f}")
```
输出结果:
```
欧式看涨期权价格为:3.58
```
阅读全文