• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

[Matlab] Binomial tree

Joined
3/12/12
Messages
1
Points
11
Hello everyone,
I'm student girl in university of UCL and I' learning coding in Matlab to implement the Cox Ross Rubinstein formula to price Option.
That's my error..

"??? Index exceeds matrix dimensions.
Error in ==> americantree at 26
put(i, j) = exp(-R * dt) * (p * (pf(i , j )) + ( (1-p )* pf(i , j)));"

And here my entirely code to get the price of the option
If someone here could help me, please :(

Code:
function C = americantree(s,K,T,R,sigma,M)
 
dt=T/M;
voldt = sigma * sqrt(dt);
up = exp(voldt);
down = 1 / up;
r = exp(R * dt);
p = (r - down) / (up - down);
 
%compute stock price at each node
 
for  i=1:(M+1)
 
    %for j= 1:(i+1)
St= s*up^(M-1-i)*down^(i-1);
 
pf(i)= max(K-St,0);
end;
 
%compute terminal payoffs
 
 
% work backwards to price the option at each nodes
for i= (M-1):-1:1
    for j=(i+1):-1:1   
        put(i, j) = exp(-R * dt) * (p * (pf(i , j )) + ( (1-p )* pf(i , j)));
        v(i, j) = max(K - pr(i, j),put(i, j));
    end;
end;
 
  C=v(1,1);
 
I might be wrong because I myself started using MATLAB very recently but here is what I see. You have:
pf(i)= max(K-St,0);

which is supposedly a vector and then you have

pf(i , j ) where the put is? If pf is a vector why use two coefficients?
 
Back
Top