The system buys on a green bar with above-average volume when price crosses above its 20-period average or MACD crosses above its signal line. It sells on a stall near the upper Bollinger Band, a red bar well below the average, or an extended MACD.
Best run of 17. EUR/USD, 2 min, spread 1, from run sweeps:2026-10-03-EURUSD-2m-opt.tsv:9.
| Period | Up to 2026-10-03 |
| Instrument | EUR/USD, 2 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-03 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| EUR/USDBest run | 2 min | n/a | 5,251 | 32.64 | 149,263 USD | -82,642 |
| USD/JPY | Daily | n/a | 513 | 47.76 | 692,110 USD | -465,350 |
| EUR/USD | Daily | n/a | 554 | 48.19 | 80,378 USD | -34,819 |
| EUR/USD | 4 hours | n/a | 1,614 | 48.14 | 36,378 USD | -26,187 |
| Silver | Daily | n/a | 485 | 46.39 | 21,093 USD | -18,479 |
| Dow Jones | Daily | n/a | 641 | 48.67 | 11,395 EUR | -6,301 |
| GBP/USD | Daily | n/a | 566 | 45.76 | 8,735 USD | -4,133 |
| Nasdaq 100 | 4 hours | n/a | 1,106 | 47.65 | 6,532 EUR | -3,237 |
| DAX 40 | 4 hours | n/a | 1,076 | 49.16 | 6,193 EUR | -3,631 |
| Brent Crude | Daily | n/a | 173 | 49.71 | 6,090 EUR | -4,929 |
| Nasdaq 100 | Daily | n/a | 479 | 45.30 | 4,487 EUR | -3,858 |
| FTSE 100 | Daily | n/a | 466 | 48.93 | 3,992 EUR | -2,196 |
| DAX 40 | Daily | n/a | 402 | 47.01 | 3,920 EUR | -3,265 |
| Gold | Daily | n/a | 536 | 46.64 | 1,713 EUR | -1,053 |
| S&P 500 | Daily | n/a | 616 | 43.51 | 1,183 EUR | -903 |
| S&P 500 | 4 hours | n/a | 1,129 | 47.65 | 898 EUR | -838 |
| Gold | 4 hours | n/a | 1,018 | 46.95 | 788 EUR | -637 |
Charts
Top 10 of 17 runs. The full list is in the table above.
The code
// ============================================================== // MACD Momentum Entry with Volume // ProRealAlgos Strategy Library | prorealalgos.com // Type: Momentum // Direction: Long only // Timeframe tested: 2 minutes // ============================================================== DEFPARAM CumulateOrders = false basis = Average[20](close) upper = basis + 2.0 * STD[20](close) myMacd = ExponentialAverage[6](close) - ExponentialAverage[12](close) signal = ExponentialAverage[8](myMacd) hist = myMacd - signal myAtr = AverageTrueRange[14](close) avgvol = Average[20](Volume)
23 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 17 market and timeframe combinations. The best run by trade count was EUR/USD, 2 minutes, with 5,251 trades.
The best run had a maximum drawdown of 82,642 USD at the tested position size, against a net result of 149,263 USD.
It only takes long trades.
Related
The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.