Создание симуляции пути 1000x252 - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь создать симуляцию Монте-Карло с 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, все нули.

Моя проблема с тем, как я индексирую или как я ссылаюсь на мою переменную eps в цикле for?

1 Ответ

1 голос
/ 21 мая 2019

Несколько ошибок

  • Набор L = 1000;
  • Заменить i здесь на L eps=normrnd(0,1,[i,T]);
  • Инициализировать матрицу S с нулями и фиксированным размером S = zeros(L,T);

Код следующий

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
...