The strategy buys when the MACD line crosses above its 9 period signal line while RSI is below 50 and price is below the 20 period average. It sells when RSI is above 70 and price closes above the upper Bollinger Band.
Best run of 35. S&P 500, 30 min, spread 1, from run pf:2026-10-10-USA500-30m.tsv:1.
| Period | Up to 2026-10-10 |
| Instrument | S&P 500, 30 minutes |
| Spread | 1 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-10 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| S&P 500Best run | 30 min | 1.48 | 796 | 71.61 | 4,673 EUR | -1,024 |
| Nikkei 225 | 1 hour | n/a | 428 | 71.73 | 41,468 USD | -10,828 |
| Nikkei 225 | 10 min | n/a | 834 | 68.94 | 39,251 USD | -10,270 |
| Nikkei 225 | 4 hours | n/a | 105 | 72.38 | 29,223 USD | -8,960 |
| EUR/USD | 15 min | n/a | 805 | 64.72 | 28,577 USD | -15,797 |
| Dow Jones | Daily | n/a | 46 | 86.96 | 27,574 EUR | -11,142 |
| Nikkei 225 | 15 min | n/a | 822 | 67.03 | 23,393 USD | -10,248 |
| Dow Jones | 15 min | n/a | 658 | 71.43 | 20,231 EUR | -9,149 |
| Dow Jones | 1 hour | n/a | 190 | 73.68 | 17,951 EUR | -9,739 |
| Nasdaq 100 | 30 min | n/a | 801 | 71.04 | 15,035 EUR | -4,210 |
| Nasdaq 100 | Daily | n/a | 37 | 86.49 | 14,436 EUR | -4,516 |
| DAX 40 | Daily | n/a | 52 | 75.00 | 13,314 EUR | -5,475 |
| Dow Jones | 30 min | n/a | 344 | 71.80 | 12,768 EUR | -8,023 |
| Nikkei 225 | 30 min | n/a | 788 | 65.23 | 12,361 USD | -10,219 |
| Nasdaq 100 | 4 hours | n/a | 127 | 75.59 | 11,548 EUR | -5,693 |
| Nasdaq 100 | 15 min | n/a | 790 | 69.49 | 10,213 EUR | -5,498 |
| DAX 40 | 4 hours | n/a | 121 | 71.90 | 9,818 EUR | -4,306 |
| Dow Jones | 10 min | n/a | 775 | 70.45 | 9,570 EUR | -6,812 |
| Nasdaq 100 | 1 hour | n/a | 555 | 70.09 | 9,189 EUR | -5,453 |
| Dow Jones | 4 hours | n/a | 42 | 71.43 | 8,993 EUR | -8,850 |
| DAX 40 | 30 min | n/a | 819 | 68.13 | 7,391 EUR | -6,094 |
| FTSE 100 | 30 min | n/a | 808 | 69.31 | 6,120 EUR | -2,635 |
| FTSE 100 | Daily | n/a | 36 | 83.33 | 5,940 EUR | -3,289 |
| DAX 40 | 10 min | n/a | 776 | 68.69 | 5,257 EUR | -3,890 |
| S&P 500 | 4 hours | n/a | 121 | 76.03 | 4,521 EUR | -1,205 |
| FTSE 100 | 1 hour | n/a | 466 | 71.24 | 3,727 EUR | -2,973 |
| S&P 500 | 1 hour | n/a | 552 | 73.37 | 3,451 EUR | -1,283 |
| S&P 500 | Daily | n/a | 47 | 82.98 | 3,398 EUR | -1,124 |
| Dow Jones | 1 min | n/a | 726 | 68.60 | 2,907 EUR | -2,469 |
| S&P 500 | 15 min | n/a | 786 | 70.74 | 2,794 EUR | -1,099 |
| FTSE 100 | 10 min | n/a | 762 | 68.77 | 2,334 EUR | -1,296 |
| FTSE 100 | 5 min | n/a | 777 | 66.15 | 2,253 EUR | -879 |
| S&P 500 | 10 min | n/a | 759 | 69.43 | 1,697 EUR | -1,025 |
| Gold | 1 hour | n/a | 531 | 66.48 | 980 EUR | -914 |
| S&P 500 | 1 min | n/a | 654 | 68.35 | 500 EUR | -454 |
Charts
Top 10 of 35 runs. The full list is in the table above.
The code
// ============================================================== // MACD Crossover Bollinger RSI Filter // ProRealAlgos Strategy Library | prorealalgos.com // Type: Mean reversion // Direction: Long only // Timeframe tested: 30 minutes // ============================================================== DEFPARAM CumulateOrders = false myMacd = ExponentialAverage[12](close) - ExponentialAverage[26](close) signal = ExponentialAverage[9](myMacd) basis = Average[20](close) upper = basis + 2 * STD[20](close) myRsi = RSI[14](close)
12 more lines: the entry and exit rules.
Setup
On the long run with 228,000 bars the net result was 4,207 EUR, against 4,673 EUR on the standard 200,000-bar run. The older data alone gave -466 EUR.
| Bars available | 228,000 |
| Net, standard 200,000-bar run | 4,673.44 EUR |
| Net, long run | 4,207.44 EUR |
| Net on the older data alone | -466.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 35 market and timeframe combinations. The best run was S&P 500, 30 minutes, with a profit factor of 1.48 over 796 trades.
The best run had a maximum drawdown of 1,024 EUR at the tested position size, against a net result of 4,673 EUR.
It only takes long trades.
Related
Copy trading on US indices is available to ProRealAlgos members as spots open.