FXRiskReversal#

class rateslib.instruments.FXRiskReversal(*args, strike=[NoInput.blank, NoInput.blank], premium=[NoInput.blank, NoInput.blank], metric='vol', **kwargs)#

Bases: FXOptionStrat, FXOption

Create an FX Risk Reversal option strategy.

For additional arguments see FXOption.

Parameters:
  • args (tuple) – Positional arguments to FXOption.

  • strike (2-element sequence) – The first element is applied to the lower strike put and the second element applied to the higher strike call, e.g. [“-25d”, “25d”].

  • premium (2-element sequence, optional) – The premiums associated with each option of the risk reversal.

  • metric (str, optional) – The default metric to apply in the method rate()

  • kwargs (tuple) – Keyword arguments to FXOption.

Notes

When supplying strike as a string delta the strike will be determined at price time from the provided volatility.

Buying a Risk Reversal equates to selling a lower strike FXPut and buying a higher strike FXCall.

This class is essentially an alias constructor for an FXOptionStrat where the number of options and their definitions and nominals have been specifically set.

Attributes Summary

rate_weight

rate_weight_vol

style

Methods Summary

analytic_greeks([curves, solver, fx, base, ...])

Return various pricing metrics of the FX Option.

cashflows_table([curves, solver, fx, base])

delta([curves, solver, fx, base, local])

Calculate delta risk of an Instrument against the calibrating instruments in a Solver.

gamma([curves, solver, fx, base, local])

Calculate cross-gamma risk of an Instrument against the calibrating instruments of a Solver.

npv([curves, solver, fx, base, local, vol])

plot_payoff([range, curves, solver, fx, ...])

rate([curves, solver, fx, base, vol, metric])

Return the mid-market rate of an option strategy.

Attributes Documentation

rate_weight = [-1.0, 1.0]#
rate_weight_vol = [-1.0, 1.0]#
style = 'european'#

Methods Documentation

analytic_greeks(curves=NoInput.blank, solver=NoInput.blank, fx=NoInput.blank, base=NoInput.blank, local=False, vol=NoInput.blank)#

Return various pricing metrics of the FX Option.

Parameters:
  • curves (list of Curve) – Curves for discounting cashflows. List follows the structure used by IRDs and should be given as: [None, Curve for domestic ccy, None, Curve for foreign ccy]

  • solver (Solver, optional) – The numerical Solver that constructs Curves from calibrating instruments.

  • fx (float, FXRates, FXForwards, optional) – The immediate settlement FX rate that will be used to convert values into another currency. A given float is used directly. If giving a FXRates or FXForwards object, converts from local currency into base.

  • base (str, optional) – The base currency to convert cashflows into (3-digit code), set by default. Only used if fx is an FXRates or FXForwards object.

Return type:

float, Dual, Dual2

Notes

cashflows_table(curves=NoInput.blank, solver=NoInput.blank, fx=NoInput.blank, base=NoInput.blank)#
delta(curves=NoInput.blank, solver=NoInput.blank, fx=NoInput.blank, base=NoInput.blank, local=False, **kwargs)#

Calculate delta risk of an Instrument against the calibrating instruments in a Solver.

Parameters:
  • curves (Curve, str or list of such, optional) –

    A single Curve or id or a list of such. A list defines the following curves in the order:

    • Forecasting Curve for leg1.

    • Discounting Curve for leg1.

    • Forecasting Curve for leg2.

    • Discounting Curve for leg2.

  • solver (Solver, optional) – The Solver that calibrates Curves from given Instruments.

  • fx (float, FXRates, FXForwards, optional) – The immediate settlement FX rate that will be used to convert values into another currency. A given float is used directly. If giving a FXRates or FXForwards object, converts from local currency into base.

  • base (str, optional) – The base currency to convert cashflows into (3-digit code), set by default. Only used if fx_rate is an FXRates or FXForwards object.

  • local (bool, optional) – If True will ignore base - this is equivalent to setting base to None. Included only for argument signature consistent with npv.

Return type:

DataFrame

gamma(curves=NoInput.blank, solver=NoInput.blank, fx=NoInput.blank, base=NoInput.blank, local=False, **kwargs)#

Calculate cross-gamma risk of an Instrument against the calibrating instruments of a Solver.

Parameters:
  • curves (Curve, str or list of such, optional) –

    A single Curve or id or a list of such. A list defines the following curves in the order:

    • Forecasting Curve for leg1.

    • Discounting Curve for leg1.

    • Forecasting Curve for leg2.

    • Discounting Curve for leg2.

  • solver (Solver, optional) – The Solver that calibrates Curves from given Instruments.

  • fx (float, FXRates, FXForwards, optional) – The immediate settlement FX rate that will be used to convert values into another currency. A given float is used directly. If giving a FXRates or FXForwards object, converts from local currency into base.

  • base (str, optional) – The base currency to convert cashflows into (3-digit code), set by default. Only used if fx_rate is an FXRates or FXForwards object.

  • local (bool, optional) – If True will ignore base. This is equivalent to setting base to None. Included only for argument signature consistent with npv.

Return type:

DataFrame

npv(curves=NoInput.blank, solver=NoInput.blank, fx=NoInput.blank, base=NoInput.blank, local=False, vol=NoInput.blank)#
plot_payoff(range=NoInput.blank, curves=NoInput.blank, solver=NoInput.blank, fx=NoInput.blank, base=NoInput.blank, local=False, vol=NoInput.blank)#
rate(curves=NoInput.blank, solver=NoInput.blank, fx=NoInput.blank, base=NoInput.blank, vol=NoInput.blank, metric=NoInput.blank)#

Return the mid-market rate of an option strategy.

Parameters:
  • curves

  • solver

  • fx

  • base

  • vol

  • metric

Return type:

float, Dual, Dual2

Notes

The different types of metric return different quotation conventions.

  • ‘vol’: sums the mid-market volatilities of each option multiplied by their respective rate_weight_vol parameter. For example this is the default pricing convention for a FXRiskReversal where the price is the vol of the call minus the vol of the put and the rate_weight_vol parameters are [-1.0, 1.0].

  • ‘pips_or_%’: sums the mid-market pips or percent price of each option multiplied by their respective rate_weight parameter. For example for a FXStraddle the total premium is the sum of two premiums and the rate_weight parameters are [1.0, 1.0].