Buys when the MACD line crosses over its 9-period signal line while RSI(14) is below 50 and the close is below its 20-period average. Exits when RSI(14) is above 70 and the close is above the upper Bollinger Band, holding one contract long only.
Best run of 38. DAX 40, 30 min, spread 3, from run sweeps:2026-10-04-DAX40-30m-opt.tsv:32.
| Period | Up to 2026-10-04 |
| Instrument | DAX 40, 30 minutes |
| 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 |
|---|---|---|---|---|---|---|
| DAX 40Best run | 30 min | n/a | 757 | 68.69 | 7,864 EUR | -5,190 |
| USD/JPY | 4 hours | n/a | 136 | 65.44 | 276,750 USD | -264,180 |
| Nikkei 225 | 1 hour | n/a | 397 | 70.78 | 40,407 USD | -10,728 |
| Nikkei 225 | 10 min | n/a | 752 | 69.02 | 35,688 USD | -11,302 |
| EUR/USD | 15 min | n/a | 741 | 64.51 | 33,469 USD | -12,762 |
| Nikkei 225 | 4 hours | n/a | 100 | 71.00 | 26,803 USD | -8,845 |
| Dow Jones | Daily | n/a | 43 | 86.05 | 26,135 EUR | -11,142 |
| Dow Jones | 1 hour | n/a | 179 | 74.30 | 19,028 EUR | -9,739 |
| Nikkei 225 | 15 min | n/a | 742 | 66.31 | 19,019 USD | -10,270 |
| Dow Jones | 15 min | n/a | 611 | 70.87 | 17,618 EUR | -9,149 |
| Nikkei 225 | 30 min | n/a | 715 | 65.73 | 16,970 USD | -9,886 |
| Nasdaq 100 | 30 min | n/a | 741 | 71.12 | 16,422 EUR | -4,454 |
| Nasdaq 100 | Daily | n/a | 36 | 86.11 | 14,265 EUR | -4,516 |
| Nasdaq 100 | 4 hours | n/a | 124 | 75.81 | 13,766 EUR | -5,672 |
| DAX 40 | Daily | n/a | 51 | 74.51 | 13,303 EUR | -5,475 |
| Dow Jones | 30 min | n/a | 311 | 71.38 | 11,644 EUR | -10,055 |
| Nasdaq 100 | 1 hour | n/a | 516 | 69.57 | 9,430 EUR | -5,453 |
| Dow Jones | 10 min | n/a | 714 | 70.45 | 9,212 EUR | -7,676 |
| Nasdaq 100 | 15 min | n/a | 740 | 68.78 | 8,761 EUR | -4,638 |
| DAX 40 | 4 hours | n/a | 116 | 70.69 | 8,526 EUR | -4,306 |
| US Crude Oil | Daily | n/a | 47 | 74.47 | 7,741 EUR | -7,501 |
| FTSE 100 | Daily | n/a | 36 | 86.11 | 6,213 EUR | -3,289 |
| Dow Jones | 2 min | n/a | 670 | 68.66 | 5,729 EUR | -3,982 |
| DAX 40 | 10 min | n/a | 723 | 68.33 | 5,504 EUR | -3,638 |
| FTSE 100 | 30 min | n/a | 747 | 69.75 | 5,074 EUR | -2,622 |
| DAX 40 | 15 min | n/a | 723 | 69.43 | 5,047 EUR | -4,666 |
| S&P 500 | 30 min | n/a | 715 | 71.75 | 4,049 EUR | -1,024 |
| S&P 500 | 4 hours | n/a | 115 | 75.65 | 4,040 EUR | -1,205 |
| FTSE 100 | 1 hour | n/a | 438 | 71.23 | 3,845 EUR | -2,984 |
| S&P 500 | 1 hour | n/a | 516 | 72.87 | 3,071 EUR | -1,300 |
| S&P 500 | Daily | n/a | 42 | 80.95 | 2,918 EUR | -1,124 |
| US Crude Oil | 5 min | n/a | 697 | 67.29 | 2,846 EUR | -2,814 |
| FTSE 100 | 10 min | n/a | 702 | 69.94 | 2,744 EUR | -1,124 |
| FTSE 100 | 5 min | n/a | 712 | 66.43 | 2,287 EUR | -850 |
| S&P 500 | 15 min | n/a | 720 | 71.25 | 2,086 EUR | -1,064 |
| S&P 500 | 10 min | n/a | 702 | 69.52 | 1,772 EUR | -1,098 |
| GBP/USD | 5 min | n/a | 680 | 64.12 | 641 USD | -609 |
| S&P 500 | 1 min | n/a | 612 | 67.97 | 469 EUR | -421 |
Charts
Top 10 of 38 runs. The full list is in the table above.
The code
// ============================================================== // MACD Bollinger Band RSI Reversion // ProRealAlgos Strategy Library | prorealalgos.com // Type: Mean reversion // Direction: Long only // Timeframe tested: 30 minutes // ============================================================== DEFPARAM CumulateOrders = false ONCE since = -1 myMacd = MACDline[12,26,9](close) signal = ExponentialAverage[9](myMacd) basis = Average[20](close) dev = 2 * STD[20](close) upper = basis + dev lower = basis - dev myRsi = RSI[14](close)
27 more lines: the entry and exit rules.
Setup
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 38 market and timeframe combinations. The best run by trade count was DAX 40, 30 minutes, with 757 trades.
The best run had a maximum drawdown of 5,190 EUR at the tested position size, against a net result of 7,864 EUR.
It only takes long trades.
Related
The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.