stock = 100;
delta_t = 1 / 365;
volatility = 0.1;
for i = 1 : 5
stock = stock .* exp( volatility .* sqrt ( delta_t ) .* randn(1) );
disp( stock )
end
t = 1 : 5 plot(stock,t)
------------------------
Anyone could help please? Thank you
Tony

 Respuesta aceptada

Wayne King
Wayne King el 8 de Oct. de 2013
Editada: Wayne King el 8 de Oct. de 2013

0 votos

You are not assigning the output stock to a vector, so you are just getting the latest result from the for loop.
stock = zeros(5,1);
delta_t = 1 / 365;
volatility = 0.1;
initstock = 100;
for ii = 1 : 5
stock(ii) = initstock .* exp( volatility .* sqrt ( delta_t ) .* randn(1) );
initstock = stock(ii);
end
t = 1:length(stock);
plot(t,stock)

1 comentario

Tiancong Sui
Tiancong Sui el 8 de Oct. de 2013
Thank you !!!!! I started to use Matlab 2 days ago and this is the first task for me, thank you for your great help!

Iniciar sesión para comentar.

Más respuestas (1)

Tiancong Sui
Tiancong Sui el 8 de Oct. de 2013

0 votos

stock = 100;
delta_t = 1 / 365;
volatility = 0.1;
for i = 1 : 5
stock = stock .* exp( volatility .* sqrt ( delta_t ) .* randn(1) );
disp( stock )
end
t = 1 : 5
plot(stock,t)
--------------------
A better version, the one above is crumbled up.

2 comentarios

Matthew Crema
Matthew Crema el 8 de Oct. de 2013
I'm guessing you want to save the value of stock in each iteration of the for loop. Try:
for i = 2 : 5
stock(i) = stock(i-1) .* exp( volatility .* sqrt ( delta_t ) .* randn(1) );
disp( stock )
end
Tiancong Sui
Tiancong Sui el 8 de Oct. de 2013
To Matthew, thank you! yes you are right, I was trying to do the iteration. Thanks you!

Iniciar sesión para comentar.

Categorías

Más información sobre Graphics Objects en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 8 de Oct. de 2013

Comentada:

el 8 de Oct. de 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by