Iron Condor

Neutral

Sell an OTM put spread and OTM call spread simultaneously for a net credit.

Risk Profile

Max Profit
Net credit received
Max Loss
Spread width − Credit
Breakeven
Short put − Credit or Short call + Credit
Outlook
Neutral (range-bound)

Parameters

ParameterDefaultDescription
put_short_pct0.95Short put strike (5% OTM)
put_long_pct0.90Long put wing (10% OTM)
call_short_pct1.05Short call strike (5% OTM)
call_long_pct1.10Long call wing (10% OTM)
dte45Days to expiration

Methodology

An iron condor combines a bull put spread and a bear call spread. It sells a 95% put, buys a 90% put, sells a 105% call, and buys a 110% call — all at the same expiration. The net credit is the maximum profit, achieved when the underlying stays between the two short strikes. Maximum loss is the wider spread width minus credit. It is the classic range-bound, high-probability income strategy. Backtested with 45 DTE cycles.

Implementation

# Iron Condor: sell put spread + sell call spread
for entry in monthly_entries:
    S = spot_at_entry
    K_ps = round(S * 0.95 / 5) * 5  # sell put
    K_pb = round(S * 0.90 / 5) * 5  # buy put (wing)
    K_cs = round(S * 1.05 / 5) * 5  # sell call
    K_cb = round(S * 1.10 / 5) * 5  # buy call (wing)
    T = 45 / 365.25

    credit = (
        black_scholes_put(S, K_ps, T, r, sigma)
      - black_scholes_put(S, K_pb, T, r, sigma)
      + black_scholes_call(S, K_cs, T, r, sigma)
      - black_scholes_call(S, K_cb, T, r, sigma)
    )

    S_exp = spot_at_expiry
    put_loss  = max(0, K_ps - S_exp) - max(0, K_pb - S_exp)
    call_loss = max(0, S_exp - K_cs) - max(0, S_exp - K_cb)
    pnl = credit - put_loss - call_loss
    max_risk = max(K_ps - K_pb, K_cb - K_cs)
    pnl_pct = pnl / max_risk * 100

Backtest Performance

SymbolReturn %SharpeMax DD %Win %Avg/trade %Trades
SPY-248.7%-0.40+286.3%+68.4%-13.1%19
QQQ-396.1%-0.61+418.7%+52.6%-20.9%19
IWM-630.6%-0.88+609.7%+31.6%-33.2%19
DIA-160.9%-0.26+216.0%+68.4%-8.5%19
Avg-359.1%-0.54+382.7%+55.3%19

← back to options strategies