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+82.8%1.78+1.6%+89.5%+4.4%19
QQQ+97.1%1.39+5.1%+89.5%+5.1%19
IWM+93.2%1.42+4.8%+84.2%+4.9%19
DIA+54.6%1.76+2.0%+89.5%+2.9%19
Avg+81.9%1.59+3.4%+88.2%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