FX Volitility Surface example



I am looking for a simple example of building BlackFXOptionVolatilities where we feed tenor/delta/smile values from Bloomberg and build the surface using various interpolation schemes. I am reviewing documentation but I cannot find the component that would convert from deltas to strikes.
Is there any simple example I can look at? Many thanks!.


BlackFxOptionSmileVolatilities supports the volatility surface parametrised by deltas. The volatility class contains SmileDeltaTermStructure where the deltas are converted to strikes when volatility(time, strike, forward) method is called.

Examples are given in FxVolatilitySmileDataSet. The data set is used, for example, in the context of vanilla option pricing in BlackFxVanillaOptionProductPricerTest.


Thanks Yuki.
I cannot find this example on https://github.com/OpenGamma/Strata/tree/master/examples/src/main/java/com/opengamma/strata/examples.
Could you please point me to the right location?


We do not currently have a higher-level example of FX options in strata-examples.
The data set exists as a unit test here.


Hi Yuki,

That was very helpful.
One more question: does OpenGamma calibrate smiles for market straddle and RR vs smile straddle and RR?



Smiles can be calibrated to ATM vols, smile strangles and risk reversals. InterpolatedStrikeSmileDeltaTermStructure, a subclass of SmileDeltaTermStructure, realises this by various methods. For example,

  public static InterpolatedStrikeSmileDeltaTermStructure of(
     DoubleArray expiries,
     DoubleArray delta,
     DoubleArray atm,
     DoubleMatrix riskReversal,
     DoubleMatrix strangle,
     DayCount dayCount)


Can OpenGamma library be used to price options with volatility quoted with premium adjustments (e.g. USDJPY or USDCAD)?


No, premium adjusted deltas are not supported. InterpolatedStrikeSmileDeltaTermStructure assumes that the input delta values should be unadjusted deltas.


A post was split to a new topic: Running FX option example