Yo iba a simular un movimiento browniano geométrico en matlab, cuando me di cuenta de que yo no entender completamente el subyacente proceso de Wiener. Siguiendo las instrucciones aquí estoy a partir de la forma:
Donde el $dW_t$ denota el proceso de Wiener. Por lo $E(dW_t)=0$ e $Var(dW_t) = dt$, ¿verdad? También podría escribir $dW_t = W_{dt}$? Porque pienso que el segundo de manera más intuitiva. Así que puede simular $dW_t$ mediante la simulación de $X \sim N(0,1)$ y, a continuación,$dW_t = X\sqrt{dt}$?.
El siguiente paso es la discretización de la diferencial plazo. Así que me escriba a: $S_{t+dt} = S_t + S_t \mu dt + S_t \sigma X \sqrt{dt}$
$S_{t+dt} = S_t*(1+ \mu dt + \sigma X \sqrt{dt})$
$S_{t+dt} = S_t*(1+ r_{dt})$
$S_{T} = S_0 *(1+r_1)*(1+r_2)*...*(1+r_T)$
Donde $r_{dt}$ significa que la tasa después de cada paso. $T$ es la hora de finalización. Así que escribí la siguiente matlab código. Algunos se verifica este código por favor?
function [x,y]= brown_data(T, dt,sigma, mu, y0)
x = 0:dt:T;
y = zeros(size(x));
dws = normrnd(0,1,1,numel(x)-1);
tic
ratesPlus1 = [y0 ,1 + mu*dt + sigma*dws*sqrt(dt) ];
y = cumprod(ratesPlus1);
toc
end