FX Swap

Table of Contents

An FX swap is the spot-forward pair of the FX family. Two parties exchange currencies now and reverse the exchange later. ORE models it with the trade type FxSwap. This note records the domain grounding, as ORE documents it in its product catalogue.

1. Identifiers

What a trader books it as, and what to grep for. The codes are the trade type catalogue's, which is what the database enforces.

Field Value
Full name FX Swap
Short name FX Swap
ORE Studio product code FxSwap
Asset class fx
Family Swap
ORE trade data node FxSwapData
ORE documentation fxswap.tex

2. Summary

An FX swap exchanges a set amount of one currency for another at the start of the contract, then reverses the exchange at the end. The start exchange uses the FX spot rate. The end exchange uses the FX forward rate quoted at the start. The trade data names the near and far dates and the amounts. Settlement can be cash or physical. The value moves with spot and the forward points.

3. Detail

3.1. What it is

ORE defines the product as follows:

An FX Swap is a contract that involves the exchange of a set amount of one currency for another at the start of the contract, and then the reverse exchange at the end of the contract. The exchange at the start uses the FX spot rate, whereas the exchange at the end uses the FX forward rate at the start.

Source: ORE User Guide, Products catalogue, fxswap.tex.

3.2. In plain terms

An FX swap is a spot trade and a forward trade in one contract. One side buys a currency today and sells it back later. The near exchange fixes the amount of currency delivered now. The far exchange fixes the amount delivered at the end. Banks use the product to move liquidity between currencies.

3.3. How it works in ORE

The FxSwapData node is the trade data container. It holds no sub-nodes. The NearDate names the first exchange, the FarDate the final one. The near leg names the bought and sold currencies and amounts. The far leg names the bought and sold amounts; its currencies mirror the near leg. Settlement selects cash or physical delivery. A non-deliverable FX swap is a cash-settled swap. The settlement type does not impact pricing in ORE.

ORE notes that FX swaps also cover precious metals swaps, with currencies XAU, XAG, XPT, and XPD, and cryptocurrency swaps.

3.4. Mathematical notes

The near leg settles at the spot rate. The far leg settles at the forward rate implied at trade time. The swap value combines the two legs as present values in one base currency. The forward points, the difference between forward and spot, price the roll. An FX swap starting today is close to a collateralised loan of one currency against the other.

3.5. What moves its value (static sensitivities)

  • The FX spot rate. It drives both legs.
  • The forward points of the currency pair.
  • The discount rates in both currencies.
  • The near and far amounts.
  • The distance between the near and far dates.

The two legs offset most of the spot exposure. What remains is the forward exposure between the near and far legs. A swap whose legs are balanced is mainly sensitive to the forward points.

3.6. How the profile ages (dynamic sensitivities)

Before the near date the trade carries both exchanges. At the near date the first exchange settles. What remains is a single forward exchange to the far date. From then on the position ages like an FX Forward. At the far date the final exchange settles and the trade stops.

3.7. Why a customer would want it

A treasurer rolls a maturing forward into a new one. A bank moves surplus liquidity from one currency to another. A trader takes a view on forward points without spot risk. In ORE Studio a customer books FX swaps to value them and run sensitivities on the ORE engine.

3.8. Example

ORE's catalogue shows a euro-dollar swap:

<FxSwapData>
  <NearDate>2018-09-01</NearDate>
  <NearBoughtCurrency>EUR</NearBoughtCurrency>
  <NearBoughtAmount>1000000</NearBoughtAmount>
  <NearSoldCurrency>USD</NearSoldCurrency>
  <NearSoldAmount>1140000</NearSoldAmount>
  <FarDate>2028-09-01</FarDate>
  <FarBoughtAmount>1300000</FarBoughtAmount>
  <FarSoldAmount>1000000</FarSoldAmount>
  <Settlement>Cash</Settlement>
</FxSwapData>

Source: ORE User Guide, Products catalogue, fxswap.tex, listing FX Swap data.

4. See also

Emacs 29.3 (Org mode 9.6.15)