Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

So I'm trying to simulate currency movements for several currencies with a given correlation matrix. I have the initial price, drift and volatility for each of the separate currencies, and I want to simulate their prices against USD with correlations following the matrix. I'm doing this in Excel. I read somewhere that multiplying a vector of independent GBMs with the Cholesky decomposition of the correlation matrix gives the required result, but doesn't work.

Any help?

share|improve this question
Very warm welcome to quant.stackexchange :-) If you found the answer useful you can accept it - Thank you – vonjd Apr 29 '13 at 9:19
up vote 9 down vote accepted

Yes, you need Cholesky factorization.

You can find the general idea here:

Plus the implementation in MATLAB here:

The code in general should be easily translatable. The only difficulty is the Cholesky factorization where VBA code can be found here:

share|improve this answer
Cholesky is often used because it's easy to implement - it can suffer from instability though - you'd do better to used svd. You also have the problem of your matrices not being positive definite, which is a problem for cholesky but not svd. – will May 28 at 10:57

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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