编写一个金融衍生品的蒙特卡洛模型Python代码
时间: 2024-09-18 07:03:05 浏览: 82
在Python中编写金融衍生品的蒙特卡洛模拟(Monte Carlo Simulation)通常用于估计期权价格等复杂金融工具的价值,这种方法基于大量的随机试验。下面是一个简单的例子,演示如何使用Python和NumPy库来计算欧式看涨期权的价格:
```python
import numpy as np
from scipy.stats import norm
# 定义模拟参数
S0 = 100 # 初始资产价格
K = 110 # 行权价
r = 0.05 # 年化无风险利率
T = 1 # 时间期限 (年)
n_simulations = 100000 # 模拟次数
def black_scholes_call(S, K, T, r, sigma):
d1 = (np.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
d2 = d1 - sigma * np.sqrt(T)
call_price = S * norm.cdf(d1) - K * np.exp(-r * T) * norm.cdf(d2)
return call_price
# 标准差
sigma = 0.2
# 蒙特卡洛模拟
call_prices = []
for _ in range(n_simulations):
S_T = S0 * np.exp((r - 0.5 * sigma**2) * T + sigma * np.random.standard_normal())
call_prices.append(black_scholes_call(S_T, K, T, r, sigma))
# 计算平均值作为期权价值的近似
average_call_price = np.mean(call_prices)
print(f"期权的平均价格大约是: {average_call_price:.4f}")
阅读全文