Como continuación de mi anterior pregunta, ahora estoy simulando el GBM paso por paso para $n$ pasos.
Yo estoy usando la siguiente aplicación para la simulación:
$$S_{t+1} = S_t \exp \left[ \left(\mu-\frac{\sigma^2}{2}\right) \Delta t + \sigma \sqrt{\Delta t} Z_t \derecho], ~ Z_t \sim \mathcal{N}(0,1)$$
Cada paso representa una unidad de tiempo por lo que $\Delta t = 1$.
Yo uso el siguiente código de MATLAB:
function paths = gbm_exp(mu,vol,s0,nbr_steps,nbr_paths)
shocks = randn(nbr_steps,nbr_paths/2);
shocks_ant = [shocks, -shocks];
paths = zeros(nbr_steps+1,nbr_paths);
paths(1,:) = s0;
for i=1:nbr_paths
for j=1:nbr_steps
paths( j + 1, i ) = paths( j, i ) * exp( (mu - vol^2/2) + vol * shocks_ant( j, i ) );
end
end
Como usted puede ver, yo uso antitético camino para tratar de reducir la varianza global.
La cosa es que, de nuevo, debería haber $\mathbb{E}(S_t) = S_0 ~ \forall t$ si me puse $\mu=0$.
Así que hacer lo siguiente:
>> test=gbm_exp(0,.3,100,300,2000);
>> mean(test(end,:))
Esto significa que yo simular 300 pasos, con $\sigma=0.3$, $\mu=0$ y $S_0 = 100$.
La media de yo llegar, sin embargo, es algo bastante pequeño, de alrededor de 20 en promedio. Así que, no en todos los excpected 100.
Así, traté de aumentar mi número de rutas de acceso a 200k y me sale una media de unos 40 en promedio.
Así que estoy sorprendido por este comportamiento, esperaría que converge mucho más rápido, especialmente con antitético caminos.
¿Me olvido de algo obvio de nuevo?