Short Strangle

Neutral

Sell an OTM put and OTM call simultaneously — collect premium, profit in range-bound markets.

Performance across all datasets

SymbolReturn %SharpeMax DD %Win %Avg/trade %Trades
SPY-29.2%-0.49+30.1%+63.2%-1.5%19
QQQ-53.3%-0.64+53.5%+36.8%-2.8%19
IWM-54.4%-0.65+55.1%+47.4%-2.9%19
DIA-17.4%-0.38+18.0%+68.4%-0.9%19
Avg-38.6%-0.54+39.2%+53.9%19
Cumulative P&L % — all symbols
Detail:
Cumulative P&L % — SPY

Risk Profile

Max Profit
Total credit received
Max Loss
Unlimited (call side) / K_put − Credit (put side)
Breakeven
K_put − Credit or K_call + Credit
Outlook
Neutral (range-bound)

Parameters

ParameterDefaultDescription
put_strike_pct0.95Short put strike (5% OTM)
call_strike_pct1.05Short call strike (5% OTM)
dte45Days to expiration

Methodology

A short strangle sells an OTM put (95% of spot) and an OTM call (105% of spot) for a net credit. It is the mirror of the long strangle — maximum profit is the total credit when the underlying stays between the two strikes. Risk is theoretically unlimited on the call side and substantial on the put side. It is a high-probability income strategy that loses when the underlying makes a large move. Backtested with 45 DTE cycles.

Implementation

# Short Strangle: sell OTM put + sell OTM call
for entry in monthly_entries:
    S = spot_at_entry
    K_put  = round(S * 0.95 / 5) * 5  # sell 5% OTM put
    K_call = round(S * 1.05 / 5) * 5  # sell 5% OTM call
    T = 45 / 365.25

    credit = (
        black_scholes_put(S, K_put, T, r, sigma)
      + black_scholes_call(S, K_call, T, r, sigma)
    )

    S_exp = spot_at_expiry
    put_loss  = max(0, K_put - S_exp)
    call_loss = max(0, S_exp - K_call)
    pnl = credit - put_loss - call_loss
    pnl_pct = pnl / ((K_put + K_call) / 2) * 100