My question is how to do Monte Carlo simulation for FX forward contracts. Just imagine you have bought a bunch of FX forwards (in various currencies and various tenors) for hedging purposes and you want to simulate the value of those contracts at time t.

You could easily simulate the correlated spot prices using sth like Cholesky, however, to measure the value of your forward contracts you also need to know the composition of the term structure at time t. the question is then how do you simulate the term structure at time t and how do you combine them with the simulated spot. is there a better of way of doing this?

  • $\begingroup$ Why not 'easily simulate the correlated spot prices using sth like Cholesky' and call this series forward prices? I mean, unless there are both forward and spot prices in your simulation and you want to impose consistency between them, you might as well call one the other. $\endgroup$ May 10, 2018 at 14:29
  • $\begingroup$ Could you explain what is the purpose here, as this will help to give you a more precise answer? $\endgroup$
    – byouness
    May 14, 2018 at 17:33
  • $\begingroup$ I think the best way to do this will depend on what you actually want to use it for. If you want to do this properly, it's actually quite complex - we need to know what you want to give you the most appropriate answer. $\endgroup$
    – will
    Jun 10, 2018 at 13:43
  • $\begingroup$ @will , I just want to see my 95% MtM value of my hedges before the settlement date. imagine my forward fx contracts are to settle on June 2021, but i need to know what Mtm value of those hedges would look like say on June 2020. $\endgroup$
    – RamRam
    Jun 13, 2018 at 0:51

3 Answers 3


If I understand correctly, you want to calculate the present value of some FX Forward contracts. The only part of the value I can see which could require any MC would be looking at the XVA components, which is much less about the forward and much more about the counterparty & collateralisation.

If you just want to value some vanilla FX Forwards, don't do MC.


I assume this exercise is for Risk management purpose e.g. calculating VaR etc. If this is the case then you can follow below approach.

For simplicity, I assume you have just 1 pair and you have positions on Spot, 1 month forward and 2 months forward on that pair. Below are the steps.

  1. Construct continuous contracts for each tenor where you have positions. In this case, it is 1 month and 2months
    1. So you have 3 continuous time series viz Spot, 1 month forward and 2 months forward
    2. Calculate logarithmic return for each time series. If your VaR horizon is 1 day, then daily return should be applicable
    3. Map those return to current prices for Spot, 1-month, and 2-months to simulate prices for all 3 series
    4. Revalue your portfolio based on simulated prices, and deduct each scenario from current M2M value
    5. Thereby you will get simulated P/L of your portfolio (1-day)
    6. Calculate 5th percentile to compute 95% 1-day VaR

If I undertand you correctly then you want to simulate some FX positions for risk measurement purposes - not for pricing. If you want to do histrical simulation then it would be something along the lines:

  1. gather spot data of your currencies and calculate (e.g. logarithmic) differences. Later you apply those differences to the current price of your currencies to get possible future scenarios. Correlations carry over from the history to the scenarios.
  2. gather (default) risk-free interest rate curves and (e.g. arithmetic) differences, apply them to the current curves to get scenarios.
  3. Valuate the FX-instruments (spot, forward) using the fair-value formulas and the input factors from above.

What you get are scenarios of changes from the current state to the future. From these you can look at the risk of your position.

Note that this analysis considers market risk only (not credit or liquidity).


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.