How to implement a Correlated Brownian Motion correctly
9 views (last 30 days)
Show older comments
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 29 Apr 2018
Edited: Walter Roberson
on 29 Apr 2018
Do not close questions that have an answer. The answer may be of use to other people.
Answers (1)
jean claude
on 12 Dec 2017
here is a clear demonstration http://www.goddardconsulting.ca/matlab-monte-carlo-assetpaths-corr.html
See Also
Categories
Find more on Financial Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!