RollingStrangleOptionStrategy

RollingStrangleOptionStrategy#

class sigtech.framework.strategies.rolling_options_baskets.RollingStrangleOptionStrategy

Baseclasses: RollingOptionsStrategyBase

Subclasses: Strangle

Takes the same position in both a call option and a put option with the same expiration but different strike price.

A long strangle strategy buys both a call option and a put option. This generally profits if the stock price and volatility increase or decrease.

A short strangle strategy sells both a call option and a put option. This generally profits if the stock price and volatility remain steady during the life of the options.

Parameters are the same as in the base RollingOptionsStrategyBase strategy.

Additional attributes:

  • call_strike: The price at which the call options contract can be exercised.

  • put_strike: The price at which the put options contract can be exercised. For FX can be also 'ATM+/-XX%' if strike_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.

Example usage:

import datetime as dtm
import sigtech.framework as sig

group = sig.obj.get('USDJPY OTC OPTION GROUP')

strangle = sig.RollingStrangleOptionStrategy(
    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',
    strike_type='Delta',
    call_strike=0.2,
    put_strike=-0.2,
    target_type='Vega',
    target_quantity=10.0,
)
call_strike: Union[float, int, str]
currency: Optional[str]
exercise_type: Optional[Literal['European', 'American']]
group_name: str
put_strike: Union[float, int, str]
roll_options(dt)

Set option positions.

Parameters:

dt – Decision datetime.

validate()

Validate strikes for calls and puts.