Antithetic Variable Technique in Matlab

Matlab → Simulations → Monte Carlo → Antithetic Variable Technique

In antithetic variable technique for variance reduction, the stock price path is constructed in the usual manner with positive \varepsilon and payoff is calculated. Then another path with negative \varepsilon , that is -\varepsilon , is constructed, and payoff is calculated again. Finally, average of these two payoffs is calculated, that is

f=\frac{f_1+f_2}{2}

The following Matlab code calculates European-style standard call option price using antithetic variable technique for variance reduction in the Monte Carlo simulation method.

Monte Carlo using antithetic variable technique in Matlab
function call=AntitheticTechnique(s0,k,r,v,t,n)
st1=s0*exp((r-1/2*v^2)*t+v*randn(n,1)*sqrt(t));
st2=s0*exp((r-1/2*v^2)*t+v*(-randn(n,1))*sqrt(t));
payoff1=max(st1-k,0);
payoff2=max(st2-k,0);
payoff=0.5*(payoff1+payoff2);
call=exp(-r*t)*mean(payoff)
stderr=std(payoff)/sqrt(n)
CI=[call-1.96*stderr,call+1.96*stderr]