0
$\begingroup$

I am a student, so please don't judge me for stupid questions. I'm writing a code to valuate call option (based on random geometric Brownian motion) using Monte Carlo Simulation and Black Scholes Model, however, I am getting absolutely different results. Here is my code:

T=1;
n=100;
d=T/n;
N=1000;
S0=100;
mu=0.2;
s=0.1;
r=0.01;
K=105;
t=0:d:T;
W=zeros(N,n+1);

Z= randn(N,n);
W=cumsum([zeros(N,1) sqrt(d)*Z],2);
S=S0*exp((mu-0.5*s^2).*t+s*W);

payoffs=max(S(:,n+1)-K,0);
disc_payoffs=payoffs/exp(r*(T-t(1)));
MC=mean(disc_payoffs); 

d1=(log(S0./K)+(r+0.5.*s^2).*(T-t(1)))/(s.*sqrt(T-t(1)));
d2=(log(S0./K)+(r-0.5.*s^2).*(T-t(1)))/(s.*sqrt(T-t(1)));
BS=S0.*normcdf(d1)-K.*exp(-r.*(T-t(1))).*normcdf(d2);

With MC my answer is around 17, but with BS is always 2 point something. Could you please help me to find the mistake?

$\endgroup$
3
$\begingroup$

It seems that you are using mu in your MC code where you should be using r. The reason that we use r instead of mu is that we need to perform risk-neutral pricing. Please read about that in detail if you are not familiar.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.