FX Calc Introduction
The FX Calc package provides classes for handling Currencies and Rates within the Foreign Exchange business. The package requires JDK8.
The FX Calculator is created via a FxRateCalculatorBuilder so that the FxRateCalculator can be immutable for a given set of parameters and rates
(unless you provide a BaseFxRateProvider).
Ways to import Base Rates
The FX Calculator requires Base Rates to return rates, inverse rates or cross rates. There are 3 ways to import rates via the
FxRateCalculatorBuilder
- addRateSnapshot(FxRate rate): add the rate to an internal map per CurrencyPair, an immutable map will be given to the Calculator so the bases
rates will NOT change.
- ratesSnapshot(Collection<FxRate> rates): add a collection of rates to an internal map per CurrencyPair, an immutable map will be given
to the Calculator so the bases rates will NOT change.
- baseFxRateProvider(BaseFxRateProvider) You then control when the Base Rates change, the Calculator will call the required CurrencyPair you
either every time or once (if cacheBaseRates is true).
FXRate
Once you have an
FXRate
, you can call:
- getBid: bid (amount the quoter would buy Ccy1 for a given amount of Ccy2).
- getAsk: ask (amount the quoter would sell Ccy1 for a given amount of Ccy2).
- getMid: (bid+ask)/2
- convertAmountUsingBidOrAsk: Given a monetary amount in the original currency, calculate the resulting amount in the other currency, using BID
or ASK.
- getPaymentAmountForBuying: to get the amount you would get by buying a currency amount.
- getReceiptAmountForSelling: to get the amount you would get by selling a currency amount.