You are on page 1of 11

101071014

BlsPutMCAV

function [Price, CI] = BlsPutMCAV(S0,X,r,T,sigma,NRep


l)

nuT = (r - 0.5*sigma^2)*T;

siT = sigma * sqrt(T);

Veps = randn(NRepl,1);

Payoff1 = max( 0 , X - S0*exp(nuT+siT*Veps));

Payoff2 = max( 0 , X - S0*exp(nuT+siT*(-Veps)));

DiscPayoff = exp(-r*T) * 0.5 * (Payoff1+Payoff2);

[Price, VarPrice, CI] = normfit(DiscPayoff);

MCintegration

rand('seed',0);
N=1000;
meanexp=zeros(1,N);
for i=(1:N)
meanexp(i)=mean(exp(rand(1,i)*2))*2;
end
exp=exp(2)-1
exp10=meanexp(10)
exp100=meanexp(100)
exp1000=meanexp(1000)
plot(1:N,meanexp);

MCpi

n = 1000;

X = rand(1, n);

Y = rand(1, n);

R = sqrt(X.^2 + Y.^2);

pi = 4*numel(find(R < 1)) / n;

oilbond

function [price, lattice] = bondoil(S0,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)=S0*(u^j)*(d^(N-j)) ;

end

for j=0:N

if lattice(N+1,j+1)>=40
lattice(N+1,j+1)=1000+(40-25)*170;

end

if lattice(N+1,j+1)<40&&lattice(N+1,j+1)>=25
lattice(N+1,j+1)=1000+(lattice(N+1,j+1)-25)*170;

end

if lattice(N+1,j+1)<25
lattice(N+1,j+1)=1000;

end

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);

S0=30, r=0.02 T=1 sigma=0.2


N=3

currencybond

function [price, lattice] = bondcurrency(S0,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)=S0*(u^j)*(d^(N-j)) ;

end

for j=0:N

if lattice(N+1,j+1)>=169
lattice(N+1,j+1)=1000;

end

if lattice(N+1,j+1)<169&&lattice(N+1,j+1)>=84.5
lattice(N+1,j+1)=1000-1000*(169/5-1);

end

if lattice(N+1,j+1)<84.5
lattice(N+1,j+1)=0;

end

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);

S0=200 r=0.02 sigma=0.5 N=


3 T=1

You might also like