RollingButterflyBondsStrategy

RollingButterflyBondsStrategy#

class sigtech.framework.strategies.structure_basket_strategies.RollingButterflyBondsStrategy

Baseclasses: RollingStructureBasketStrategy

Subclasses: RollingButterflyBonds

Rolling 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.

  • rolling_frequencies: List of strings used to set roll dates, e.g. [‘1M’].

  • 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.RollingButterflyBondsStrategy(
    country='US',
    currency='USD',
    tenor_short='2Y',
    tenor_medium='5Y',
    tenor_long='10Y',
    direction='long',
    start_date=dtm.date(2018, 2, 15),
    quantity=100,
    rolling_frequencies=['1M']
)
country: str
quantity: Optional[float]
quantity_type: Optional[Literal['notional', 'dv01']]
rolling_frequencies: list
run_type: Optional[str]
tenor_long: str
tenor_medium: str
tenor_short: str
unit_type: Optional[str]
weights: Optional[Literal['equal', 'delta_neutral']]