SwaptionStraddle

SwaptionStraddle#

class sigtech.framework.strategies.rolling_swaption_baskets.SwaptionStraddle

Baseclasses: _RollingSwaptionStrategyBase

A rolling strategy that takes the same position in both a receiver and payer swaption with the same expiration and strike.

A long straddle strategy buys both a receiver and a payer swaption. This generally profits if the floating rate increases or decreases, or if volatility increases.

A short straddle strategy sells both a receiver and a payer swaption. This generally profits if the floating rate remains steady and the volatility remains steady or decreases.

The following RollingOptionsStrategyBase parameters are relevant for this strategy:

  • target_type: Value to target, can be 'Notional', 'Fixed' (same as 'Notional'), 'PV', 'Gamma' or 'Vega'.

  • target_quantity: Quantity to target.

  • rolling_frequencies: List of rolling frequencies, e.g. ['3M'].

  • roll_dates: Explicit list of roll dates.

  • close_out_at_roll: Flag specifying whether to close existing swaption positions before the roll.

Additional attributes:

  • expiry: Swaption expiry.

  • strike (float): The rate at which the swap can be entered into. Can be 'ATM'. Default is None (equivalent to 'ATM').

  • swap_tenor (string): The tenor of the underlying swap.

  • group_name (string): Name of the swaption group. The currency group by default.

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

Example usage:

import datetime as dtm
import sigtech.framework as sig

group = sig.SwaptionGroup.get_group('USD')

swaption_straddle = sig.SwaptionStraddle(
    currency=group.currency,
    start_date=dtm.date(2016, 3, 5),
    end_date=dtm.date(2018, 12, 30),
    group_name=group.name,
    swap_tenor='5Y',
    rolling_frequencies=['3M'],
    maturity='6M',
    strike_type='SPOT',
    target_type='Notional',
    target_quantity=10e6,
    close_out_at_roll=True,
)
strike: Optional[Union[float, str]]
swap_tenor: str
roll_options(dt)

Set swaption positions.

Parameters:

dt – Decision datetime.