MATLAB Language
Финансовые приложения
Поиск…
Случайная прогулка
Ниже приведен пример, который отображает 5 одномерных случайных блужданий по 200 шагов:
y = cumsum(rand(200,5) - 0.5);
plot(y)
legend('1', '2', '3', '4', '5')
title('random walks')
В приведенном выше коде y
представляет собой матрицу из 5 столбцов, каждая из которых имеет длину 200. Так как x
опущен, по умолчанию они соответствуют номерам строк y
(что эквивалентно использованию x=1:200
в качестве оси x). Таким образом, функция plot
отображает несколько y-векторов в отношении одного и того же вектора x, каждый из которых автоматически использует другой цвет.
Одномерное геометрическое броуновское движение
Динамика геометрического броуновского движения (GBM) описывается следующим стохастическим дифференциальным уравнением (SDE):
Я могу использовать точное решение для SDE
для генерации путей, следующих за GBM.
Учитывая суточные параметры для моделирования в течение года
mu = 0.08/250;
sigma = 0.25/sqrt(250);
dt = 1/250;
npaths = 100;
nsteps = 250;
S0 = 23.2;
мы можем получить броуновское движение (BM) W
начинающееся с 0, и использовать его для получения GBM, начиная с S0
% BM
epsilon = randn(nsteps, npaths);
W = [zeros(1,npaths); sqrt(dt)*cumsum(epsilon)];
% GBM
t = (0:nsteps)'*dt;
Y = bsxfun(@plus, (mu-0.5*sigma.^2)*t, sigma*W);
Y = S0*exp(Y);
Который создает пути
plot(Y)