9
$\begingroup$

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?

$\endgroup$
12
$\begingroup$

Yes, you need Cholesky factorization.

You can find the general idea here:
http://www.goddardconsulting.ca/option-pricing-monte-carlo-basket.html

Plus the implementation in MATLAB here:
http://www.goddardconsulting.ca/matlab-monte-carlo-assetpaths-corr.html

The code in general should be easily translatable. The only difficulty is the Cholesky factorization where VBA code can be found here:
http://vbadeveloper.net/numericalmethodsvbacholeskydecomposition.pdf

$\endgroup$
  • 2
    $\begingroup$ 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. $\endgroup$ – will May 28 '16 at 10:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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