Put Ratio Spread 1×2 Strategy
Instead of a plain CSP: buy a 0.30 Δ put and sell two puts ratio_width below it. If the price nears the short strike, close the spread and keep one short put: a CSP, run like the wheel.
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 |
|---|---|---|---|---|---|---|---|---|---|---|
| +4.4%−10.8 | −1.0%−27.9 | +3.3%+22.8 | +7.2%−17.1 | +7.6%−15.8 | +7.5%−8.9 | +5.2%−7.3 | +5.0% | +13.4% | −11.1% | |
| +2.1%−43.1 | +2.1%−24.7 | +1.7%+34.7 | +6.0%−47.8 | +9.3%−15.6 | +8.1%−12.1 | +9.3%−3.4 | +5.6% | +18.5% | −4.8% | |
| +4.4%−14.0 | +4.2%−9.0 | +11.9%+33.5 | +9.3%−5.8 | +7.4%−2.7 | +1.9%−9.5 | +7.4%−8.0 | +6.8% | +8.2% | −21.7% | |
| +1.0%−116.7 | +4.0%−121.2 | −0.8%+49.6 | +13.0%−225.9 | +15.8%−155.4 | +17.1%−21.8 | +7.7%+7.6 | +8.2% | +65.2% | −8.0% | |
| +9.8%−66.9 | +5.8%−28.0 | +7.2%+34.1 | +8.7%−39.5 | +8.0%−22.1 | +5.5%−3.1 | +12.2%−16.4 | +8.3% | +25.2% | −12.4% | |
| +3.6%−11.6 | +0.5%−26.4 | +7.7%+27.2 | +8.5%−15.7 | +8.8%−14.5 | +8.1%−8.2 | +5.3%−7.2 | +6.2% | +13.4% | −12.1% | |
| +3.8%−41.4 | +5.4%−21.4 | +3.5%+36.5 | +5.1%−48.7 | +12.6%−12.3 | +9.6%−10.5 | +11.4%−1.2 | +7.5% | +18.5% | −6.1% | |
| +14.4%−4.1 | +8.4%−4.9 | +22.9%+44.5 | +9.1%−6.0 | +7.9%−2.2 | +0.6%−10.8 | +7.1%−8.3 | +10.1% | +8.2% | −28.1% | |
| +0.3%−117.4 | +10.7%−114.5 | −5.6%+44.7 | +29.4%−209.5 | +46.7%−124.5 | +55.1%+16.2 | +14.1%+14.1 | +20.2% | +65.2% | −15.9% | |
| +8.1%−68.7 | +5.2%−28.6 | +13.4%+40.2 | +9.7%−38.5 | +8.4%−21.7 | +5.9%−2.6 | +12.3%−16.2 | +9.2% | +25.2% | −12.0% |
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 4 tracks side by side. Each day, the first rule whose conditions hold in each track acts.
1. 1×2 ratio
Buy 1 put, sell 2 below it; at the short strike, close the spread and keep a CSP
- INOpen the 1×2
When:
shares == 0andleg.lput.open == 0 and leg.sput1.open == 0 and leg.sput2.open == 0 and leg.call.open == 0Do: buy put (as lput)delta long_delta (0.3)dte dte (30)dte_min dte_min (21)dte_max dte_max (45)avoid_earnings 1strict 1; sell put (as sput1)strike leg.lput.strike - spot * ratio_widthstrike_max leg.lput.strike - 0.001expiry leg.lput.expirystrict 1; sell put (as sput2)strike leg.sput1.strikeexpiry leg.lput.expirystrict 1 - DFNear the short strike: close the 1×1 spread, keep one short put (a CSP)
When:
leg.lput.open == 1andspot <= leg.sput1.strike * (1 + test_pct)Do: close lput; close sput2 - EXexit_dte left and never threatened: close it all
When:
leg.lput.open == 1andleg.lput.dte <= exit_dteDo: close lput; close sput1; close sput2
2. Kept put
The short put kept from the spread, run like a CSP
- R1aHalf its credit kept: buy it back
When:
leg.lput.open == 0andleg.sput1.pnl_pct >= take_pctDo: close sput1 - R1bJust in the money near expiry: roll out for a credit, or take the shares
When:
leg.lput.open == 0andleg.sput1.dte <= manage_dteandspot < leg.sput1.strikeand(leg.sput1.strike - spot) / leg.sput1.strike <= near_bandDo: roll sput1dte dte (30)dte_min dte_min (21)dte_max dte_max (45)avoid_earnings 1strike_max leg.sput1.strikescan strike_descrequire new.mark > leg.sput1.mark
3. Covered call
Assigned: calls at or above the adjusted basis until the shares are called
- C2Sell the call nearest the money, at or above the basis
When:
shares >= 100andleg.call.open == 0Do: sell call (as call)qty shares / 100strike spotstrike_min adj_basisdte dte (30)dte_min dte_min (21)dte_max dte_max (45)avoid_earnings 1 - R5aHalf the credit kept: buy it back
When:
leg.call.pnl_pct >= take_pctDo: close call - R5bJust in the money near expiry: roll up and out for a credit, or let the shares go
When:
leg.call.dte <= manage_dteandspot > leg.call.strikeand(spot - leg.call.strike) / leg.call.strike <= near_bandDo: roll calldte dte (30)dte_min dte_min (21)dte_max dte_max (45)avoid_earnings 1strike_min max(leg.call.strike, adj_basis)strike_max max(leg.call.strike, spot * 1.02)scan strike_descrequire new.mark > leg.call.mark
4. 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 |
|---|---|
long_delta | 0.3 |
ratio_width | 0.03 |
dte | 30 |
dte_min | 21 |
dte_max | 45 |
test_pct | 0.01 |
exit_dte | 2 |
take_pct | 50 |
manage_dte | 2 |
near_band | 0.03 |
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…
Instead of a plain CSP: buy a 0.30 Δ put and sell two puts ratio_width below it. If the price nears the short strike, close the spread and keep one short put: a CSP, run like the wheel.
What it is
Instead of selling a plain put, buy one 0.30 delta put and sell two puts a few percent below it, about 30 days out, usually for a small credit. If the price nears the short strike, close the one-by-one spread and keep a single short put, then run it like the wheel.
When to use it
Use it in place of a cash-secured put when you are mildly bullish to neutral and want a profit zone between the strikes, with the same willingness to own the shares if the price falls through.
Maximum risk
Below the lower strike the extra short put behaves like a cash-secured put, so the worst case is close to owning shares from that strike down. Between the strikes the trade profits; above the long strike only the small credit (or debit) remains.
Questions
Why a 1×2 instead of a cash-secured put?
The long put pays for itself between the strikes, so a moderate fall can make more than a plain short put would.
What happens when the price nears the short strike?
The one-by-one part is closed while it holds its value, leaving one short put: a cash-secured put managed like the wheel.
How much cash does it need?
About the same as one cash-secured put at the lower strike, because one short put is covered by the long put above it.