FX Vanilla Option
An FX option is a financial instrument that provides an option based on the future value of a foreign exchange. The option is European, exercised only on the exercise date.
For example, a call on a ‘EUR 1.00 / USD -1.41’ exchange is the option to perform a foreign exchange on the expiry date, where USD 1.41 is paid to receive EUR 1.00.
Key classes
An FX Vanilla Option is represented in Strata using the FxVanillaOption
class.
The FxVanillaOption
class stores details of the product that was agreed.
The trade details are stored in FxVanillaOptionTrade
class.
The underlying FX transaction that will occur if the option is in the money is represented by an
FxSingle
.
An FxVanillaOption
can be created as follows:
FxSingle fx = FxSingle.of(CurrencyAmount.of(Currency.USD, 1000),
FxRate.of(EUR, USD, 1.115),
LocalDate.of(2016, 10, 5));
FxVanillaOption fxOpt = FxVanillaOption.builder()
.longShort(SHORT)
.expiryDate(LocalDate.of(2016, 10, 7))
.expiryTime(LocalTime.of(13, 00))
.expiryZone(ZoneId.of("Europe/Paris"))
.underlying(fx)
.build();
TIP: The strata-loader project provides the ability to load an FX Vanilla Option from CSV.
Risk measures
The strata-measure
module provides high-level risk measures for FX Vanilla Options.
The main entry point is
FxVanillaOptionTradeCalculations
.
Two methods of calculation are supported:
- Black
- Vanna Volga
The following measures are available:
- present value, and associated sensitivity
- currency exposure
- current cash
These measures are also available using the calculation API.
The strata-pricer
module provides lower-level pricing support for FX Singles:
BlackFxVanillaOptionTradePricer
, see Javadoc.BlackFxVanillaOptionProductPricer
, see Javadoc.VannaVolgaFxVanillaOptionTradePricer
, see Javadoc.VannaVolgaFxVanillaOptionProductPricer
, see Javadoc.
Product model
The following table summarizes the fields on FxVanillaOption
that can be used to control the product.
For more detail on the meaning of each field, see the
Javadoc;
Property name | Description | Required/Optional |
---|---|---|
longShort | Whether the option is long or short | Required |
expiryDate | The date that the option expires | Required |
expiryTime | The time-of-day when the option expires | Required |
expiryZone | The time-zone of the expiry time | Required |
underlying | The FxSingle that the option is based on | Required |