Poor Man's Covered Call (PMCC) Strategy
A ~2-year 0.80 Δ LEAPS with weekly 0.15 Δ calls sold above it: a poor man's covered call. Roll the LEAPS call when old or deep in the money; set hedge_delta to add a crash put.
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 |
|---|---|---|---|---|---|---|---|---|---|---|
| +183.4%+168.2 | +73.0%+46.1 | −14.3%+5.1 | +30.8%+6.6 | +29.5%+6.2 | +22.4%+6.0 | +9.5%−2.9 | +38.8% | +13.4% | −37.4% | |
| +251.7%+206.6 | +43.9%+17.1 | −23.2%+9.8 | +47.7%−6.1 | +18.0%−6.8 | +16.9%−3.3 | +0.1%−12.6 | +35.1% | +18.5% | −29.6% | |
| +197.1%+178.6 | +55.0%+41.8 | −11.4%+10.3 | −1.3%−16.4 | +24.7%+14.6 | +24.5%+13.1 | +13.3%−2.0 | +33.0% | +8.2% | −44.9% | |
| +14.8%−102.9 | +16.8%−108.4 | −18.1%+32.2 | +36.5%−202.5 | +78.6%−92.6 | +14.5%−24.3 | −2.7%−2.8 | +17.3% | +65.2% | −44.7% | |
| +273.0%+196.3 | +39.5%+5.7 | −6.5%+20.3 | +29.1%−19.1 | +25.5%−4.5 | +13.1%+4.5 | +20.1%−8.4 | +41.3% | +25.2% | −26.7% | |
| +204.4%+189.2 | +73.8%+46.8 | −14.0%+5.5 | +28.2%+3.9 | +27.7%+4.4 | +21.2%+4.9 | +8.6%−3.8 | +39.4% | +13.4% | −35.9% | |
| +270.8%+225.7 | +43.8%+17.0 | −22.6%+10.4 | +44.7%−9.1 | +17.8%−7.1 | +17.9%−2.3 | −0.9%−13.5 | +35.9% | +18.5% | −28.8% | |
| +228.1%+209.6 | +49.2%+35.9 | −8.7%+13.0 | −1.2%−16.3 | +20.5%+10.4 | +23.7%+12.3 | +10.9%−4.5 | +33.5% | +8.2% | −40.5% | |
| +11.3%−106.5 | +7.1%−118.1 | −13.2%+37.1 | +24.4%−214.6 | +67.9%−103.3 | +21.4%−17.4 | −3.2%−3.2 | +14.6% | +65.2% | −34.0% | |
| +282.0%+205.3 | +34.4%+0.6 | −6.3%+20.5 | +30.2%−18.0 | +25.7%−4.3 | +13.6%+5.1 | +18.4%−10.2 | +41.0% | +25.2% | −30.4% |
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 3 tracks side by side. Each day, the first rule whose conditions hold in each track acts.
1. LEAPS
One LEAPS call, rolled when old or deep in the money
- L1Buy the LEAPS call
When:
leg.leap.open == 0Do: buy call (as leap)delta leap_delta (0.8)dte leap_dte (730)dte_min leap_dte - 120dte_max leap_dte + 120strict 1 - L2Getting old or deep in the money: swap it for a fresh one
When:
leg.leap.dte <= leap_roll_dte or leg.leap.delta >= leap_roll_deltaDo: close leap; buy call (as leap)delta leap_delta (0.8)dte leap_dte (730)dte_min leap_dte - 120dte_max leap_dte + 120strict 1
2. Short call
A weekly call above the LEAPS call
- K1Sell the call above the price and the LEAPS call strike
When:
leg.leap.open == 1andleg.leap.age > 0andleg.call.open == 0Do: sell call (as call)delta call_delta (0.15)dte call_dte (7)dte_min call_dte - 3dte_max call_dte + 3strike_min max(spot, leg.leap.strike) + 0.001avoid_earnings 1 - K2aHalf the credit kept: buy it back
When:
leg.call.pnl_pct >= take_pctDo: close call - K2bAt the strike near expiry: roll up and out for a credit
When:
leg.call.dte <= manage_dteandspot >= leg.call.strike * 0.99Do: roll calldte 0dte_min leg.call.dte + 1dte_max roll_max_days - leg.call.chain_agestrike_min leg.call.strikescan strike_descavoid_earnings 1require new.mark > leg.call.mark - K2cNo credit roll: buy it back; the LEAPS call keeps the gain
When:
leg.call.dte <= manage_dteandspot >= leg.call.strikeDo: close call
3. 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 |
|---|---|
leap_delta | 0.8 |
leap_dte | 730 |
leap_roll_dte | 270 |
leap_roll_delta | 0.95 |
call_delta | 0.15 |
call_dte | 7 |
take_pct | 50 |
manage_dte | 2 |
roll_max_days | 60 |
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…
A ~2-year 0.80 Δ LEAPS with weekly 0.15 Δ calls sold above it: a poor man's covered call. Roll the LEAPS call when old or deep in the money; set hedge_delta to add a crash put.
What it is
Buy a two-year 0.80 delta LEAPS and sell weekly 0.15 delta calls above it, like a covered call on shares but with far less cash. Calls are bought back at half their credit or rolled up and out when the price reaches them; the LEAPS call is rolled when it is old or deep in the money.
When to use it
Use it when you would run covered calls on a stock but do not want to buy 100 shares, and you expect the stock to drift up or sideways.
Maximum risk
You can lose most of what the LEAPS call cost if the stock falls hard; the short calls only offset a little. In a sharp rally the short call can lose more than its credit, though the LEAPS call gains more.
Questions
How is a PMCC different from a covered call?
The LEAPS call replaces the shares. It costs a fraction of the share price, so returns on cash are higher, but the LEAPS call loses time value and has a higher break-even.
What if the short call goes in the money?
Near expiry it is rolled up and out for a credit if possible. If no credit roll exists it is bought back, and the LEAPS call keeps the larger gain.
Should I add the crash put?
Set hedge_delta to 0.05 to add one. Whether it pays depends on the period: it pays in sudden crashes and costs a little every quiet year. Run both in the Rule Builder to compare.