The system buys when a close drops back below the upper Bollinger Band after the prior bar closed above it, provided RSI and volatility conditions are met. Each trade uses a 1.2% stop loss and a 2.5% profit target, with one contract per trade.
Best run of 45. Gold, 4 hours, spread 0.6, from run pf:2026-10-05-GOLD-4h.tsv:9.
| Period | Up to 2026-10-05 |
| Instrument | Gold, 4 hours |
| Spread | 0.6 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-05 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| GoldBest run | 4 hours | 1.45 | 472 | 39.83 | 2,513 EUR | -358 |
| Gold | Daily | 1.35 | 351 | 36.75 | 857 EUR | -204 |
| Nasdaq 100 | 30 min | 1.22 | 1,019 | 36.70 | 16,884 EUR | -3,350 |
| USD/JPY | 30 min | n/a | 361 | 35.73 | 494,330 USD | -254,320 |
| USD/JPY | 10 min | n/a | 155 | 38.71 | 413,380 USD | -253,790 |
| USD/JPY | 15 min | n/a | 186 | 36.56 | 308,810 USD | -273,050 |
| Nikkei 225 | 30 min | n/a | 1,139 | 35.03 | 24,582 USD | -11,251 |
| Nikkei 225 | 1 hour | n/a | 875 | 35.20 | 22,997 USD | -8,624 |
| Nikkei 225 | 2 min | n/a | 240 | 37.50 | 19,374 USD | -13,790 |
| Nasdaq 100 | 15 min | n/a | 774 | 35.79 | 15,828 EUR | -4,225 |
| Dow Jones | 10 min | n/a | 301 | 36.21 | 13,727 EUR | -7,270 |
| Nikkei 225 | 4 hours | n/a | 382 | 35.08 | 12,279 USD | -5,615 |
| Nikkei 225 | Daily | n/a | 235 | 39.15 | 11,143 USD | -3,722 |
| Nasdaq 100 | 10 min | n/a | 563 | 35.35 | 10,861 EUR | -7,328 |
| Nasdaq 100 | 1 hour | n/a | 1,040 | 34.52 | 10,801 EUR | -3,658 |
| Dow Jones | 5 min | n/a | 149 | 37.58 | 10,276 EUR | -6,784 |
| Nasdaq 100 | 5 min | n/a | 273 | 37.36 | 9,130 EUR | -6,449 |
| Dow Jones | 15 min | n/a | 413 | 34.62 | 9,124 EUR | -8,598 |
| Dow Jones | 3 min | n/a | 109 | 37.61 | 7,520 EUR | -5,905 |
| DAX 40 | 5 min | n/a | 178 | 38.76 | 7,280 EUR | -3,263 |
| Dow Jones | 4 hours | n/a | 120 | 36.67 | 7,204 EUR | -6,049 |
| Nasdaq 100 | 3 min | n/a | 199 | 36.18 | 5,982 EUR | -4,548 |
| Nasdaq 100 | 2 min | n/a | 128 | 37.50 | 5,970 EUR | -4,791 |
| GBP/USD | Daily | n/a | 243 | 36.21 | 5,591 USD | -3,794 |
| DAX 40 | 15 min | n/a | 572 | 34.62 | 5,431 EUR | -5,418 |
| Nasdaq 100 | 1 min | n/a | 78 | 39.74 | 5,283 EUR | -3,653 |
| Nasdaq 100 | 4 hours | n/a | 429 | 36.83 | 5,095 EUR | -2,773 |
| Dow Jones | 1 min | n/a | 30 | 43.33 | 4,867 EUR | -4,237 |
| S&P 500 | 15 min | n/a | 524 | 36.07 | 3,197 EUR | -1,050 |
| US Crude Oil | 4 hours | n/a | 435 | 35.63 | 2,928 EUR | -1,580 |
| Gold | 5 min | n/a | 287 | 41.11 | 2,846 EUR | -1,097 |
| Gold | 15 min | n/a | 520 | 38.65 | 2,805 EUR | -1,439 |
| S&P 500 | 5 min | n/a | 165 | 40.61 | 2,695 EUR | -907 |
| S&P 500 | 30 min | n/a | 767 | 36.25 | 2,530 EUR | -1,207 |
| Gold | 10 min | n/a | 406 | 38.67 | 2,415 EUR | -1,522 |
| S&P 500 | 10 min | n/a | 345 | 36.52 | 2,406 EUR | -1,003 |
| Gold | 1 hour | n/a | 954 | 36.27 | 2,204 EUR | -746 |
| FTSE 100 | 5 min | n/a | 114 | 39.47 | 2,170 EUR | -1,079 |
| S&P 500 | 1 hour | n/a | 803 | 34.37 | 2,018 EUR | -1,169 |
| Gold | 30 min | n/a | 896 | 35.38 | 1,902 EUR | -1,184 |
| S&P 500 | 4 hours | n/a | 364 | 37.09 | 1,653 EUR | -712 |
| FTSE 100 | 10 min | n/a | 234 | 35.04 | 1,646 EUR | -1,318 |
| S&P 500 | 3 min | n/a | 128 | 38.28 | 1,493 EUR | -895 |
| S&P 500 | 1 min | n/a | 33 | 45.45 | 972 EUR | -446 |
| S&P 500 | Daily | n/a | 313 | 24.92 | 527 EUR | -351 |
Charts
Top 10 of 45 runs. The full list is in the table above.
Above 1.0 made money, below 1.0 lost money.
The code
// ============================================================== // Bollinger Upper Band Re-entry // ProRealAlgos Strategy Library | prorealalgos.com // Type: Mean reversion // Direction: Long only // Timeframe tested: 4 hours // ============================================================== DEFPARAM CumulateOrders = false basis = Average[25](close) upper = basis + 2.0 * STD[25](close) myRsi = RSI[14](close) myAtr = AverageTrueRange[14](close) atrsma = Average[50](myAtr)
12 more lines: the entry and exit rules.
Setup
Gold had no history beyond the standard run, so both runs used 30,000 bars.
| Bars available | 30,000 |
| Net, standard 200,000-bar run | 2,512.80 EUR |
| Net, long run | 2,512.80 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 45 market and timeframe combinations. The best run was Gold, 4 hours, with a profit factor of 1.45 over 472 trades.
The best run had a maximum drawdown of 358 EUR at the tested position size, against a net result of 2,513 EUR.
It only takes long trades.
Related
The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.