SwaptionStrangle#
-
class sigtech.framework.strategies.rolling_swaption_baskets.SwaptionStrangle
Baseclasses:
_RollingSwaptionStrategyBase
Takes the same position in both a receiver and a payer swaption with the same expiration but different strikes.
A long strangle 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 strangle 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.receiver_strike
(float): The exercise rate for the receiver swap. Can be'ATM'
. Default isNone
(equivalent to'ATM'
).payer_strike
(float): The exercise rate for the payer swap. Can be'ATM'
. Default isNone
(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, orTrue
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('EUR') swaption_strangle = sig.SwaptionStrangle( currency=group.currency, start_date=dtm.date(2017, 9, 19), end_date=dtm.date(2018, 12, 30), group_name=group.name, swap_tenor='2Y', rolling_frequencies=['2M'], maturity='6M', strike_type='SPOT', receiver_strike='ATM+100bp', payer_strike='ATM-100bp', target_type='Notional', target_quantity=10e6, close_out_at_roll=True, )
-
payer_strike: Optional[Union[float, str]]
-
receiver_strike: Optional[Union[float, str]]
-
swap_tenor: str
-
roll_options(dt)
Set swaption positions.
- Parameters:
dt – Decision datetime.