Skip to content

Straddles & Strangles

Straddles and strangles are volatility-based strategies that combine calls and puts to profit from large price movements (long) or low volatility (short).

Long Straddle

Description

A long straddle consists of buying a call and a put at the same strike, typically at-the-money. This strategy profits from large price movements in either direction.

Composition: - Long 1 call at strike X - Long 1 put at strike X

Market Outlook

  • High Volatility Expected - Anticipate a significant move up or down
  • Direction doesn't matter, only magnitude
  • Common before earnings announcements or major events

Profit/Loss

  • Maximum Profit: Unlimited (in either direction)
  • Maximum Loss: Total premiums paid (if price stays at strike)
  • Breakeven: Strike ± total premium paid

Example

import optopsy as op

data = op.csv_data('SPX_options.csv')

# Backtest long straddles
results = op.long_straddles(
    data,
    max_entry_dte=30,
    exit_dte=0,  # Hold to expiration
    leg1_delta={"target": 0.50, "min": 0.45, "max": 0.55},  # Near ATM
)

print(results)

Use Cases

  • Earnings plays expecting big moves
  • Before Fed announcements or major economic data
  • When implied volatility is low but you expect an explosion
  • Binary events (FDA approvals, court rulings)

Short Straddle

Description

A short straddle consists of selling a call and a put at the same strike. This strategy profits when the price stays near the strike at expiration.

Composition: - Short 1 call at strike X - Short 1 put at strike X

Market Outlook

  • Low Volatility Expected - Price stays stable
  • Maximum profit if price is exactly at strike at expiration
  • Profits erode if price moves significantly in either direction

Profit/Loss

  • Maximum Profit: Total premiums received
  • Maximum Loss: Unlimited (if price moves far from strike)
  • Breakeven: Strike ± total premium received

Example

results = op.short_straddles(
    data,
    max_entry_dte=45,
    exit_dte=21,
    leg1_delta={"target": 0.50, "min": 0.45, "max": 0.55},  # ATM straddles
    min_bid_ask=0.20    # Ensure liquid options
)

Use Cases

  • High implied volatility environments
  • After earnings when IV crush is expected
  • Range-bound markets
  • Income generation in low-volatility periods

⚠️ Risk Warning

Short straddles have unlimited risk in both directions. Consider iron butterflies for defined-risk alternatives.


Long Strangle

Description

A long strangle consists of buying an OTM call and an OTM put at different strikes. This is similar to a long straddle but cheaper with wider breakevens.

Composition: - Long 1 OTM put at strike X - Long 1 OTM call at strike Y (Y > X)

Market Outlook

  • High Volatility Expected - Anticipate a large move
  • Lower cost than straddles but requires bigger move to profit
  • Better risk/reward than straddles for explosive moves

Profit/Loss

  • Maximum Profit: Unlimited (in either direction)
  • Maximum Loss: Total premiums paid
  • Breakeven: Put strike - total premium, Call strike + total premium

Example

results = op.long_strangles(
    data,
    max_entry_dte=45,
    exit_dte=21,
    leg1_delta={"target": 0.30, "min": 0.20, "max": 0.40},  # OTM strikes for lower cost
)

Use Cases

  • Lower-cost volatility plays
  • Before major events with unknown outcomes
  • When you expect a significant move but want to reduce cost
  • Higher probability of profit than straddles on massive moves

Short Strangle

Description

A short strangle consists of selling an OTM call and an OTM put at different strikes. This provides a wider profit zone than a short straddle.

Composition: - Short 1 OTM put at strike X - Short 1 OTM call at strike Y (Y > X)

Market Outlook

  • Low to Moderate Volatility - Price stays in a range
  • Wider profit zone than short straddles
  • More forgiving if price moves moderately

Profit/Loss

  • Maximum Profit: Total premiums received
  • Maximum Loss: Unlimited (past short strikes)
  • Breakeven: Put strike - total premium, Call strike + total premium

Example

results = op.short_strangles(
    data,
    max_entry_dte=45,
    exit_dte=21,
    leg1_delta={"target": 0.20, "min": 0.15, "max": 0.30},  # Wide strikes for safer range
    min_bid_ask=0.15
)

Use Cases

  • Income in range-bound markets
  • Higher probability of success than short straddles
  • After high IV events (post-earnings)
  • When you expect low volatility but want buffer

Management Tips

  • Consider closing at 50% of max profit
  • Roll untested side if needed
  • Monitor position size carefully due to undefined risk

Strategy Comparison

Strategy Strikes Premium Profit Zone Best For
Long Straddle Same Higher cost Wide (any big move) Maximum volatility plays
Long Strangle Different Lower cost Wider breakevens Lower-cost volatility
Short Straddle Same Higher credit Narrow (at strike) Maximum income, low vol
Short Strangle Different Lower credit Wider range Safer income, moderate vol

Greeks Considerations

For Long Straddles/Strangles

  • Positive Vega - Benefit from volatility increases
  • Negative Theta - Time decay works against you
  • Trade: Buy when IV is low, sell when IV spikes

For Short Straddles/Strangles

  • Negative Vega - Hurt by volatility increases
  • Positive Theta - Time decay works for you
  • Trade: Sell when IV is high, benefit from IV crush

Example: IV Filtering

# Target high IV environments for short strangles
results = op.short_strangles(
    data,
    max_entry_dte=45,
    exit_dte=21,
    leg1_delta={"target": 0.20, "min": 0.15, "max": 0.30},
    # Filter for liquid, high IV options
    min_bid_ask=0.15,
    slippage='liquidity'
)

Risk Management

For Long Positions: - Risk is limited to premiums paid - Consider exiting at 100% loss or 200%+ gain - Profits can be substantial on big moves

For Short Positions: - ⚠️ Risk is unlimited - Consider stop losses or conversion to iron condors/butterflies - Close early at 50-75% max profit - Position size conservatively (small % of account)

Next Steps