MATLAB Language
Financiële toepassingen
Zoeken…
Willekeurige wandeling
Het volgende is een voorbeeld dat 5 eendimensionale willekeurige wandelingen van 200 stappen weergeeft:
y = cumsum(rand(200,5) - 0.5);
plot(y)
legend('1', '2', '3', '4', '5')
title('random walks')
In de bovenstaande code is y
een matrix van 5 kolommen, elk met een lengte van 200. Omdat x
wordt weggelaten, wordt standaard de rijnummers van y
(equivalent aan het gebruik van x=1:200
als de x-as). Op deze manier plot
plotfunctie meerdere y-vectoren tegen dezelfde x-vector, elk automatisch met een andere kleur.
Univariate geometrische Brownse beweging
De dynamiek van de Geometrische Brownse beweging (GBM) wordt beschreven door de volgende stochastische differentiaalvergelijking (SDE):
Ik kan de exacte oplossing voor de SDE gebruiken
om paden te genereren die een GBM volgen.
Gegeven dagelijkse parameters voor een simulatie van een jaar
mu = 0.08/250;
sigma = 0.25/sqrt(250);
dt = 1/250;
npaths = 100;
nsteps = 250;
S0 = 23.2;
we kunnen de Brownian Motion (BM) W
vanaf 0 en deze gebruiken om de GBM te verkrijgen vanaf 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);
Dat levert de paden op
plot(Y)