Professional Documents
Culture Documents
HW 11
HW 11
HW 11
SIGN
function [ payoff, lattice ] = SIGN_bit( S0, K, r, T, sigma, N )
deltaT = T/N;
u = exp( sigma * sqrt(deltaT) );
d = 1/u;
p = ( exp( r * deltaT ) - d ) / ( u - d );
for i = 0 : N
P = S0 * u^(N-i) * d^(i);
S(i+1) = 10;
if P > K
S(i+1) = 10 * (1+(P-K)/K);
end
end
for i = N : -1 : 1
for j = 0 : i-1
end
lattice(1:i,i) = S(1:i);
end
payoff = S(1);
end
CompSIGN
CompSIGN
HW2
EuPutExpl1.m
EuPutExpl1.m
S0=50;X=50;r=0.1;T=5/12;
sigma1=0.4;sigma2=0.3;
Smax=100;
dS1=2;
dS2=1.5;
dS3=1;
dT=5/1200;
c1=blsprice(S0,X,r,T,sigma1);
Exps04=EuCallExpl1(S0,X,r,T,sigma1,Smax,dS1,dT);
c2=blsprice(S0,X,r,T,sigma2);
Exps03dS2=EuCallExpl1(S0,X,r,T,sigma2,Smax,dS1,dT);
ExpdS15=EuCallExpl1(S0,X,r,T,sigma2,Smax,dS2,dT);
ExpdS1=EuCallExpl1(S0,X,r,T,sigma2,Smax,dS3,dT);
c1
Exps04
c2
Exps03dS2
ExpdS15
ExpdS1
6.1165
Exps04 =
-3.4383e+08
c2 =
4.8851
Exps03dS2 =
4.8695
ExpdS15 =
2.3832e+06
ExpdS1 =
3.4095e+42
6.1165
Exps04 =
-3.4383e+08
c2 =
4.8851
Exps03dS2 =
4.8695
ExpdS15 =
2.3832e+06
ExpdS1 =
3.4095e+42
S0=50;
X=50;
r=0.1;
T=5/12;
sigma=0.3;
Smax=100;
dS=2;
dt=5/1200;
[ExpdS1,matval,vetS,vetT]=EuCallExpl1(S0,X,r,T,sigma,Smax,dS,dt);
matval
ExpdS1
mesh(vetT,vetS,matval);
ylabel('Stock price'); xlabel('Time'); title('European Call Option, Explicit Method');
HW3
EuPutImplall.m
% EuPutImpl.m
function [price,matval,vetS,vetT] = EuCallImpl(S0,X,r,T,sigma,Smax,dS,dt)
% set up grid and adjust increments if necessary
M = round(Smax/dS);
dS = Smax/M;
N = round(T/dt);
dt = T/N;
matval = zeros(M+1,N+1);
vetS = linspace(0,Smax,M+1)';
vetj = 0:N;
veti = 0:M;
vetT= linspace(0,T,N+1)';
% set up boundary conditions
matval(:,N+1) = max(vetS-X,0);
matval(1,:) = (Smax-X)*exp(-r*dt*(N-vetj));
matval(M+1,:) = 0;
EuPutImplall.m
CompBlsImplall.m
CompBlsImplall.m
>> CompBlsImpl
c=
6.1165
Implds1 =
5.7185
Implds2 =
5.6977
CompImpl3D.m
CompImpl3D.m