RollingStraddleOptionStrategy

RollingStraddleOptionStrategy#

class sigtech.framework.strategies.rolling_options_baskets.RollingStraddleOptionStrategy

Baseclasses: RollingOptionsStrategyBase

Subclasses: Straddle

A rolling strategy that takes the same position in both a call option and a put option with the same expiration and strike price.

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

A short straddle strategy sells both a call option and a put option. This generally profits if the stock price and volatility remain steady.

Parameters are the same as in the base RollingOptionsStrategyBase strategy.

Additional attributes:

  • strike: The price at which the options contract can be exercised. For FX can be also 'ATM+/-XX%' if strike_type is set to ATM type ('SPOT', 'FWD', or 'DN').

  • 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('SPX INDEX OTC OPTION GROUP')

straddle = sig.RollingStraddleOptionStrategy(
    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=['1M'],
    maturity='3M',
    strike_type='Delta',
    strike=0.5,
    target_type='Vega',
    target_quantity=100.0,
)
currency: Optional[str]
exercise_type: Optional[Literal['European', 'American']]
group_name: str
strike: Optional[Union[float, int, str]]
roll_options(dt)

Set option positions.

Parameters:

dt – Decision datetime.

validate()

Validate delta strikes for calls.