RollingButterflySwapsStrategy

RollingButterflySwapsStrategy#

class sigtech.framework.strategies.structure_basket_strategies.RollingButterflySwapsStrategy

Baseclasses: RollingStructureBasketStrategy

Subclasses: RollingButterflySwaps

Rolling strategy buying spot starting IR receiver swap with medium-term tenor (tenor_medium) and selling same ccy swaps 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.

  • currency.

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

  • quantity_type: notional or pv01.

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

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

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

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

  • direction: long or short, defaults to long.

  • start_date: Start date.

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

Example object creation:

strat = sig.RollingButterflySwapsStrategy(
    currency='USD',
    tenor_short='2Y',
    tenor_medium='5Y',
    tenor_long='10Y',
    direction='long',
    start_date=dtm.date(2018, 2, 15),
    quantity=100,
    weights='delta_neutral',
    rolling_frequencies=['1M'])
quantity: Optional[float]
quantity_type: Optional[Literal['notional', 'pv01']]
rolling_frequencies: list
swap_type: Optional[Literal['OIS', 'IBOR']]
tenor_long: str
tenor_medium: str
tenor_short: str
unit_type: Optional[str]
weights: Optional[Literal['equal', 'delta_neutral']]