Loading...
Home / Cross Currency Swap Valuation

Home Forums Getting Started Cross Currency Swap Valuation

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #6149
    rkapl
    Participant

    Dear ORE-Enthusiasts!

    We’re currently valuing our Swap Portfolio, including some Xccy Swaps and the question on valuation of these swaps arose.
    In the past we have done this using currency basis swaps in Addition to the respective currencies yield curves.
    Now I don’t see any possibility to include the Basis swaps in todaysmarket.xml or curveconfig.xml, except with curves designed for collateralization (“CHF in USD”). For a general valuation purpose this is too restrictive however, ie. CHF/USD and CHF/EUR swaps can’t be valued with the “CHF in USD” curve at the same time..

    -regards,
    Roland

    #6150
    Anonymous
    Inactive

    Hi Roland,

    You are free to configure ORE however you like, depending on your requirements, some examples include:

    1) Old fashioned, Single curve, Libor discounting, just set the correct curve spec in todaysmarket.xml for discounting with libor curves

    2) OIS discounting: Bootstrap FedFunds for USD flows, Eonia for EUR and TOIS or SARON for CHF, again just configure it in todays market, of course this will not capture the basis.

    3) XOIS discounting: Assume a single collateral currency, e.g. USD, use FedFunds for USD discounting and then build “CHF IN USD” and “EUR IN USD” curves as you have seen. This will use USD/CHF and EUR/USD basis swap quotes in the bootstrap, but you do not see them in todaysmarket as such, rather the curves are set-up correctly and discounting / pricing is done as with a vanilla swap.

    In all cases everything will be priced, we have tried not to put in any restrictions or assumptions, that is left to the user.

    It sounds like you want to do (3) but with your CHF/EUR swap you are not assuming USD collateral but rather want to assume EUR or CHF, is that correct? so you are not assuming that the trades are in the same netting set. In that case the simplest thing for you to do is have two configurations (one EUR based and one USD based) and either run ORE twice or build a new application that can switch between the two configurations for different trades based on rules that you decide, we have not imposed any logic or assumptions on which curves are used to discount each cash flow.

    Hope that helps, I’m confident you can reproduce the prices you are looking for, it’s just a matter of configuration.

    Regards,
    Niall.

    #6151
    rkapl
    Participant

    Dear Niall!

    Thank you very much for the detailed Explanation, it’s 3) indeed.
    We’ve decided to settle for the <ForeignCCY> in EUR Option, as we have collateral in EUR (based in EUR) and the Triangulation of Basis swap rates should also be sufficient for ForeignCcy1/ForeignCcy2 Swaps (e.g. CHF/USD).
    At the same time we have the collateral in EUR effect covered with that as well.

    -regards,
    Roland

    #6152
    Roland Lichters
    Keymaster

    Hi Roland,

    following up on Niall’s comments, please have a look at Example_8. It covers pricing and exposure simulation for a cross currency swap, so the set up we have chosen there takes cross currency basis into account, and it is assuming EUR collateral.

    In Examples/Example_8/Input/ore.xml we say that we want to use the market configuration “collateral_eur”.

    In Examples/Input/todaysmarket.xml you then see that this means we use the following discount curves

    Yield/EUR/EUR1D
    Yield/USD/USD-IN-EUR
    Yield/GBP/GBP-IN-EUR
    Yield/CHF/CHF6M
    Yield/JPY/JPY6M

    i.e. Eonia discounting in EUR and e.g. a USD-IN-EUR for discounting USD cash flows.

    And finally in Examples/Input/curveconfig.xml you will find the following which defines how the USD-IN-EUR curve is constructed from FX Forwards and Cross Currency Basis Swaps:

    USD-IN-EUR
    USD collateralized in EUR discount curve
    USD



    FX Forward

    FXFWD/RATE/EUR/USD/3M
    FXFWD/RATE/EUR/USD/6M
    FXFWD/RATE/EUR/USD/9M
    FXFWD/RATE/EUR/USD/12M

    EUR-USD-FX-CONVENTIONS
    EUR1D
    FX/RATE/EUR/USD


    Cross Currency Basis Swap

    CC_BASIS_SWAP/BASIS_SPREAD/USD/3M/EUR/3M/2Y
    CC_BASIS_SWAP/BASIS_SPREAD/USD/3M/EUR/3M/3Y
    CC_BASIS_SWAP/BASIS_SPREAD/USD/3M/EUR/3M/4Y
    CC_BASIS_SWAP/BASIS_SPREAD/USD/3M/EUR/3M/5Y
    CC_BASIS_SWAP/BASIS_SPREAD/USD/3M/EUR/3M/7Y
    CC_BASIS_SWAP/BASIS_SPREAD/USD/3M/EUR/3M/10Y

    CC_BASIS_SWAP/BASIS_SPREAD/USD/3M/EUR/3M/15Y
    CC_BASIS_SWAP/BASIS_SPREAD/USD/3M/EUR/3M/20Y
    CC_BASIS_SWAP/BASIS_SPREAD/USD/3M/EUR/3M/30Y
    CC_BASIS_SWAP/BASIS_SPREAD/USD/3M/EUR/3M/40Y
    CC_BASIS_SWAP/BASIS_SPREAD/USD/3M/EUR/3M/50Y

    EUR-USD-XCCY-BASIS-CONVENTIONS
    EUR1D
    FX/RATE/EUR/USD USD3M EUR3M


    Discount
    LogLinear
    A365
    0.000000000001

    I hope that helps.
    Regards,
    Roland

    #6153
    Roland Lichters
    Keymaster

    Hi Roland,
    I copied the XML snippets to my post, but the tags got removed, unfortunately. I think you get my point though.
    Regards,
    Roland

    #6154
    rkapl
    Participant

    Dear Roland!

    I managed to set it up now like you suggested and it works very well!

    regards,
    Roland

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.