Professional Documents
Culture Documents
hw10 101071010
hw10 101071010
101071010
AsianMC.m
AsianMCCV.m
ControlVars = zeros(NRepl,1);
for i=1:NRepl
StockPath = AssetPaths1(S0,r,sigma,T,NSamples,1);
Payoff = exp(-r*T) * max(0, mean(StockPath(2:(NSamples+1))) - X);
ControlVars(i) = Payoff + c * (sum(StockPath) - ExpSum);
end
[P,aux,CI] = normfit(ControlVars);
TryPath=AssetPaths1(S0,r,sigma,T,NSamples,NPilot);
StockSum = sum(TryPath,2);
PP = mean(TryPath(:,2:(NSamples+1)) , 2);
TryPayoff = exp(-r*T) * max(0, PP - X);
MatCov = cov(StockSum, TryPayoff);
c = - MatCov(1,2) / var(StockSum);
dt = T / NSamples;
ExpSum = S0 * (1 - exp((NSamples + 1)*r*dt)) / (1 - exp(r*dt));
AsianHalton.m
AsianMC2.m
function [P,CI] = AsianMC2(S0,r,T,sigma,NSamples,NRepl)
Payoff = zeros(NRepl,1);
for i=1:NRepl
Path=AssetPaths1(S0,r,sigma,T,NSamples,1);
Payoff(i) = max(0, Path(NSamples+1)(mean(Path(2:(NSamples+1)))));
end
[P,aux,CI] = normfit( exp(-r*T) * Payoff);
AsianMCCV2.m
ControlVars = zeros(NRepl,1);
for i=1:NRepl
StockPath = AssetPaths1(S0,r,sigma,T,NSamples,1);
Payoff = exp(-r*T) * max(0, StockPath(NSamples+1)-mean(StockPath(2:(NSamples+1))));
ControlVars(i) = Payoff + c * (sum(StockPath) - ExpSum);
end
[P,aux,CI] = normfit(ControlVars);
TryPath=AssetPaths1(S0,r,sigma,T,NSamples,NPilot);
StockSum = sum(TryPath,2);
PP = mean(TryPath(:,2:(NSamples+1)) , 2);
TryPayoff = exp(-r*T) * max(0,TryPath(NSamples+1)-PP);
MatCov = cov(StockSum, TryPayoff);
c = - MatCov(1,2) / var(StockSum);
dt = T / NSamples;
ExpSum = S0 * (1 - exp((NSamples + 1)*r*dt)) / (1 - exp(r*dt));
AsianHalton2.m
CompAsianOption.m
S0=50;
X=50;
r=0.1;
T=5/12;
sigma=0.4;
NSamples=20;
NRepl=50000;
NPilot=5000;
rand('seed',0);
[P,CI] = AsianMC(S0,X,r,T,sigma,NSamples,NRepl)
rand('seed',0);
[P,CI] = AsianMCCV(S0,X,r,T,sigma,NSamples,NRepl,NPilot)
rand('seed',0);
[P,CI]= AsianHalton(S0,X,r,T,sigma,NSamples,NRepl)
rand('seed',0);
[P,CI] = AsianMC2(S0,r,T,sigma,NSamples,NRepl)
rand('seed',0);
[P,CI] = AsianMCCV2(S0,r,T,sigma,NSamples,NRepl,NPilot)
rand('seed',0);
[P,CI] = AsianHalton2(S0,r,T,sigma,NSamples,NRepl)
CompAsianCall.result
max{A-X,0}
Price
CI
AsianMC
3.5774
[3.5307 , 3.6240]
AsianMCCV
3.5582
[3.5387 , 3.5777]
AsianHalton
3.6050
[3.5559 , 3.6542]
CompAsianCall.result
max{S(T)-A,0}
Price
CI
AsianMC2
3.3402
[3.2937 , 3.3867]
AsianMCCV2
3.3770
[3.3131 , 3.4410]
AsianHalton2
2.5063
[2.4745 , 2.5380]
LookbackMCcall.m
LookbackMCCVcall.m
LookbackHaltonCall.m
CompLookbackCall.m
S0=50;
X=50;
r=0.1;
T=5/12;
sigma=0.4;
NSamples=50;
NRepl=10000;
NPilot=5000;
rand('seed',0);
[P,CI] = LookbackMCcall(S0,X,r,T,sigma,NSamples,NRepl)
rand('seed',0);
[P,CI] = LookbackMCCVcall(S0,r,T,sigma,NSamples,NRepl,NPilot)
rand('seed',0);
[P,CI] = LookbackHaltonCall(S0,r,T,sigma,NSamples,NRepl)
CompLookbackCall.result
Price
CI
LookbackMCcall
9.4106
[9.2266 , 9.5947]
LookbackMCCVcall
9.4296
[9.1679 , 9.6912]
LookbackHaltonCall
8.1419
[8.0124 , 8.2715]
LookbackMCput.m
function [P,CI] = LookbackMCput(S0,r,T,sigma,NSamples,NRepl)
Payoff = zeros(NRepl,1);
for i=1:NRepl
Path=AssetPaths1(S0,r,sigma,T,NSamples,1);
Payoff(i) = max(0, max(Path(1:(NSamples+1)))Path(NSamples+1));
end
[P,aux,CI] = normfit( exp(-r*T) * Payoff);
LookbackMCCVput.m
LookbackHaltonPut.m
CompLookbackPut.m
S0=50;
X=50;
r=0.1;
T=5/12;
sigma=0.4;
NSamples=10;
NRepl=10000;
NPilot=5000;
rand('seed',0);
[P,CI] = LookbackMCput(S0,r,T,sigma,NSamples,NRepl)
rand('seed',0);
[P,CI] = LookbackMCCVput(S0,r,T,sigma,NSamples,NRepl,NPilot)
rand('seed',0);
[P,CI] = LookbackHaltonPut(S0,r,T,sigma,NSamples,NRepl)
CompLookbackPut.result
Price
CI
LookbackMCput
7.4871
[7.3621 , 7.6120]
LookbackMCCVput
7.3210
[7.0676 , 7.5744]
LookbackHaltonPut
9.5434
[9.3424 , 9.7445]