C
Trading Autopsy
MACD Crossover (12/26/9) · SPY · 1d bars
· 2010-01-01 → 2026-07-06 · report generated 2026-07-06
Verdict: Mixed evidence. Some real signal, some real problems — trade small or not at all.
- Decent sample size (175 trades).
- Profitable in all 4 time segments — consistent across regimes.
- Out-of-sample Sharpe (0.30) is well below in-sample (0.50) — classic sign of overfitting.
- Max drawdown -15.9% — most people abandon a strategy long before -30%.
- Monte Carlo: with the same trades reshuffled, a -31.8% drawdown was plausible — the realized -15.9% was partly luck of the ordering.
- Doubling costs cuts returns by more than half — highly cost-sensitive.
- Buy & hold returned 780.6% over the same period vs the strategy's 82.9% — all this effort underperformed doing nothing.
The strategy as tested
Direction: long. Entry when ALL of:
cross_above(macd_line(12, 26), macd_signal(12, 26, 9))
Exit: signal: cross_below(macd_line(12, 26), macd_signal(12, 26, 9)).
Costs modeled: 0.05% fee per side + 5 bps adverse slippage.
Fills occur at the next bar's open after each signal — no same-bar fantasy fills.
When a stop and target are both touched in one bar, the stop is assumed to hit first (pessimistic).
Headline results (full period)
| Total return | +82.9% |
| CAGR | +3.7% |
| Buy & hold same period | +780.6% |
| Max drawdown | -15.9% |
| Sharpe ratio | 0.44 |
| Sortino ratio | 0.42 |
| Trades | 175 (11/yr) |
| Win rate | 44.6% |
| Profit factor | 1.39 |
| Avg trade | +0.41% |
| Avg holding time | 17.5 days |
| Total fees & slippage paid | $2,270 |
Monthly returns
| Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec |
|---|
| 2010 | | +0.3% | +5.8% | +2.1% | +0.0% | -4.9% | +2.3% | -2.4% | +3.5% | +1.0% | -1.6% | +2.8% |
|---|
| 2011 | -0.6% | +0.0% | +0.9% | +0.4% | -1.7% | +2.1% | -2.7% | +2.7% | -7.5% | +6.2% | -0.6% | -2.7% |
|---|
| 2012 | +4.8% | +1.0% | -1.0% | -0.6% | -2.4% | +3.6% | -3.7% | +1.7% | +0.2% | +0.0% | +1.3% | -0.4% |
|---|
| 2013 | +2.3% | +0.3% | +0.2% | -0.9% | +4.3% | +0.0% | +3.6% | -0.8% | +0.9% | +2.8% | -1.3% | +1.0% |
|---|
| 2014 | -0.7% | +2.0% | -0.8% | -2.2% | +0.3% | -0.2% | -0.7% | +1.8% | -0.7% | +3.3% | +2.6% | -2.0% |
|---|
| 2015 | -4.3% | +3.0% | -2.8% | -0.4% | -0.3% | -1.8% | -2.0% | -2.0% | -3.2% | +5.4% | -0.3% | -0.6% |
|---|
| 2016 | +0.5% | -4.6% | +4.5% | -1.6% | +0.1% | -0.9% | +3.6% | -0.1% | -0.3% | -2.1% | +3.5% | +2.7% |
|---|
| 2017 | -1.2% | +2.2% | +0.3% | -0.0% | -1.2% | +0.4% | +0.8% | +0.2% | +1.7% | +1.9% | +1.5% | +1.4% |
|---|
| 2018 | +3.2% | -1.9% | -2.1% | +0.3% | +0.3% | +0.7% | +0.9% | -0.5% | -2.2% | +0.0% | -1.9% | -2.8% |
|---|
| 2019 | +8.2% | +3.1% | -0.8% | +0.1% | -0.9% | +2.7% | +1.3% | -2.8% | +1.5% | +1.5% | +2.1% | -0.7% |
|---|
| 2020 | -1.7% | -2.5% | +1.6% | +12.1% | -1.4% | +1.1% | +1.5% | +4.3% | -3.5% | +3.9% | +3.2% | +0.7% |
|---|
| 2021 | -2.9% | -1.3% | -1.0% | +3.9% | -0.3% | -0.4% | -0.9% | -2.5% | -0.3% | +4.7% | +1.5% | -2.6% |
|---|
| 2022 | -1.5% | -3.1% | -0.7% | -0.9% | +4.9% | -11.4% | +8.7% | +0.1% | +0.0% | -0.3% | +5.3% | -3.5% |
|---|
| 2023 | +4.6% | +0.4% | +2.4% | -0.7% | -2.4% | +3.6% | +0.0% | +0.1% | -1.4% | -3.1% | +5.0% | +2.5% |
|---|
| 2024 | -1.0% | +2.7% | -0.8% | -1.0% | +1.6% | +2.1% | -0.6% | +2.4% | -0.1% | +0.1% | -1.5% | +0.4% |
|---|
| 2025 | +0.1% | -1.1% | -2.0% | -6.1% | +6.5% | +0.7% | +0.4% | -0.7% | +0.8% | -0.1% | -0.9% | -1.0% |
|---|
| 2026 | -1.8% | -2.5% | -1.6% | +9.0% | +2.0% | +0.0% | +0.0% | | | | | |
|---|
Out-of-sample test
The strategy was evaluated on data after 2021-07-19 that plays no role in the
in-sample window. Overfit strategies collapse here.
| In-sample | Out-of-sample |
| Total return | +61.7% | +13.1% |
| Sharpe | 0.50 | 0.30 |
| Max drawdown | -15.8% | -15.3% |
| Win rate | 46.2% | 41.1% |
| Trades | 119 | 56 |
Consistency across time
| Period | Return | Max DD | Trades |
|---|
| 2010-01-04 – 2014-02-18 | +20.7% | -9.8% | 42 |
| 2014-02-18 – 2018-04-02 | +4.1% | -15.8% | 40 |
| 2018-04-02 – 2022-05-12 | +21.1% | -12.4% | 48 |
| 2022-05-12 – 2026-07-02 | +19.9% | -13.7% | 45 |
Monte Carlo drawdown analysis
1,000 reshuffles of the realized trade sequence — how bad could the drawdown have been
with the exact same trades in a different order?
| Median max drawdown (reshuffled) | -21.6% |
| 95th-percentile max drawdown | -31.8% |
| Worst simulated drawdown | -42.2% |
| Simulations ending profitable | 100% |
Cost sensitivity
| Zero costs | As modeled | 2× costs |
| Total return | +155.0% |
+82.9% | +31.1% |
This report is independent historical research provided for educational purposes only. It is not financial advice, not a recommendation to buy or sell any security, and not a prediction of future results. Backtested performance has inherent limitations: it is hypothetical, does not reflect actual capital at risk, and past performance does not guarantee future results. Trading involves substantial risk of loss.