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

 Akzeptierte Antwort

Wayne King
Wayne King am 8 Okt. 2013
Bearbeitet: Wayne King am 8 Okt. 2013

0 Stimmen

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 Kommentar

Tiancong Sui
Tiancong Sui am 8 Okt. 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!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Tiancong Sui
Tiancong Sui am 8 Okt. 2013

0 Stimmen

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 Kommentare

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 am 8 Okt. 2013
To Matthew, thank you! yes you are right, I was trying to do the iteration. Thanks you!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Graphics Objects finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by