# Simulation of Stock Price in Matlab

Matlab → Simulation → Brownian Motion → Stock Price

The stock price $S$ following geometric Brownian motion is given by

$dS=\mu Sdt+\sigma Sdz$

This is geometric Brownian motion stochastic differential equation, and the discrete-time version of the equation is

$\Delta S=\mu S\Delta t+\sigma S\varepsilon \sqrt{\Delta t}$

So, the change in stock price from time 0 to $t$ is given by

$S(t)-S(0)=\mu S\Delta t+\sigma S \sum_{i=1}^{i=n}\varepsilon_i \sqrt{\Delta t}$

Stock price simulation in Matlab
t=1; n=500; dt=t/n; x=0:dt:t; dz=sqrt(dt)*randn(1,n); s=15; %Initial stock price mu=0.1; sigma=0.3; ds=mu*s*dt+sigma*s*dz; st=s+cumsum(ds); plot(x,[s,st])

In the next example, stock prices are simulated in Matlab with different $\mu$ and $\sigma$ when the stock prices are assumed to follow geometric Brownian motion stochastic differential equation.

Stock price simulation using different mu and sigma
t=1; n=500; dt=t/n; x=0:dt:t; dz=sqrt(dt)*randn(1,n); s=20; %Initial stock price mu1=0.1; sigma1=0.2; mu2=0.2; sigma2=0.3; mu3=0.3; sigma3=0.45; ds1=mu1*s*dt+sigma1*s*dz; ds2=mu2*s*dt+sigma2*s*dz; ds3=mu3*s*dt+sigma3*s*dz; st1=s+cumsum(ds1); st2=s+cumsum(ds2); st3=s+cumsum(ds3); plot(x,[s,st1],'r',x,[s,st2],'g',x,[s,st3],'b')

Posted