编写股债通的蒙特卡洛模型Python代码
时间: 2024-09-18 20:03:29 浏览: 34
编写股债通的蒙特卡洛模拟(Monte Carlo Simulation)Python代码,通常用于预测投资组合的风险收益特征,尤其是在不确定市场环境下。这种方法通过随机抽样来模拟未来可能发生的各种情景,以此评估资产配置的效果。
以下是一个简单的示例,展示如何使用Python和`numpy`库创建一个基本的股票债券组合的蒙特卡洛模拟:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义初始参数
initial_value = 1000000 # 初始资金
stock_return_std_dev = 0.15 # 股票年化收益率的标准差
bond_return_std_dev = 0.05 # 债券年化收益率的标准差
stock_weight = 0.6 # 股票权重
bond_weight = 0.4 # 债券权重
years = 10 # 模拟时间范围
# 创建随机数生成器
np.random.seed(42) # 设置随机种子保证结果复现
def get_stock_bond_returns():
return np.random.normal(stock_return_std_dev, years)**(1 / years), \
np.random.normal(bond_return_std_dev, years)**(1 / years)
# 创建模拟路径
paths = [initial_value * (stock_weight * stock_ret + bond_weight * bond_ret)
for stock_ret, bond_ret in zip(*[get_stock_bond_returns() for _ in range(years)])]
# 可视化结果
plt.plot(range(years), paths, lw=0.5, alpha=0.8)
plt.xlabel('Years')
plt.ylabel('Portfolio Value')
plt.title('Stock-Bond Portfolio Monte Carlo Simulation')
plt.show()
阅读全文