Professional Documents
Culture Documents
HW 13
HW 13
第六組
European Call
% EuPutExpl1.m
function price = EuCallExpl1(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;
end
Outcome
[c04,~]=blsprice(S0,X,r,T,sigma1);
Code
Exps04=EuCallExpl1(S0,X,r,T,sigma1,Smax,dS1,dT);
[c03,~]=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);
c04
Exps04
c03
Exps03dS2
ExpdS15
ExpdS1
end
Outcome
American Put
% EuPutExpl1.m
function price = AmPutExpl1(S0,X,r,T,sigma,Smax,dS,dt)
Code % 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;
end
end
end
American Call
% EuPutExpl1.m
function price = AmCallExpl1(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;
Code
end
Outcome