几何布朗运动模拟股票价格MATLAB代码
时间: 2024-07-16 08:00:37 浏览: 162
在MATLAB中,我们可以使用几何布朗运动(Geometric Brownian Motion, GBM)模型来模拟股票价格,因为股票价格的变化通常被认为受到随机波动的影响。GBM模型假设价格变动是由两个独立的过程:无风险利率和股票收益率驱动的。以下是一个简单的MATLAB代码示例,用于模拟股票价格:
```matlab
% 初始化参数
S0 = 100; % 初始股票价格
mu = 0.05; % 年化期望收益率
sigma = 0.2; % 年化波动率
T = 1; % 时间周期(年)
nSteps = 252; % 时间步长,假设一年252个交易日
dt = T / nSteps;
% 创建随机数生成器,保持随机性一致
rng('default');
% 计算每个时间步的股票价格
stockPrices = zeros(nSteps + 1, 1);
stockPrices(1) = S0;
for i = 2:nSteps + 1
Z = normrnd(0, sqrt(dt), 1); % 从标准正态分布生成随机数
stockPrices(i) = stockPrices(i-1) * exp((mu - 0.5*sigma^2)*dt + sigma*Z);
end
% 绘制股价变化图
plot(1:nSteps+1, stockPrices);
xlabel('时间(天)');
ylabel('股票价格');
title('几何布朗运动模拟的股票价格');
% GBM模型相关问题:
1. 在这个模型中,参数mu代表什么?
2. 为什么选择标准正态分布生成随机数Z?
3. 如果实际波动率比预期的sigma更大,模拟结果会怎样?
```
阅读全文