Skip to content
All library documents

Mark-to-Market Cross-Currency Basis Swap Valuation

Article Quant Q&A · Author: Bseg94

Summary

The document describes an attempt to reproduce a EUR–USD cross-currency basis curve under mark-to-market, or periodically resetting notional, conventions. The author reports having built the relevant EUR and USD overnight and term curves, then asks whether the proposed USD-leg formula is correct and how the EUR leg should be valued in the mark-to-market setup. They note that applying the constant-notional formula to both legs reproduces the constant-notional curve, but not the Bloomberg result under the newer convention.

The sole reply points to consistency of the FX forward inputs with the curves being constructed: forward rates should align with the spot rate and the discount factors implied by those curves. This identifies an input consistency check, rather than establishing a full valuation formula or Bloomberg’s precise implementation. The exchange offers no derivation, independent validation, or resolution of the reported long-maturity discrepancy, so it is a starting point for debugging rather than a complete replication method.

Key ideas

  • Mark-to-market cross-currency swaps reset notionals using FX rates, changing leg cash flows from the constant-notional case.
  • FX forward inputs should be consistent with the spot rate and discount curves used in valuation.
  • Matching constant-notional results does not establish that a formula is correct for mark-to-market swaps.
  • The reply suggests an input consistency check but does not give a complete bootstrap method or explain the reported discrepancy.

Tags

Full text
# Mark-to-market cross-currency basis swap valuation


# Mark-to-market cross-currency basis swap valuation












I'm looking to replicate the EUR vs USD cross-currency basis curve that Bloomberg outputs (EUR.OIS collateralized in USD). I understand that Bloomberg is currently using the mark-to-market implementation instead of the constant notional implementation that was used in the past.

So far, I've succeeded in replicating the EUR.OIS, USD.OIS, EUR.3M and USD.3M curves (with OIS curve stripping). When I try to bootstrap the EUR vs USD basis curve, using as an additional input the USDEUR FX forward rates, I'm not managing to replicate the cross-currency curve. So far, I've been using the following formula for the USD leg (with periodically resetting notional):

For the EUR leg, I've been using the same formula as in the constant notional case (for the record, using this formula for both legs allows me to reproduce the EUR vs USD basis curve in the constant notional case):

Source: http://www.cs.utah.edu/~cxiong/Files/Docs/Changwei_Xiong_InterestRateModels.pdf, p.37

I've been looking for other valuation formulas for the MtM case but can't find anything more concrete that allows me to better replicate Bloomberg's EUR vs USD basis curve.

Can anyone tell me whether the formula for the USD leg is correct or whether Bloomberg uses another implementation to bootstrap their cross-currency basis curves? At a maturity of 30 years, I'm currently getting a 1.5% difference compared to Bloomberg's result.

Thanks in advance.

## Answer by Adam N. (score 2)

https://quant.stackexchange.com/a/53013

One thing that comes to mind are the USDEUR FX forward rates used as input. Those should be consistent with the curves you're building, ie. $F_{X{$}}(t_0,f_i) = S_{X{$}}(t_0) \cdot P_X(t_0,a_{i,s}) / P_{$}(t_0,a_{i,s})$

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.