Own stock, buy OTM put, sell OTM call — capped upside, protected downside.
| Symbol | Return % | Sharpe | Max DD % | Win % | Avg/trade % | Trades |
|---|---|---|---|---|---|---|
| SPY | +42.1% | 0.66 | +10.8% | +79.0% | +2.2% | 19 |
| QQQ | +46.6% | 0.66 | +10.4% | +68.4% | +2.5% | 19 |
| IWM | +40.3% | 0.55 | +16.5% | +68.4% | +2.1% | 19 |
| DIA | +40.2% | 0.68 | +8.7% | +79.0% | +2.1% | 19 |
| Avg | +42.3% | 0.64 | +11.6% | +73.7% | — | 19 |
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.
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.
| Parameter | Default | Description |
|---|---|---|
| put_strike_pct | 0.95 | Long put strike (5% OTM) |
| call_strike_pct | 1.05 | Short call strike (5% OTM) |
| dte | 45 | Days to expiration |
A collar owns the underlying, buys an OTM put (95% of spot) for downside protection, and sells an OTM call (105% of spot) to offset the put cost. The net premium is near zero (zero-cost collar). Upside is capped at the call strike; downside is protected below the put strike. It is a conservative strategy for investors who want to hold a position but limit risk. Backtested with 45 DTE cycles.
# Collar: own stock + buy OTM put + sell OTM call
for entry in monthly_entries:
S = spot_at_entry
K_put = round(S * 0.95 / 5) * 5 # buy put (protection)
K_call = round(S * 1.05 / 5) * 5 # sell call (cap upside)
T = 45 / 365.25
put_prem = black_scholes_put(S, K_put, T, r, sigma)
call_prem = black_scholes_call(S, K_call, T, r, sigma)
net_cost = put_prem - call_prem # near zero
S_exp = spot_at_expiry
stock_pnl = S_exp - S
put_payoff = max(0, K_put - S_exp)
call_payoff = max(0, S_exp - K_call)
pnl = stock_pnl + put_payoff - call_payoff - net_cost
pnl_pct = pnl / S * 100