The idea buys when a 4 period EMA crosses down through a 10 period EMA while the MACD line is below 0 and +DI(28) is above -DI(28). It closes the long when the EMA crosses up with MACD above 0 and +DI(28) below -DI(28).
Best run of 44. Nasdaq 100, 4 hours, spread 3, from run pf:2026-10-04-NAS100-4h.tsv:8.
| Period | Up to 2026-10-04 |
| Instrument | Nasdaq 100, 4 hours |
| Spread | 3 points |
| Starting capital | 1,000,000 |
| Costs | Spread only. Commissions and overnight financing are not included. |
| Bars | Up to 200,000 bars, fewer where the instrument has less history |
| Last tested | 2026-10-04 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| Nasdaq 100Best run | 4 hours | 2.72 | 215 | 56.74 | 17,080 EUR | -1,945 |
| S&P 500 | 4 hours | 2.13 | 222 | 57.66 | 3,375 EUR | -574 |
| Gold | 1 hour | 1.51 | 749 | 44.99 | 3,000 EUR | -510 |
| Nikkei 225 | 30 min | 1.30 | 1,211 | 42.11 | 35,502 USD | -6,899 |
| USD/JPY | 10 min | n/a | 1,232 | 45.21 | 377,440 USD | -176,260 |
| USD/JPY | 5 min | n/a | 1,265 | 43.87 | 165,750 USD | -102,790 |
| EUR/USD | Daily | n/a | 77 | 40.26 | 87,724 USD | -42,240 |
| Nikkei 225 | Daily | n/a | 63 | 60.32 | 47,108 USD | -14,175 |
| Nikkei 225 | 2 min | n/a | 1,215 | 41.32 | 24,560 USD | -8,715 |
| Silver | 15 min | n/a | 1,229 | 38.00 | 23,443 USD | -8,923 |
| Silver | 30 min | n/a | 1,210 | 38.51 | 20,876 USD | -13,955 |
| Silver | 2 min | n/a | 1,208 | 41.47 | 17,459 USD | -14,195 |
| Nikkei 225 | 4 hours | n/a | 174 | 45.98 | 15,733 USD | -7,514 |
| Nikkei 225 | 3 min | n/a | 1,267 | 40.17 | 15,691 USD | -7,653 |
| Nikkei 225 | 1 hour | n/a | 635 | 42.36 | 12,631 USD | -10,648 |
| Dow Jones | 4 hours | n/a | 71 | 47.89 | 12,436 EUR | -5,105 |
| DAX 40 | Daily | n/a | 79 | 56.96 | 11,883 EUR | -6,249 |
| Dow Jones | 1 hour | n/a | 250 | 45.60 | 11,336 EUR | -5,283 |
| Nasdaq 100 | 1 hour | n/a | 766 | 45.95 | 9,902 EUR | -3,795 |
| Dow Jones | 10 min | n/a | 1,226 | 42.58 | 9,781 EUR | -6,357 |
| Nasdaq 100 | Daily | n/a | 72 | 58.33 | 9,196 EUR | -3,242 |
| Nasdaq 100 | 3 min | n/a | 1,177 | 42.99 | 9,068 EUR | -3,084 |
| Nasdaq 100 | 10 min | n/a | 1,219 | 42.17 | 8,433 EUR | -3,025 |
| US Crude Oil | 4 hours | n/a | 144 | 47.22 | 7,883 EUR | -7,442 |
| DAX 40 | 4 hours | n/a | 188 | 52.13 | 7,675 EUR | -4,648 |
| Nasdaq 100 | 2 min | n/a | 1,177 | 41.89 | 6,652 EUR | -3,401 |
| Dow Jones | 5 min | n/a | 1,244 | 40.68 | 6,503 EUR | -5,981 |
| Nasdaq 100 | 5 min | n/a | 1,217 | 42.97 | 6,415 EUR | -4,597 |
| DAX 40 | 10 min | n/a | 1,226 | 42.25 | 5,375 EUR | -2,662 |
| FTSE 100 | Daily | n/a | 72 | 59.72 | 4,313 EUR | -1,365 |
| FTSE 100 | 4 hours | n/a | 199 | 49.75 | 3,740 EUR | -1,978 |
| DAX 40 | 5 min | n/a | 1,241 | 41.34 | 3,688 EUR | -3,142 |
| Gold | Daily | n/a | 75 | 48.00 | 3,174 EUR | -1,108 |
| Nasdaq 100 | 1 min | n/a | 1,175 | 38.04 | 2,839 EUR | -2,300 |
| S&P 500 | Daily | n/a | 92 | 53.26 | 2,098 EUR | -1,247 |
| Gold | 4 hours | n/a | 209 | 43.06 | 2,007 EUR | -1,095 |
| Gold | 30 min | n/a | 1,213 | 41.47 | 1,744 EUR | -861 |
| Gold | 10 min | n/a | 1,225 | 39.84 | 1,736 EUR | -706 |
| Gold | 15 min | n/a | 1,238 | 40.15 | 1,533 EUR | -786 |
| Gold | 3 min | n/a | 1,252 | 39.62 | 1,196 EUR | -783 |
| S&P 500 | 3 min | n/a | 1,224 | 41.26 | 1,163 EUR | -541 |
| S&P 500 | 5 min | n/a | 1,228 | 40.39 | 1,021 EUR | -897 |
| S&P 500 | 10 min | n/a | 1,220 | 43.20 | 842 EUR | -740 |
| S&P 500 | 2 min | n/a | 1,219 | 38.72 | 761 EUR | -422 |
Charts
Top 10 of 44 runs. The full list is in the table above.
Above 1.0 made money, below 1.0 lost money.
The code
// ============================================================== // EMA Crossover MACD DI Filter // ProRealAlgos Strategy Library | prorealalgos.com // Type: Trend // Direction: Long only // Timeframe tested: 4 hours // ============================================================== DEFPARAM CumulateOrders = false emafast = ExponentialAverage[4](close) emaslow = ExponentialAverage[10](close) myMacd = ExponentialAverage[5](close) - ExponentialAverage[10](close) myDiplus = DIplus[28](close) myDiminus = DIminus[28](close)
13 more lines: the entry and exit rules.
Setup
Nasdaq 100 had no history beyond the standard run, so both runs used 28,000 bars.
| Bars available | 28,000 |
| Net, standard 200,000-bar run | 17,079.50 EUR |
| Net, long run | 17,079.50 EUR |
| Net on the older data alone | 0.00 EUR |
Questions
Yes. The code is ProBuilder and runs as an automated ProOrder system. Backtest it on your own account with your own spread and position size before trading it live.
It was tested on 44 market and timeframe combinations. The best run was Nasdaq 100, 4 hours, with a profit factor of 2.72 over 215 trades.
The best run had a maximum drawdown of 1,945 EUR at the tested position size, against a net result of 17,080 EUR.
It only takes long trades.
Related
Copy trading on US indices is available to ProRealAlgos members as spots open.