Monte Carlo simulation for option pricing in Matlab

Matlab → Simulations → Brownian Motion → Stock Price → Monte Carlo for Option Pricing

In Monte Carlo simulation for option pricing, the equation used to simulate stock price is

S(T)=S(0)\textrm{exp}[(\mu-\frac{1}{2}\sigma^2)T+\sigma \varepsilon \sqrt{T}]

Where S(0) is the initial stock price, \mu is interest rate (r is used to indicate risk-free interest rate), \sigma is volatility, T is time, and \varepsilon is the random samples from standard normal distributions.

The standard error of our approximations is calculated as

\textrm{Standard Error} = \frac{w}{\sqrt{M}}

Where w is the standard deviation of the payoff results and M is the number of trials (or simulations). Hence, a 95% confidence interval for the price f of a derivative can be given as

\mu -\frac{1.96w}{M}<f<\mu+\frac{1.96w}{M}

Monte Carlo simulations in Matlab to price European-style call option
function call=MonteCarlo(s0,k,r,v,t,n)
st=s0*exp((r-1/2*v^2)*t+v*randn(n,1)*sqrt(t));
payoff=max(st-k,0);
call=exp(-r*t)*mean(payoff)

In the next example, we calculate call and put option prices in the same program using Matlab.

European-style option pricing in Matlab using Monte Carlo method
function callPut=EuropeanOption(s0,k,r,v,t,n)
st=s0*exp((r-1/2*v^2)*t+v*randn(n,1)*sqrt(t));
payoffCall=max(st-k,0);
payoffPut=max(k-st,0);
call=exp(-r*t)*mean(payoffCall)
put=exp(-r*t)*mean(payoffPut)

In the next example, standard error and confidence interval is also given with call option price.

Matlab code for call option with standard error and confidence interval
function call=MonteCarlo(s0,k,r,v,t,n)
st=s0*exp((r-1/2*v^2)*t+v*randn(n,1)*sqrt(t));
payoff=max(st-k,0);
call=exp(-r*t)*mean(payoff)
stderr=std(payoff)/sqrt(n)
CI=[call-1.96*stderr,call+1.96*stderr]