Jade Lizard

Neutral

Sell OTM put + sell OTM call spread — no upside risk, income strategy.

Performance across all datasets

SymbolReturn %SharpeMax DD %Win %Avg/trade %Trades
SPY+43.6%0.83+8.0%+84.2%+2.3%19
QQQ+69.6%1.01+9.1%+94.7%+3.7%19
IWM+44.3%0.63+11.6%+84.2%+2.3%19
DIA+23.6%0.51+7.7%+84.2%+1.2%19
Avg+45.3%0.74+9.1%+86.8%19
Cumulative P&L % — all symbols

What this shows: Overlayed cumulative return series for this strategy across all available symbols.

How to read it: Look for symbols with smoother curves and faster recoveries to assess whether performance is broad-based or driven by a few outliers.

Detail:
Cumulative P&L % — SPY

What this shows: Single-symbol cumulative return path for SPY.

How to read it: Use this detailed view to inspect entry/exit behavior over time and whether drawdowns cluster in specific periods.

Risk Profile

Max Profit
Total credit (no upside risk)
Max Loss
Put strike − Credit (downside only)
Breakeven
Put strike − Credit
Outlook
Neutral to bullish

Parameters

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

Methodology

A jade lizard sells an OTM put (95% of spot) and an OTM call spread (sell 105% call, buy 110% call). The total credit exceeds the call spread width, eliminating upside risk entirely. The only risk is to the downside if the underlying falls below the put strike. It is a high-probability income strategy suited to neutral-to-bullish markets. Backtested with 45 DTE cycles.

Implementation

# Jade Lizard: sell OTM put + sell OTM call spread
for entry in monthly_entries:
    S = spot_at_entry
    K_put = round(S * 0.95 / 5) * 5  # sell put
    K_cs  = round(S * 1.05 / 5) * 5  # sell call (lower)
    K_cb  = round(S * 1.10 / 5) * 5  # buy call (upper wing)
    T = 45 / 365.25

    credit = (
        black_scholes_put(S, K_put, 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_put - S_exp)
    call_loss = max(0, S_exp - K_cs) - max(0, S_exp - K_cb)
    pnl = credit - put_loss - call_loss
    pnl_pct = pnl / K_put * 100