RollingButterflyOptionsStrategy#
-
class sigtech.framework.strategies.rolling_options_baskets.RollingButterflyOptionsStrategy
Baseclasses:
RollingOptionsStrategyBase
Is a three-part strategy that takes long and short positions in call or put options with the same expiration but different strike price.
A long butterfly spread with calls is created by buying one call option at a lower strike price, selling two call options with a higher strike price and buying one call option with even higher strike price.
A long butterfly spread with puts is created by buying one put option at a higher strike price, selling two put options with a lower strike price and buying one put option with even lower strike price.
A short butterfly spread with calls is created by selling one call option at a lower strike price, buying two call options with a higher strike price and selling one call option with even higher strike price.
A short butterfly spread with puts is created by selling one put option at a higher strike price, buying two put options with a lower strike price and selling one put option with even lower strike price.
Parameters are the same as in the base RollingOptionsStrategyBase strategy.
Additional attributes:
strike_1
: The price at which the first options leg contract can be exercised. For FX can be also'ATM+/-XX%'
ifstrike_type
is set to ATM type ('SPOT'
,'FWD'
, or'DN'
) (both call and put).strike_2
: The price at which the second options leg contract can be exercised. For FX can be also'ATM+/-XX%'
ifstrike_type
is set to ATM type ('SPOT'
,'FWD'
, or'DN'
) (both call and put).strike_3
: The price at which the third options leg contract can be exercised. For FX can be also'ATM+/-XX%'
ifstrike_type
is set to ATM type ('SPOT'
,'FWD'
, or'DN'
) (both call and put).group_name
: Name of the option group to trade options for.exercise_type
:'European'
or'American'
. Optional, if omitted, group default is used.option_type
:'Call'
or'Put'
. Optional, if omitted,'Call'
is used by default.butterfly_direction
:'long'
or'short'
butterfly. Optional,'long'
is used by default.
Example usage:
import datetime as dtm import sigtech.framework as sig group = sig.obj.get('USDJPY OTC OPTION GROUP') butterfly = sig.RollingButterflyOptionsStrategy( start_date=dtm.date(2021, 1, 4), end_date=dtm.date(2023, 1, 4), currency=group.underlying_obj.currency, group_name=group.name, rolling_frequencies=['3M'], maturity='12M', option_type='Call', butterfly_direction='long', strike_type='SPOT', strike_1='ATM', strike_2='ATM+3%', strike_3='ATM+5%', target_type='Vega', target_quantity=10.0, )
-
butterfly_direction: Optional[Literal['long', 'short']]
-
currency: Optional[str]
-
exercise_type: Optional[Literal['European', 'American']]
-
group_name: str
-
option_type: Optional[Literal['Call', 'Put']]
-
strike_1: Union[float, int, str]
-
strike_2: Union[float, int, str]
-
strike_3: Union[float, int, str]
-
roll_options(dt)
Set option positions.
- Parameters:
dt – Decision datetime.
-
validate()
Validate strikes for calls and puts.