Own stock, buy OTM put, sell OTM call — capped upside, protected downside.
| 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| Symbol | Return % | Sharpe | Max DD % | Win % | Avg/trade % | Trades |
|---|---|---|---|---|---|---|
| SPY | +49.7% | 0.94 | +7.4% | +79.0% | +2.6% | 19 |
| QQQ | +45.9% | 0.76 | +9.6% | +79.0% | +2.4% | 19 |
| IWM | +35.5% | 0.44 | +17.8% | +63.2% | +1.9% | 19 |
| DIA | +49.9% | 0.88 | +6.3% | +73.7% | +2.6% | 19 |
| Avg | +45.3% | 0.76 | +10.3% | +73.7% | — | 19 |