Professional Documents
Culture Documents
HW 7
HW 7
deltaT = T/N;
u=exp(sigma * sqrt(deltaT));
d=1/u;
p=(exp(r*deltaT) - d)/(u-d);
lattice = zeros(N+1,N+1);
for j=0:N
lattice(N+1,j+1)=max(0 , S0*(u^j)*(d^(N-j))*(1-div)-X);
end
for i=N-1:-1:tau
for j=0:i
lattice(i+2,j+1));
end
end
for i=tau-1:-1:0
for j=0:i
lattice(i+2,j+1));
end
end
price = lattice(1,1);
end
---------------------------------------------------------------------
function [price, lattice] = LatticeAmCallDivP(S0,X,r,T,sigma,N,div,tau)
deltaT = T/N;
u=exp(sigma * sqrt(deltaT));
d=1/u;
p=(exp(r*deltaT) - d)/(u-d);
lattice = zeros(N+1,N+1);
for j=0:N
lattice(N+1,j+1)=max(0 , S0*(u^j)*(d^(N-j))*(1-div)-X);
end
for i=N-1:-1:tau
for j=0:i
end
end
for i=tau-1:-1:0
for j=0:i
end
end
price = lattice(1,1);
end
LatticeEurPutDivP
deltaT = T/N;
u=exp(sigma * sqrt(deltaT));
d=1/u;
p=(exp(r*deltaT) - d)/(u-d);
lattice = zeros(N+1,N+1);
for j=0:N
lattice(N+1,j+1)=max(0 , X-S0*(u^j)*(d^(N-j))*(1-div));
end
for i=N-1:-1:tau
for j=0:i
lattice(i+2,j+1));
end
end
for i=tau-1:-1:0
for j=0:i
lattice(i+2,j+1));
end
end
price = lattice(1,1);
end
Hw5
LatticeEurCallDivD vs. LatticeAmCallDivD
deltaT = T/N;
u=exp(sigma * sqrt(deltaT));
d=1/u;
p=(exp(r*deltaT) - d)/(u-d);
S0a=S0-D*exp(-r*tau*deltaT);
lattice = zeros(N+1,N+1);
for j=0:N
lattice(N+1,j+1)=max(0 , S0a*(u^j)*(d^(N-j))-X);
end
for i=N-1:-1:tau
for j=0:i
lattice(i+2,j+1));
end
end
for i=tau-1:-1:0
for j=0:i
lattice(i+2,j+1));
end
end
price = lattice(1,1);
end
-------------------------------------------------------
function [price, lattice] = LatticeAmCallDivD(S0,X,r,T,sigma,N,D,tau)
deltaT = T/N;
u=exp(sigma * sqrt(deltaT));
d=1/u;
p=(exp(r*deltaT) - d)/(u-d);
S0a=S0-D*exp(-r*tau*deltaT);
lattice = zeros(N+1,N+1);
for j=0:N
lattice(N+1,j+1)=max(0 , S0a*(u^j)*(d^(N-j))-X);
end
for i=N-1:-1:tau
for j=0:i
end
end
for i=tau-1:-1:0
for j=0:i lattice(i+1,j+1) = max( S0a*u^j*d^(i-j)-D*exp(-r*(tau-i)*deltaT)-X ,
...
end
end
price = lattice(1,1);
LatticeEurPutDivD
deltaT = T/N;
u=exp(sigma * sqrt(deltaT));
d=1/u;
p=(exp(r*deltaT) - d)/(u-d);
S0a=S0-D*exp(-r*tau*deltaT);
lattice = zeros(N+1,N+1);
for j=0:N
lattice(N+1,j+1)=max(0 , X-S0a*(u^j)*(d^(N-j)));
end
for i=N-1:-1:tau
for j=0:i
lattice(i+2,j+1));
end
end
for i=tau-1:-1:0
for j=0:i
lattice(i+2,j+1));
end
end
price = lattice(1,1);
end
Hw6
TriEurPut
deltaT = T/N;
u=exp(lamda*sigma * sqrt(deltaT));
d=1/u;
pu=1/(2*lamda^2)+(r-(sigma^2/2))*sqrt(deltaT)/(2*lamda*sigma);
pm=1-1/(lamda^2);
pd=1-pu-pm;
lattice = zeros(N+1,2*N+1);
for j=1:N+1
lattice(N+1,j)=max(0 , X-S0*(d^(N-j+1)) );
end
for j=N+2:2*N+1
lattice(N+1,j)=max(0 , X-S0*(u^(j-N-1)) );
end
for i=N-1:-1:0
for j=1:2*i+1
pu*lattice(i+2,j+2));
end
end
price = lattice(1,1);
end
TriAmPut
deltaT = T/N;
u=exp(lamda*sigma * sqrt(deltaT));
d=1/u;
pu=1/(2*lamda^2)+(r-(sigma^2/2))*sqrt(deltaT)/(2*lamda*sigma);
pm=1-1/(lamda^2);
pd=1-pu-pm;
lattice = zeros(N+1,2*N+1);
for j=1:N+1
lattice(N+1,j)=max(0 , X-S0*(d^(N-j+1)) );
end
for j=N+2:2*N+1
lattice(N+1,j)=max(0 , X-S0*(u^(j-N-1)) );
end
for i=N-1:-1:0
for j=1:2*i+1
lattice(i+2,j+1)+pu*lattice(i+2,j+2));
end
end
price = lattice(1,1);
end