I am trying to price a Down-and-Out Call using Monte Carlo simulation. The problem is that I get the right price for the vanilla option (same price as the analytic formula of Black and Scholes) but I do not get the right price for the down-and-out Call.
S0 = 105 % Price of underlying sig = 0.28; % vol mu = 0.0025; % drift B = 101 % Barrier K = 100 % Strike
In particular, the right price is 4.14 while I get around 5 with Monte carlo simulation. Can you help me ?
nbrsim = 10000; S = zeros(nbrsim,nbre_step+1); for j = 1:nbrsim S(j,1)=S0; for i = 1:nbrstep t(i+1)=t(i)+dt; Z = normrnd(0,1); S(j,i+1)=S(j,i) + mu*S(j,i)*dt + S(j,i) * sig * sqrt(dt) * Z; end ST(j)=S(j,nbrstep+1); end K=100 B = 101 for j = 1:nbrsim if min(S(j,:)) <= B l(j) = 0; else l(j) = 1; end vectpayoffs(j) = l(j)*max(ST(j) - K,0); end r= 0.0025 DF = exp(- r * T); Downout = DF * 1/nbrsim * sum(vectpayoffs)
I don't understand why I don't get the right price. Is there a mistake here?
Thank you !