SwaptionGroupBase

SwaptionGroupBase#

class sigtech.framework.instruments.swaption.SwaptionGroupBase

Baseclasses: VolsurfaceBasedGroup

Subclasses: SwaptionGroup, OISSwaptionGroup

A class representing a base for swaption group (either IBOR or OIS). Shouldn’t be used on its own.

property available_data_points

Available data points

cash_settled: Optional[bool]
currency: str
property default_data_point

Default data point

exchange_code: Optional[str]
property holidays: str

List of holiday calendars for this instrument.

property valuation_time

Valuation time for the instrument group Included so we can supply this to TradingManager.data_point_from_time

property valuation_tzinfo

Valuation time zone for the instrument group Included so we can supply this to TradingManager.data_point_from_time

discount_curves(data_dates, data_point=None)

Discount curves for the instrument.

Parameters:
  • data_dates – Input date or list of dates for which the curves are needed.

  • data_point – Input data point (optional).

Returns:

pandas Series.

exchange() Exchange

Exchange object where options are traded.

classmethod from_currency(currency)

Return a group object from a currency ticker.

Parameters:

currency – Currency ticker.

Returns:

Group object.

get_atm_vol(expiry: str, swap_tenor: str, start_date: date, end_date: date = None, data_point=None)

Get rolling daily atm normal volatility for the expiry x swap_tenor swaptions.

Parameters:
  • expiry – Swaption expiry string, e.g. '5Y' or '1M'.

  • swap_tenor – Underlying swap tenor, e.g. '5Y'.

  • start_date – Requested series start date

  • end_date – Requested series end date. asof_date used if omitted (optional).

  • data_point – Data point for the vol surface (optional).

Returns:

pd.Series of daily vols

classmethod get_group(currency: str)

Create on the fly SWAPTION GROUP for given currency

Parameters:

currency – e.g. ‘EUR’ or ‘USD’

Returns:

get_option_dependencies(start_date: date, maturity: Union[date, str], data_points: Optional[list[sigtech.framework.infra.data_adapter.common.DataPoint]] = None, **kwargs) list[sigtech.framework.internal.infra.mu.graph.registry.factory.Dependency]

Additional Dependencies at the Swaption level - there aren’t any

get_option_group_dependencies(t: time, tz: tzinfo, valuation_currency: str, start_dt: datetime, end_dt: datetime, greek_calculation_dependencies: bool = False) list[sigtech.framework.internal.infra.mu.graph.registry.factory.Dependency]

Dependencies at the option group level

get_swaption(option_type: str, strike: Optional[Union[float, str]], start_date: date, expiry: Union[date, str], swap_tenor: str, forward_premium: Union[float, bool] = None, end_date: date = None, history_start: date = None)

Gets the swaption for a given type of option, strike and expity/tenor

Parameters:
  • option_type'Payer' or 'Receiver'

  • strike – Strike of swaption. See Swaption for format details.

  • start_date – Start date of the history (also used for expiry offset if tenor given)

  • expiry – Maturity date of the option or expiry tenor (e.g. '3M')

  • swap_tenor – Tenor of the underlying swap (e.g. '5Y')

  • forward_premium – Optional - in case of forward (rather than spot) premium - either forward premium value, or True to imply it from the swaption value (i.e. start_date 0 npv)

  • end_date – Date when the option position is closed (optional, used purely for calculation optimisation).

  • history_start – Optional - date on which history should start, in case it’s needed before the start_date (e.g. for strategy sizing, or valuing if start_date is a non-business day).

Returns: