Stock Repair Strategy
Hold 100 shares and, each month, buy one at-the-money call and sell two calls repair_pct above it for about zero cost: the gains double up to the short strike. The shares cover the extra short call. Out at 7 days left.
Default settings, 2020 to Nov 4, 2026.
By stock and year
Select a row to chart it below. Shade is the gap to buying and holding that stock.Unhedged: nothing protects against a crash beyond what the strategy itself holds.
| Stock | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 YTD | CAGR | B&H CAGR | Max drawdown |
|---|---|---|---|---|---|---|---|---|---|---|
| +25.3%+10.1 | +34.9%+8.0 | −15.1%+4.3 | +26.4%+2.1 | +26.6%+3.3 | +14.2%−2.2 | +3.7%−8.7 | +15.7% | +13.4% | −35.2% | |
| +59.2%+14.0 | +33.0%+6.2 | −22.6%+10.5 | +43.8%−10.0 | +28.3%+3.4 | +15.9%−4.3 | −1.6%−14.3 | +19.8% | +18.5% | −28.2% | |
| +26.5%+8.0 | +26.4%+13.1 | −14.9%+6.7 | +10.3%−4.9 | +10.6%+0.5 | +11.1%−0.3 | +11.4%−4.0 | +11.1% | +8.2% | −42.5% | |
| +13.0%−104.7 | +18.7%−106.5 | −11.0%+39.3 | +44.3%−194.6 | +62.2%−109.0 | +30.0%−8.9 | −8.5%−8.6 | +19.2% | +65.2% | −24.7% | |
| +49.6%−27.1 | +38.4%+4.6 | −17.7%+9.1 | +34.6%−13.5 | +30.9%+0.8 | +2.2%−6.4 | +11.9%−16.7 | +19.7% | +25.2% | −26.0% | |
| +28.4%+13.2 | +36.1%+9.2 | −15.0%+4.5 | +25.3%+1.0 | +25.8%+2.5 | +13.8%−2.5 | +3.4%−9.1 | +16.0% | +13.4% | −30.2% | |
| +63.5%+18.3 | +33.3%+6.5 | −22.3%+10.8 | +42.3%−11.5 | +27.9%+3.1 | +16.4%−3.7 | −2.1%−14.7 | +20.2% | +18.5% | −25.2% | |
| +31.9%+13.4 | +25.0%+11.8 | −13.4%+8.2 | +9.7%−5.4 | +9.1%−1.0 | +11.1%−0.3 | +10.0%−5.4 | +11.4% | +8.2% | −35.5% | |
| +11.2%−106.5 | +12.9%−112.3 | −8.9%+41.4 | +37.3%−201.7 | +58.1%−113.0 | +32.9%−6.0 | −8.4%−8.5 | +17.5% | +65.2% | −20.8% | |
| +52.0%−24.7 | +35.0%+1.1 | −17.7%+9.1 | +35.5%−12.6 | +31.1%+1.0 | +2.5%−6.0 | +10.5%−18.0 | +19.6% | +25.2% | −23.9% |
Growth of $10,000
Weekly closes on a log scale; the red shade is the strategy's drawdown from its last high. Returns are on the capital the strategy needed at its peak, with interest on idle cash. Hypothetical: how the backtests are made.
Rules · the when / do flow, read-only until you make a copyShow flow
The strategy runs as 2 tracks side by side. Each day, the first rule whose conditions hold in each track acts.
1. Repair
- K0No shares: buy 100
When:
shares < 100andleg.lc.open == 0Do: buy sharesqty 100 - R1Buy 1 at-the-money call, sell 2 higher: the repair
When:
shares >= 100andleg.lc.open == 0andleg.sc.open == 0Do: buy call (as lc)strike spotdte dte (35)dte_min dte_min (25)dte_max dte_max (50)avoid_earnings 1strict 1; sell call (as sc)qty 2strike leg.lc.strike * (1 + repair_pct)strike_min leg.lc.strike + 0.001expiry leg.lc.expirystrict 1 - R2exit_dte left: close the spread
When:
leg.lc.open == 1andleg.lc.dte <= exit_dteDo: close lc; close sc
2. Crash put
A cheap far put under whatever is held; hedge_delta 0 turns it off
- CP1Something is held and no crash put: buy one
When:
hedge_delta > 0andleg.hedge.open == 0andshares >= 100 or book.open > 0Do: buy put (as hedge)qty max(1, round(shares / 100))delta hedge_delta (0)dte hedge_dte (90)dte_min hedge_replace_dte + 7strike_max spot - 0.001strict 1 - CP2Nothing left to protect: sell it
When:
leg.hedge.open == 1andshares < 100andbook.open <= 1Do: close hedge - CP3Down to its last month, or worth hedge_take_x its cost: sell it and buy a fresh one
When:
leg.hedge.open == 1andleg.hedge.dte <= hedge_replace_dte or (hedge_take_x > 0 and leg.hedge.mark >= leg.hedge.cost * hedge_take_x)Do: close hedge; buy put (as hedge)qty max(1, round(shares / 100))delta hedge_delta (0)dte hedge_dte (90)dte_min hedge_replace_dte + 7strike_max spot - 0.001strict 1
Parameters and defaults
Every named number in the rules can be changed in the Rule Builder. These are the defaults the backtest used.
| Parameter | Default |
|---|---|
repair_pct | 0.05 |
dte | 35 |
dte_min | 25 |
dte_max | 50 |
exit_dte | 7 |
hedge_delta | 0 |
hedge_dte | 90 |
hedge_replace_dte | 30 |
hedge_take_x | 3 |
Make a copy to change any of it and run your own backtest.
Trade log · every open, roll, assignment and close for SPYShow trades
Loading…
Hold 100 shares and, each month, buy one at-the-money call and sell two calls repair_pct above it for about zero cost: the gains double up to the short strike. The shares cover the extra short call. Out at 7 days left.
What it is
Hold 100 shares and, each month, buy one at-the-money call and sell two calls 5% above it, same expiry, for close to zero cost. Up to the short strike the position gains twice as fast as the shares; the shares cover the extra short call. The spread is closed with 7 days left and the next one opened.
When to use it
Use it on shares you hold, especially after a drop, when you expect a partial recovery and want to get back to break-even sooner.
Maximum risk
Downside is the shares', the spread adds little. Upside past the short strike is capped: the gain from the spread stops there and the extra short call is covered by the shares.
Questions
Why is it called a repair?
After a loss it lets a partial recovery count double, so the stock does not have to get all the way back to your cost.
Does it cost anything?
The 1×2 call spread is usually opened for about zero; the cost is giving up gains above the short strike.
Why run it every month in the backtest?
To show the trade-off over years: doubled gains in small rallies against a cap in big ones.