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?