MATLAB Answers

# How to implement a Correlated Brownian Motion correctly

52 views (last 30 days)
Nina on 12 Dec 2017
Edited: Walter Roberson on 29 Apr 2018
I have trouble implementing a Correlated Brownian Motion. I need the simulation for 1000 paths and T=5. Only the values of the evolution for t=1 and T=5 are relevant. The following code is running, but does not return the expected values. Does anybody know what I did wrong? Thankful for any advice or hint!
X1=100;
X2=90;
r=0.03;
sigma1=0.25;
sigma2=0.25;
rho=0.5;
T=5;
sigma=[sigma1 0;0 sigma2];
corr=[1 rho;rho 1];
cov=sigma*corr*sigma;
R=chol(cov,'lower');
N=1000;
X1_t=zeros(N,T+1);
X1_t(:,1)=A_0;
X2_t=zeros(N,T+1);
X2_t(:,1)=L_0;
dt=1;
for i=1:N
X=randn(T,2);
W=X*R;
for j=2:T+1
X1_t(i,j)=X1_t(i,j-1)*exp(r*dt+sigma1.*W(j-1,1)-(sigma1.^2./2)*dt);
X2_t(i,j)=X2_t(i,j-1)*exp(r*dt+sigma2.*W(j-1,2)-(sigma2.^2./2)*dt);
end
end

#### 2 Comments

Walter Roberson on 20 Apr 2018
Please do not close Questions that have an Answer.
Walter Roberson on 29 Apr 2018
Do not close questions that have an answer. The answer may be of use to other people.

Sign in to comment.

### Answers (1)

jean claude on 12 Dec 2017

#### 1 Comment

Nina on 12 Dec 2017
Thank you very much for the link, but I would like to solve it with the for-loops :-/

Sign in to comment.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by