_WithAnalyticFXOptionGreeks#

class rateslib.periods.protocols._WithAnalyticFXOptionGreeks(*args, **kwargs)#

Bases: Protocol

Protocol to derive analytic FXOption greeks.

Attributes Summary

Methods Summary

analytic_greeks(rate_curve, disc_curve, fx)

Return the different greeks for the FX Option.

Attributes Documentation

fx_option_params#
settlement_params#

Methods Documentation

analytic_greeks(rate_curve, disc_curve, fx, fx_vol=NoInput.blank, premium=NoInput.blank, premium_payment=NoInput.blank)#

Return the different greeks for the FX Option.

Parameters:
  • rate_curve (_BaseCurve) – The discount Curve for the LHS currency of pair.

  • disc_curve (_BaseCurve) – The discount Curve for the RHS currency of pair.

  • fx (FXForwards, optional) – The FXForward object used for forecasting the fx_fixing for deliverable cashflows, if necessary.

  • fx_vol (FXDeltaVolSmile, FXSabrSmile, FXDeltaVolSurface, FXSabrSurface, optional) – The FX volatility Smile or Surface object used for determining Black calendar day implied volatility values.

  • premium (float, Dual, Dual2, optional) – The premium value of the option paid at the appropriate payment date. Premium should be expressed in domestic currency. If not given calculates and assumes a mid-market premium.

  • premium_payment (datetime, optional) – The date that the premium is paid. If not given is assumed to be equal to the payment associated with the option period settlement_params.

Return type:

dict

Notes

Delta \(\Delta\)

This is the percentage value of the domestic notional in either the forward or spot FX rate. The choice of which is defined by the option’s delta_type.

Delta is also expressed in nominal domestic currency amount.

Gamma \(\Gamma\)

This defines by how much delta will change for a 1.0 increase in either the forward or spot FX rate. Which rate is determined by the option’s delta_type.

Gamma is also expressed in nominal domestic currency amount for a +1% change in FX rates.

Vanna \(\Delta_{\nu}\)

This defines by how much delta will change for a 1.0 increase (i.e. 100 log-vols) in volatility. The additional

Vega \(\nu\)

This defines by how much the PnL of the option will change for a 1.0 increase in volatility for a nominal of 1 unit of domestic currency.

Vega is also expressed in foreign currency for a 0.01 (i.e. 1 log-vol) move higher in vol.

Vomma (Volga) \(\nu_{\nu}\)

This defines by how much vega will change for a 1.0 increase in volatility.

These values can be used to estimate PnL for a change in the forward or spot FX rate and the volatility according to,

\[\delta P \approx v_{deli} N^{dom} \left ( \Delta \delta f + \frac{1}{2} \Gamma \delta f^2 + \Delta_{\nu} \delta f \delta \sigma \right ) + N^{dom} \left ( \nu \delta \sigma + \frac{1}{2} \nu_{\nu} \delta \sigma^2 \right )\]

where \(v_{deli}\) is the date of FX settlement for forward or spot rate.

Kappa \(\kappa\)

This defines by how much the PnL of the option will change for a 1.0 increase in strike for a nominal of 1 unit of domestic currency.

Kega \(\left . \frac{dK}{d\sigma} \right|_{\Delta}\)

This defines the rate of change of strike with respect to volatility for a constant delta.

Raises:

ValueError – if the strike is not set on the Option.: