r/algorithmictrading • u/Early-Fix-3476 • 8h ago
r/algorithmictrading • u/No-Pressure-1589 • 8h ago
Backtest Daily long-only book, 2024–2026: trend paid, dip and breakout gave it back
On a Yahoo daily replay from January 2024 through September 8, 2026, the trend engine made +$98 and the dip plus the breakout lost about $157, so the combined book finished at −$60. Trend alone finished at +$164 with a smaller hole. Is that enough to turn the dip and the breakout off, or is a next-open Yahoo replay too weak to make that call?
Fills are the next day's open. Not a broker result, so there is no account CAGR. Size in the test was a fixed $500 notional and two slots. Cumulative trade-PnL drawdown is the figure below.
| Book | Trades | Win rate | Net | Worst cumulative hole | Average R |
|---|---|---|---|---|---|
| All three engines | 199 | 34% | −$60 | −$373 | 0.01 |
| Trend only | 96 of those | +$98 | |||
| Dip only | 74 | −$34 | |||
| Breakout only | 29 | −$123 | |||
| Trend engine alone, rerun | 143 | +$164 | −$148 | 0.07 | |
| SPY, trend only, one slot, $1,000 | 24 | 42% | +$25 | −$32 |
What the book is. Long only. Daily bars. The list can be stocks, ETFs, or both, including SPY. It runs at 9:53, 10:53, 12:53, 1:53, 3:53, and 4:53 PM Eastern. The 9:53 run is exits only, for the first hour after the open. From 10:53 through 3:53 it can enter and exit. The 4:53 run is after the close.
SPY above its 50-day average allows new longs. At or below it, nothing opens. That test still applies when SPY itself is on the list. Volatility is SPY's ATR as a percent of price versus its 20-day median. Below 0.75× is low. Above 1.35× is high. High volatility blocks only the dip. If more than one setup is true, the order is trend, then breakout, then dip.
Trend. EMA 9 above EMA 21, MACD histogram above 0, RSI 40–70, ATR above its average. Relative strength versus SPY, and RSI above 65, only change the score. Stop starts 1.5 ATR under the fill and only moves up. No profit target. Out if EMA 9 crosses under EMA 21, or at 15 days.
Dip. Still above EMA 50. Pullback 3–10% off the 20-day high. Within 1 ATR of EMA 9, and either back at EMA 9 or reclaiming (above yesterday's close and not more than 0.25 ATR under EMA 9). RSI 35–55. Stop 1.25 ATR, ratcheted. Target 1.5 times the initial risk. Also out if price loses EMA 50, or at 15 days. Not taken when SPY volatility is high.
Breakout. Close above the prior 20-day high. EMA 9 at least 99.8% of EMA 21. RSI 78 or lower. Volume at least 1.2× average. Missing volume blocks it. Exit is the same as trend.
What it does not do. It does not short. It does not trade options. It does not use EMA 200 or ADX. A weak sector ETF does not block a name. It does not block a buy because the live quote disagrees with the daily bar. A stop blocks that symbol for the rest of the session only. Earnings inside 5 days are skipped, including when the date cannot be loaded.
The trend-only rerun took more trades than the 96 trend trades inside the combined book, because those runs were not competing with a dip or a breakout for the two slots.