Own stock, buy OTM put, sell OTM call — capped upside, protected downside.
| Symbol | Return % | Sharpe | Max DD % | Win % | Avg/trade % | Trades |
|---|---|---|---|---|---|---|
| SPY | +51.3% | 0.81 | +7.2% | +84.2% | +2.7% | 19 |
| QQQ | +47.2% | 0.64 | +8.2% | +73.7% | +2.5% | 19 |
| IWM | +48.2% | 0.61 | +16.3% | +73.7% | +2.5% | 19 |
| DIA | +57.6% | 0.96 | +4.6% | +84.2% | +3.0% | 19 |
| Avg | +51.1% | 0.76 | +9.1% | +78.9% | — | 19 |
| 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