When you see a rate like EUR/USD of 1.6 / 1.61, it means this:
If you are on the receiving end, you always end up paying more or getting less! Note Bid <= Ask always.
A Cross Rate is sometimes calculated based on 2 other FX Rates going through a common currency, referred to as the Cross Currency. Given that the rates are following some market conventions whereby the USD is not always the main currency, the calculation is a bit more complex. Note the differences:
So what should the calculation be for EUR/GBP? or GBP/CAD? Furthermore the calculation becomes more confusing if you consider Bid and Ask...To put it simply in the words of "Mastering Financial Calculations":
The rates may be a bit old but they provide a non trivial set. Assuming, the calculator first checks for GBP cross ccy and then USD and the BASE rates below:
Currency Pair | Bid | Ask |
---|---|---|
EUR/USD | 1.30 | 1.11 |
GBP/CHF | 1.51589 | 1.5156 |
EUR/GBP | 0.79 | 0.796 |
USD/CAD | 103.931 | 103.94 |
USD/JPY | 1.089 | 1.090 |
And now the calculation examples
Currency Pair | Cross Ccy | Bid | Ask | Description |
---|---|---|---|---|
CAD/JPY | USD | 95.349541 [ bid(USD/JPY) / ask(USD/CAD) ]
calc = 103.931 / 1.090 = 95.349541 (rounded) |
95.445363 [ ask(USD/JPY) x ask(USD/CAD) ]
calc = 103.94 / 1.089 = 95.445363 (rounded) |
CAD.JPY Mkt Convention:true Cross Ccy:USD Quoter buys CAD and sells JPY at 95.349541 Quoter sells CAD and buys JPY at 95.445363 |
EUR/CHF | GBP | 1.197553 [ CHF/EUR = bid(GBP/CHF) / ask(GBP/EUR) ]
Note bid(GBP/CHF) = 1.51589 Note ask(GBP/EUR) = 1 / bid(EUR/GBP) = 1 / 0.79 = 1.265822785 calc = 1.51589 / 1.265822785 = 1.197553 |
1.206418 [ ask(GBP/CHF) / bid(GBP/EUR) ]
calc = 1.5156 / 1.256281407035 = 1.206418 (rounded to 6 dp) |
EUR.CHF Mkt Convention:true Cross Ccy:GBP Quoter buys EUR and sells CHF at 1.197553 Quoter sells EUR and buys CHF at 1.206418 |
Once you have an FXRate, you can call:
The code is available here: