ButterflyBonds

ButterflyBonds#

class sigtech.framework.strategies.structure_basket_strategies.ButterflyBonds

Baseclasses: StructureBasketBase

Strategy buying bond with medium-term tenor (tenor_medium) and selling same ccy bond with short-term tenor (tenor_short) and long-term tenor (tenor_long) if direction is long, else other way around. All other characteristics take default values. The strategy aims to benefit from changing curvature of the curve.

  • country: Two-letter country code, e.g. 'US' or 'CA'.

  • currency.

  • quantity_type: notional or dv01.

  • quantity: Notional or DV01 (depending on quantity_type) of the medium bond, defaults to 1.

  • tenor_short: Tenor of the short-term bond (e.g. ‘2Y’).

  • tenor_medium: Tenor of the medium-term bond (e.g. ‘5Y’).

  • tenor_long: Tenor of the long-term bond (e.g. ‘10Y’).

  • run_type: Run type: 'ON_THE_RUN', 'FIRST_OFF_THE_RUN', … 'THIRD_OFF_THE_RUN' supported,

    defaults to 'ON_THE_RUN'.

  • direction: long or short, defaults to long.

  • start_date: Start date.

  • weights: Swap weights calculation (equal or delta_neutral based on DV01), defaults to equal.

Example object creation:

strat = sig.ButterflyBonds(country='US',
                       currency='USD',
                       tenor_short='2Y',
                       tenor_medium='5Y',
                       tenor_long='10Y',
                       direction='long',
                       start_date=dtm.date(2018, 2, 15),
                       quantity=100)
country: str
currency: Optional[str]
quantity: Optional[float]
quantity_type: Optional[Literal['notional', 'dv01']]
run_type: Optional[str]
tenor_long: str
tenor_medium: str
tenor_short: str
weights: Optional[Literal['equal', 'delta_neutral']]
strategy_initialization(dt)

Initial decision run on the start date of the strategy.

Parameters:

dt – Reference datetime.

structure_instruments() list[tuple[str, float]]

Return bonds’ weights.