我需要一段蒙特卡洛模拟收益率的代码,要求如下:
时间: 2023-02-24 15:02:03 浏览: 181
以下是用 Python 实现的蒙特卡罗模拟收益率的代码示例:
```python
import numpy as np
def monte_carlo_simulation(num_simulations, num_trading_days, mu, sigma):
simulated_returns = np.zeros((num_simulations, num_trading_days))
for i in range(num_simulations):
simulated_prices = np.zeros((num_trading_days, 1))
simulated_prices[0] = 100.0 # 初始价格
for j in range(1, num_trading_days):
drift = mu / 252
shock = np.random.normal(loc=drift, scale=sigma / np.sqrt(252))
simulated_prices[j] = simulated_prices[j - 1] * (1 + drift + shock)
simulated_returns[i, :] = np.log(simulated_prices[1:] / simulated_prices[:-1])
return simulated_returns
# 参数设置
num_simulations = 1000
num_trading_days = 252 * 5
mu = 0.1
sigma = 0.25
# 执行蒙特卡罗模拟
simulated_returns = monte_carlo_simulation(num_simulations, num_trading_days, mu, sigma)
# 计算期望收益率和标准差
mean = np.mean(simulated_returns, axis=0)
std = np.std(simulated_returns, axis=0)
# 输出结果
print("期望收益率:", mean[-1])
print("标准差:", std[-1])
```
这段代码通过进行多次模拟,来计算期望收益率和标准差。在每次模拟中,模拟了在接下来的 5 年(即 `num_trading_days` 天)内资产价格的变化情况,最终得到了每次模拟中最终收益率的分布情况。通过对这个分布的统计,可以得到期望收益率和标准差。