Pulse Trend (MACD + RSI), 18 runs: it wins one trade in three, stays profitable — and still loses to holding
Our own MACD + RSI library entry over 18 runs: win rates of 29–46%, profitable before costs on 17 of them, behind buy & hold on all 18.
A teardown of our own library entry. Every number in the results table is the tool's saved output; the reading at the end is ours and is marked as such.
2026-09-21 · our own library entry, run as published
How to read this: Reading a backtest result · Validation Lab: walk-forward & Monte Carlo
The claim. Pulse Trend is an Official entry in the STLab library. Its description: "MACD + RSI combo strategy. Buy when MACD histogram turns positive and RSI is above 50." The card shows one published run — AAPL on hourly bars over six months: +10.58% on 11 trades, a 36.4% win rate, verdict Read with caution with the tool's own thin-sample and underperforms-hold flags. Eleven trades is not much to go on, so we ran the entry, unchanged, 18 more times.
What we ran. The entry's saved configuration exactly as published: long with 100% of equity when MACD (12/26/9) is above zero and RSI (14) is above 50; exit when MACD is below zero; a 5% stop-loss and a 12% take-profit. One thing to say plainly: the saved configuration compares the MACD line with zero, not the histogram the description names — we ran what the entry runs, not what its description says. Nothing tuned, no costs modelled (the tool's cost panel re-runs the trades at 5–50 bps afterwards). Three axes, the same as teardowns #3 to #5: eight large US names on hourly bars over the two years our feed provides; the same eight on daily bars over 25 years; and the two largest crypto perpetuals on hourly bars over the ~7 months the server fetch returns. Anyone can reproduce the stock runs from the library card.
Results — 18 runs.
| Run | Trades | Win rate | Max DD | Strategy return | Buy & hold | Verdict flag | Cost panel | Break-even cost |
|---|---|---|---|---|---|---|---|---|
| AAPL · 1h · 2024–2026 | 54 | 42.6% | 12.16% | +40.22% | +46.47% | UNDERPERFORMS_HOLD · Read with caution | Survives realistic costs | 31.4 bps |
| SPY · 1h · 2024–2026 | 61 | 37.7% | 14.89% | +8.11% | +33.31% | UNDERPERFORMS_HOLD · Read with caution | Dies at realistic costs | 6.4 bps |
| QQQ · 1h · 2024–2026 | 60 | 35.0% | 15.67% | +22.81% | +67.04% | UNDERPERFORMS_HOLD · Read with caution | Thin margin over costs | 17.1 bps |
| NVDA · 1h · 2024–2026 | 70 | 37.1% | 26.77% | +22.12% | +86.44% | UNDERPERFORMS_HOLD · Read with caution | Thin margin over costs | 14.3 bps |
| MSFT · 1h · 2024–2026 | 54 | 35.2% | 21.68% | +9.86% | +12.33% | UNDERPERFORMS_HOLD · Read with caution | Dies at realistic costs | 8.7 bps |
| AMZN · 1h · 2024–2026 | 68 | 29.4% | 34.35% | −9.04% | +32.98% | UNDERPERFORMS_HOLD · Read with caution | Dies at realistic costs | — (loses at 0) |
| JPM · 1h · 2024–2026 | 68 | 30.9% | 13.31% | +3.80% | +66.05% | UNDERPERFORMS_HOLD · Read with caution | Dies at realistic costs | 2.7 bps |
| XOM · 1h · 2024–2026 | 61 | 31.1% | 13.20% | +19.08% | +40.23% | UNDERPERFORMS_HOLD · Read with caution | Thin margin over costs | 14.3 bps |
| AAPL · 1d · 2001–2026 | 206 | 45.6% | 34.60% | +11,725.84% | +121,262.34% | UNDERPERFORMS_HOLD · Read with caution | Survives realistic costs | 116.8 bps |
| SPY · 1d · 2001–2026 | 112 | 42.9% | 18.51% | +242.34% | +644.78% | UNDERPERFORMS_HOLD · Read with caution | Survives realistic costs | 55.2 bps |
| QQQ · 1d · 2001–2026 | 139 | 39.6% | 25.98% | +558.26% | +2,433.18% | UNDERPERFORMS_HOLD · Read with caution | Survives realistic costs | 68.1 bps |
| NVDA · 1d · 2001–2026 | 300 | 42.0% | 60.70% | +15,350.48% | +101,509.14% | UNDERPERFORMS_HOLD · SEVERE_DRAWDOWN · Likely unreliable | Survives realistic costs | 84.3 bps |
| MSFT · 1d · 2001–2026 | 150 | 36.7% | 55.43% | +198.54% | +1,876.70% | UNDERPERFORMS_HOLD · HIGH_DRAWDOWN · Read with caution | Survives realistic costs | 36.5 bps |
| AMZN · 1d · 2001–2026 | 218 | 39.0% | 49.48% | +3,112.09% | +81,741.94% | UNDERPERFORMS_HOLD · HIGH_DRAWDOWN · Read with caution | Survives realistic costs | 79.8 bps |
| JPM · 1d · 2001–2026 | 174 | 38.5% | 51.69% | +150.89% | +955.77% | UNDERPERFORMS_HOLD · HIGH_DRAWDOWN · Read with caution | Survives realistic costs | 26.4 bps |
| XOM · 1d · 2001–2026 | 150 | 35.3% | 51.97% | +20.92% | +325.66% | UNDERPERFORMS_HOLD · HIGH_DRAWDOWN · Read with caution | Dies at realistic costs | 6.3 bps |
| BTC/USDT · 1h · Feb–Sep 2026 | 90 | 30.0% | 9.83% | +14.39% | +27.17% | UNDERPERFORMS_HOLD · Read with caution | Dies at realistic costs | 7.5 bps |
| ETH/USDT · 1h · Feb–Sep 2026 | 98 | 32.7% | 19.05% | +8.24% | +43.82% | UNDERPERFORMS_HOLD · Read with caution | Dies at realistic costs | 4.0 bps |
All 18 carry the tool's UNDERPERFORMS_HOLD and NO_COSTS flags; MSFT, AMZN, JPM and XOM on daily bars also carry HIGH_DRAWDOWN, and NVDA on daily bars carries SEVERE_DRAWDOWN — the only run of the 18 whose verdict headline is Likely unreliable rather than Read with caution. None carries a sample-size flag. Twelve runs ended with a position still open at the last bar; the tool shows that leg separately and it is not in the return (AAPL 1h (+3.48%), SPY 1h (+0.11%), QQQ 1h (+0.65%), NVDA 1h (+1.53%), AMZN 1h (+0.25%), AAPL 1d (+6.08%), QQQ 1d (+0.00%), NVDA 1d (+1.39%), MSFT 1d (-1.99%), XOM 1d (+1.61%), BTC/USDT 1h (+0.39%), ETH/USDT 1h (+1.54%)).
The tool's own words.
- AAPL 1h: “Underperforms buy & hold by 6.25% — it lost to doing nothing (hold: 46.47%).” · “Survives realistic costs — Profit holds up to 31.4 bps of round-trip cost.”
- AMZN 1h: “Rebuilt from this run's own trades with commission stripped, it still compounds to a loss (−9.0%) — no fee level can make it profitable.”
- JPM 1h: “Dies at realistic costs — Profit holds up to 2.7 bps of round-trip cost.”
- SPY 1d: “Underperforms buy & hold by 402.44% — it lost to doing nothing (hold: 644.78%).”
- NVDA 1d: “Max drawdown 60.7% — likely un-survivable in live trading.”
- MSFT 1d: “Max drawdown 55.43% — could you actually hold through that?”
- BTC/USDT 1h: “Underperforms buy & hold by 12.78% — it lost to doing nothing (hold: 27.17%).”
- Every page: “No trading costs modeled — real fills will be worse.”
Our reading (not the tool's).
- The card's warning held up. The published card is 11 trades with a thin-sample flag. At 54 to 300 trades a run the sample flag is gone on all 18 — and the other flag on the card, underperforms buy & hold, is on all 18 too. More data did not rescue the entry; it confirmed the caution label it already carried.
- It wins about one trade in three and is still profitable on 17 of 18. Win rates of 29.4–45.6% — close to teardown #3's and far under #5's — yet only AMZN on hourly bars loses before costs. That is what a 5% stop paired with a 12% target looks like: many small losses, fewer larger wins. It is a real property of the rule, and it is not the same thing as beating the market.
- Hourly bars: half the profits are fee-sized. On two years of hourly bars, 7 of 8 names are positive (-9.0% to +40.2% against +12.3% to +86.4% for holding), but the cost panel kills 4 of them at a 10 bps round trip (SPY, MSFT, AMZN, JPM), leaves 3 on a thin margin (QQQ, NVDA, XOM) and clears only AAPL. JPM's profit is gone at 2.7 bps.
- Daily bars: it survives costs and keeps the drawdowns. On 25 years of daily bars all 8 names are positive and 7 of 8 survive realistic costs (break-even 6.3–116.8 bps; XOM is the one that does not). The 5% stop does not cap the damage the way the number suggests: max drawdown runs 18.5% to 60.7%, five of the eight daily runs carry a drawdown flag, and NVDA's 60.7% turns its headline to Likely unreliable. A stop limits one trade, not a string of them.
- Crypto: positive, and too thin to trade. BTC and ETH both finish up (+14.4% and +8.2% against +27.2% and +43.8% for holding), and both die at realistic costs — break-even 7.5 and 4.0 bps across 90 and 98 trades.
- Paired with teardown #3. EMA Cross Momentum, our other Official trend entry, was also behind holding on every one of its 18 runs. Two of our own library entries, two different indicator families, the same line in every verdict. We publish them with that label on the card for this reason.
Honest limits. Hourly stock history is capped at two years by our feed (QQQ's hourly window happens to reach back to August 2024 because our cache holds more of it; the other seven start 2024-09-19), crypto at 5,000 bars by the server fetch; the 25-year daily runs are one regime sequence, and the four-and-five-digit daily returns on AAPL, NVDA and AMZN are mostly those names' own 25-year rise compounding at 100% size; long-only; entries and exits fill at the close of the bar that triggers them; no slippage or taxes; the twelve runs that ended in an open position show that leg separately and it is not in the return. The entry's description and its saved configuration disagree on which MACD value is compared with zero; the numbers here are the configuration's. The stop and target are the entry's published values — other values would change the win rate and the drawdown together, and we did not try any.
Receipts
18 share pages, open without an account (each shows the tested window, bar count, verdict and cost panel):
- AAPL 1h: https://stlab.app/v/6c675b75-8f70-4ae5-8341-450837a3e520
- SPY 1h: https://stlab.app/v/754ce831-b6aa-4788-9fb9-be8b4b48c4b6
- QQQ 1h: https://stlab.app/v/0f9053c0-aca2-4974-a79f-575030e874c0
- NVDA 1h: https://stlab.app/v/345d4017-3b79-4bd9-a2e3-77fdde51273b
- MSFT 1h: https://stlab.app/v/936b64a6-ec50-4a54-88a0-07875d0210b8
- AMZN 1h: https://stlab.app/v/c86eeaba-cc42-48df-8562-91f54be8bf9b
- JPM 1h: https://stlab.app/v/a2e54090-40d0-4515-a6fd-3c73e038d531
- XOM 1h: https://stlab.app/v/1c1857f3-c61d-456a-9c5c-09e483f2babf
- AAPL 1d: https://stlab.app/v/bb2476cc-b3f4-4a79-899b-59264dc00f2d
- SPY 1d: https://stlab.app/v/daad059a-dd9c-4eb8-86a7-f1d48ec0fd15
- QQQ 1d: https://stlab.app/v/fb092af9-ccd1-45b8-a587-9712cc9b9aa2
- NVDA 1d: https://stlab.app/v/b9aad877-6bab-4b1b-be63-0cf5198aa5f2
- MSFT 1d: https://stlab.app/v/2b535e57-9bb8-4ca9-a5aa-d35a815e981c
- AMZN 1d: https://stlab.app/v/75d52a48-2b5a-4707-a293-169177925caf
- JPM 1d: https://stlab.app/v/2f6f38ce-1fd5-4754-8a87-ec78c50e1592
- XOM 1d: https://stlab.app/v/5753eb2d-56ff-46c3-940d-fa84b93768d4
- BTC/USDT 1h: https://stlab.app/v/602c14a1-07d8-4578-a2ad-e4d07a8c117a
- ETH/USDT 1h: https://stlab.app/v/fbccb913-464f-4cf6-b742-913a2fc663ff
The library entry itself: https://stlab.app/library/c8c63466-318d-43c4-90c8-40e8babb39e8
Simulated results on historical data — research output, not financial advice. Past performance does not guarantee future results.
More teardowns
- Bollinger mean reversion, 18 runs: it wins most of its trades — and still loses to holding — The textbook lower-Bollinger-Band buy over 18 runs: win rates of 56–80%, profitable before costs on 15 of them, behind buy & hold on all 18.
- Our own RSI bounce, 18 runs: it wins more often than it loses, and loses to holding every time — Our own RSI(14) oversold bounce over 18 runs on hourly, daily and crypto bars: profitable on 15 of them, behind buy & hold on all 18, and no sample-size flag.
- Our own EMA cross, 18 runs: a real edge, and a thin one — Our own EMA(9)/EMA(21) cross over 18 runs on hourly, daily and crypto bars: profitable before costs on 16 of them, behind buy & hold on all 18.
- The golden cross, 25 years, 8 names: it works — and still loses to holding — The textbook SMA 50/200 golden cross, untuned, on 8 large US names over 25 years: all 8 survive realistic costs, and 7 of 8 still lose to buy & hold.
- A 93%-win-rate strategy, run over 25 years: what survived — A KNN SuperTrend strategy posted with a 93% win rate, ported line-by-line and run 13 times on up to 25 years of daily and hourly bars. None beat buy & hold.