创建1000x252路径仿真

时间:2019-05-21 10:25:52

标签: matlab simulation montecarlo quantitative-finance

我正在尝试创建一个包含1000个模拟和252天的蒙特卡洛模拟。所以我需要创建一个1000x252矩阵,我的代码是:

T=252
L=zeros(i)
eps=normrnd(0,1,[i,T])
S0=2809
K=2750

for i=1:252
    for c=1:L
    S(c,i)=S0*exp((.0295-.5*(.2^2))*.004+.0295*sqrt(.004)*eps(c,i))
    end
end

之前,我只有一个for语句,所以我没有for c=1:L, 而且我能够产生想要的结果。但是现在我想要1000x252,我得到:

第1列第1列至252正确

第2行到1000,第1列只是第1行第1列的副本

其余的第2到1000行,第2到252列全为零。

我的索引方式还是在for循环中引用变量eps的方式有问题吗?

1 个答案:

答案 0 :(得分:1)

很少犯错

  • 设置L = 1000;
  • 在此处用i L替换eps=normrnd(0,1,[i,T])
  • 使用零和固定大小S = zeros(L,T);初始化矩阵S

代码如下

T=252;
L= 1000;
eps=normrnd(0,1,[L,T]);
S0=2809;
K=2750;
S = zeros(L,T);
for i=1:252
    for c=1:L
    S(c,i)=S0*exp((.0295-.5*(.2^2))*.004+.0295*sqrt(.004)*eps(c,i));

    end
end