Call Diagonal Spread Strategy
With the price above its 50-day average: buy a 0.70 Δ call about 4 months out and sell a 0.30 Δ call about a month out against it (bullish). Take half on the short and sell the next; close it all with 30 days left on the long or at half the debit lost.
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.Defined risk by design: the long options in the structure cap the loss, so there is no separate hedged version.
| Stock | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 YTD | CAGR | B&H CAGR | Max drawdown |
|---|---|---|---|---|---|---|---|---|---|---|
| +103.6%+88.4 | +86.6%+59.7 | −25.7%−6.2 | +49.5%+25.2 | +22.7%−0.7 | +23.9%+7.5 | +8.7%−3.8 | +32.7% | +13.4% | −27.4% | |
| +284.9%+239.8 | +55.9%+29.1 | −26.9%+6.1 | +44.8%−8.9 | +6.0%−18.9 | +27.3%+7.1 | −7.1%−19.7 | +35.3% | +18.5% | −30.0% | |
| +61.2%+42.8 | +20.0%+6.8 | −27.1%−5.4 | +23.5%+8.4 | +29.8%+19.7 | +28.3%+16.9 | +11.3%−4.1 | +18.6% | +8.2% | −44.3% | |
| +44.1%−73.6 | +34.8%−90.4 | −26.7%+23.7 | +102.1%−136.8 | +171.8%+0.6 | +23.4%−15.5 | −4.2%−4.3 | +38.3% | +65.2% | −38.0% | |
| +198.0%+121.3 | +42.3%+8.5 | −28.6%−1.7 | +67.3%+19.1 | +22.9%−7.2 | −1.6%−10.1 | −6.2%−34.8 | +29.0% | +25.2% | −32.1% |
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 1 track side by side. Each day, the first rule whose conditions hold in each track acts.
1. Call diagonal
- INBuy the long, sell the short
When:
book.open == 0andspot > sma(trend_days)Do: buy call (as long)delta long_delta (0.7)dte long_dte (120)dte_min long_dte_min (90)dte_max long_dte_max (150)strict 1; sell call (as short)delta short_delta (0.3)strike_min spot + 0.001dte dte (30)dte_min dte_min (21)dte_max dte_max (45)avoid_earnings 1strict 1 - SLHalf the debit lost: close
When:
book.pnl_pct <= -stop_pctDo: close long; close short - EXLong down to exit_long_dte: close
When:
leg.long.dte <= exit_long_dteDo: close long; close short - S1Short at half its credit or near expiry: close it
When:
leg.short.open == 1andleg.short.pnl_pct >= take_pct or leg.short.dte <= manage_dteDo: close short - S2Sell the next short
When:
leg.long.open == 1andleg.short.open == 0Do: sell call (as short)delta short_delta (0.3)strike_min spot + 0.001dte dte (30)dte_min dte_min (21)dte_max dte_max (45)avoid_earnings 1 - Closed or expired
When:
book.open == 0Do: nothing (hold)
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 |
|---|---|
trend_days | 50 |
long_delta | 0.7 |
long_dte | 120 |
long_dte_min | 90 |
long_dte_max | 150 |
short_delta | 0.3 |
dte | 30 |
dte_min | 21 |
dte_max | 45 |
take_pct | 50 |
manage_dte | 5 |
exit_long_dte | 30 |
stop_pct | 50 |
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…
With the price above its 50-day average: buy a 0.70 Δ call about 4 months out and sell a 0.30 Δ call about a month out against it (bullish). Take half on the short and sell the next; close it all with 30 days left on the long or at half the debit lost.
What it is
With the price above its 50-day average, buy a 0.70 delta call about four months out and sell a 0.30 delta call about a month out against it. The short call is closed at half its credit or near expiry and the next one sold; the whole position is closed with 30 days left on the long call, or after losing half the debit.
When to use it
Use it for a moderately bullish view at less cost than a long call or shares, with income from the short calls.
Maximum risk
The most you can lose is the net debit, plus any loss from closing a short call that the stock ran through.
Questions
How is it different from a PMCC?
The same structure with a shorter long call (about 4 months, not 2 years): cheaper, but it has to be renewed often.
Why only above the 50-day average?
A call diagonal needs the stock to hold up or rise; the trend filter keeps it out of downtrends.
What makes it lose?
A sharp drop (the long call loses value) or a sharp rally past the short strike (the short call caps the gain).