Professional Documents
Culture Documents
HW 3
HW 3
101071041 16
S0 = 35:1:70;
X1= 50;
X2=55;
r = 0.04;
sigma = 0.4;
T=1;
[c1,p1]=blsprice(S0,X1,r,T,sigma);
%plot(S0,p1);
% hold on;
[c2,p2]=blsprice(S0,X2,r,T,sigma);
% plot(S0,-1*p2);
%hold on;
plot(S0,p1-1-p2+2,'m');
hold on;
T=0.5;
[c1,p1]=blsprice(S0,X1,r,T,sigma);
[c2,p2]=blsprice(S0,X2,r,T,sigma);
plot(S0,p1-1-p2+2,'b');
hold on;
T=0;
[c1,p1]=blsprice(S0,X1,r,T,sigma);
[c2,p2]=blsprice(S0,X2,r,T,sigma);
plot(S0,p1-1-p2+2,'c');
hold on;
xlabel stockprice
ylabel profit
BULL
SPREAD
USING
PUTS
S0 = 35:1:70;
X1= 50;
X2=55;
r = 0.04;
sigma = 0.4;
T=1;
[c1,p1]=blsprice(S0,X1,r,T,sigma);
%plot(S0,p1);
% hold on;
[c2,p2]=blsprice(S0,X2,r,T,sigma);
% plot(S0,-1*p2);
%hold on;
plot(S0,p2-2-p1+1,'m');
hold on;
T=0.5;
[c1,p1]=blsprice(S0,X1,r,T,sigma);
[c2,p2]=blsprice(S0,X2,r,T,sigma);
plot(S0,p2-2-p1+1,'b');
hold on;
T=0;
[c1,p1]=blsprice(S0,X1,r,T,sigma);
[c2,p2]=blsprice(S0,X2,r,T,sigma);
plot(S0,p2-2-p1+1,'c');
hold on;
xlabel stockprice
ylabel profit
legend('T=1','T=0.5','T=0');
axis([35 70 -2 5]);
BEAR
SPREAD
USING
PUTS
S0 = 35:1:80;
X1= 50;
X2=55;
x3=60;
r = 0.04;
sigma = 0.4;
T=1;
[c1,p1]=blsprice(S0,X1,r,T,sigma);
[c2,p2]=blsprice(S0,X2,r,T,sigma);
[c3,p3]=blsprice(S0,x3,r,T,sigma);
plot(S0,c1-4+4-2*c2+c3-1,'m');
hold on ;
T=0.5;
[c1,p1]=blsprice(S0,X1,r,T,sigma);
[c2,p2]=blsprice(S0,X2,r,T,sigma);
[c3,p3]=blsprice(S0,x3,r,T,sigma);
plot(S0,c1-4+4-2*c2+c3-1,'b');
hold on ;
T=0;
[c1,p1]=blsprice(S0,X1,r,T,sigma);
[c2,p2]=blsprice(S0,X2,r,T,sigma);
[c3,p3]=blsprice(S0,x3,r,T,sigma);
plot(S0,c1-4+4-2*c2+c3-1,'c');
hold on ;
xlabel stockprice;
ylabel profit;
axis([35 80 -2 5]);
BUTTER
FLY
SPREAD
USING
CALLS
LatticeEurPut.m(CRR TREE)
LatticeEurPut.m(JR TREE)
function [price, lattice] = LatticeEurPut_JR(S0,X,r,T,sigma,N)
deltaT = T/N;
rnmut=(r-0.5*sigma^2)*deltaT;
u=exp(rnmut+sigma*sqrt(deltaT));
d=exp(rnmut-sigma*sqrt(deltaT));
p=0.5;
lattice = zeros(N+1,N+1);
for j=0:N
lattice(N+1,j+1)=max(0 , X-S0*(u^j)*(d^(N-j)) );
end
for i=N-1:-1:0
for j=0:i
lattice(i+1,j+1) = exp(-r*deltaT) * ...
(p * lattice(i+2,j+2) + (1-p) * lattice(i+2,j+1));
end
end
price = lattice(1,1);
CompLatticeBLSPut.m(CRR TREE
% CompLatticeBLS.m
S0 = 50;
X = 50;
r = 0.1;
sigma = 0.4;
T = 5/12;
N=50;
[BlsC,BlsP] = blsprice(S0,X,r,T,sigma);
LatticeC = zeros(1,N);
for i=(1:N)
LatticeC(i) = LatticeEurPut(S0,X,r,T,sigma,i);
end
plot(1:N, ones(1,N)*BlsP);
hold on;
plot(1:N, LatticeC);
CompLatticeBLSPut.m(JR TREE
% CompLatticeBLS.m
S0 = 50;
X = 50;
r = 0.1;
sigma = 0.4;
T = 5/12;
N=50;
[BlsC,BlsP] = blsprice(S0,X,r,T,sigma);
LatticeC = zeros(1,N);
for i=(1:N)
LatticeC(i) = LatticeEurPut_JR(S0,X,r,T,sigma,i);
end
plot(1:N, ones(1,N)*BlsP);
hold on;
plot(1:N, LatticeC);
LatticeAmCall.m
function [price, lattice] = LatticeAmCall(S0,X,r,T,sigma,N)
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))-X);
end
for i=N-1:-1:0
for j=0:i
lattice(i+1,j+1) = max(S0*u^j*d^(i-j)-X , ...
exp(-r*deltaT) *(p * lattice(i+2,j+2) + (1-p) * lattice(i+2,j+1)));
end
end
price = lattice(1,1);
CompLatticeBLSAmCall.m
% CompLatticeBLS.m
S0 = 50;
X = 50;
r = 0.1;
sigma = 0.4;
T = 5/12;
N=50;
BlsC = blsprice(S0,X,r,T,sigma);
LatticeC = zeros(1,N);
for i=(1:N)
LatticeC(i) = LatticeAmCall (S0,X,r,T,sigma,i);
end
plot(1:N, ones(1,N)*BlsC);
hold on;
plot(1:N, LatticeC);