Collar

Hedge

Own stock, buy OTM put, sell OTM call — capped upside, protected downside.

Performance across all datasets

SymbolReturn %SharpeMax 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
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
Call strike − Entry − Net cost
Max Loss
Entry − Put strike + Net cost
Breakeven
Entry + Net cost
Outlook
Neutral to mildly bullish (hedged)

Parameters

ParameterDefaultDescription
put_strike_pct0.95Long put strike (5% OTM)
call_strike_pct1.05Short call strike (5% OTM)
dte45Days to expiration

Methodology

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.

Implementation

# 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