I'm trying to simulate correlated assets under Heston model. I coded the QE scheme for a single asset but i dont understand the next step: How should i set the correlation matrix given my n-asset independent stock and variance paths ? Should i generate those paths first given my asset-variance correlation, then decorrelate my subsystem (i mean from the same asset-variance system) or what ? And if so, how ? My question is really what's the first step ? From what i read in the papers below ill have to then calibrate my asset-asset correlation given the historical one but that's an another issue. I read wadman, dimitroff and De Innocentis but I'm still struggling. Help would be appreciated. Many thanks

Wadman, 2010: an advanced Monte Carlo for the multi asset Heston model

Dimitroff: a parsimonious multi asset Heston model: calibration and derivative pricing

De Innocentis: Efficient simulation of the multi asset Heston model

  • $\begingroup$ Hello @Cedric and welcome to SE. Could you please add clear references (possibly links) to the papers you mention? Your question seems general : how to do a QE scheme for n correlated assets?, is this correct? If that's the case could you edit it to make it clearer to the most people? $\endgroup$
    – byouness
    May 15, 2018 at 9:06

1 Answer 1


I am not familiar with the QE scheme, but I think your question is more general: You want to do a multi-variate diffusion, for $n$ correlated processes.

You have your instantaneous correlations matrix $R = (\rho_{i,j})_{i,j}$ where $d \langle W^i, W^j \rangle_t = \rho_{i,j} dt$, and I am assuming here you know how to simulate brownian increments for a single asset.

At each time step $t$, simulating $n$ correlated brownian increments boils down to simulating $n$ correlation gaussian variables $Z = (z_i)_i$. To achieve this, you need to:

  • Simulate n uncorrelated gaussian variables $\bar{Z} = (\bar{z_i})_i$;
  • Apply Cholesky decomposition to your correlation matrix $R$ in order to get its so-called square root $L$ (if the correlation is constant then you will do this step only once).
  • Multiply the obtained matrix by the vector of the uncorrelated gaussian to get your correlated gaussians: $L \bar{Z} = Z$.

As you said in the question, the correlation calculation or calibration is another issue. Depending on the context, it might be better to use the historical correlation or to calibrate it from correlation swaps, or other financial products.

  • $\begingroup$ Ok this part I understood thank you. I was just not sure about the QE scheme. However, when generating correlated gaussians am i supposed to have, with an error of Epsilon, the correlation that I input in my correlation matrix ? In Heston the volatility is stochastic, therefore it's not as in BS model where the correlation simulated is equal to the historical correlation. With Heston, when computing the log returns correlation, they differ a lot from the expected one. Any guess of what I'm doing wrong ? $\endgroup$
    – Cedric_W
    May 16, 2018 at 11:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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