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¶
- Learn about Vertical Spreads for defined-risk alternatives
- Explore Iron Butterflies for defined-risk volatility plays
- See more Examples with IV analysis