When a whole bar opens and closes at or below the lower Bollinger Band (30), it buys. A bar fully at or above the upper band triggers a short. Positions exit when the close crosses the 180 SMA or an opposite signal reverses them.
Best run of 14. EUR/USD, 10 min, spread 1, from run sweeps:2026-09-26-EURUSD-10m-opt.tsv:2.
| Period | Up to 2026-09-26 |
| Instrument | EUR/USD, 10 minutes |
| Spread | 1 points |
| Contracts | 1 |
| 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-09-26 |
| positionSize Contracts per trade | 1 |
| bandPeriod Bollinger Band length | 30 |
| exitPeriod Exit when price crosses this simple moving average | 180 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| EUR/USDBest run | 10 min | n/a | 3,144 | 55.92 | 25,920 USD | -25,496 |
| Silver | 1 hour | n/a | 1,805 | 52.74 | 1,084,960 USD | -567,835 |
| EUR/USD | 1 hour | n/a | 2,837 | 55.34 | 62,539 USD | -26,900 |
| EUR/USD | 4 hours | n/a | 706 | 57.08 | 52,407 USD | -40,882 |
| Dow Jones | Daily | n/a | 210 | 56.19 | 20,830 EUR | -8,615 |
| Dow Jones | 4 hours | n/a | 162 | 59.88 | 15,616 EUR | -10,395 |
| DAX 40 | Daily | n/a | 267 | 55.43 | 11,947 EUR | -11,170 |
| US Crude Oil | 1 hour | n/a | 1,388 | 56.63 | 10,411 EUR | -7,198 |
| Nasdaq 100 | 4 hours | n/a | 509 | 53.63 | 9,176 EUR | -6,901 |
| DAX 40 | 1 hour | n/a | 1,832 | 56.33 | 8,587 EUR | -6,508 |
| Nasdaq 100 | Daily | n/a | 162 | 50.62 | 7,733 EUR | -7,424 |
| FTSE 100 | 4 hours | n/a | 480 | 57.29 | 6,551 EUR | -2,842 |
| FTSE 100 | Daily | n/a | 194 | 62.37 | 5,964 EUR | -4,080 |
| GBP/USD | 4 hours | n/a | 700 | 54.57 | 5,724 USD | -4,898 |
Charts
The code
Every file in the library uses the same header, the same section order and the same variable names. The numbers above were produced by the original version before the rewrite, and the rewrite has not yet been compiled in ProRealTime.
// ============================================================ // Bollinger Mean Reversion // ProRealAlgos Strategy Library | prorealalgos.com // Type: Mean reversion // Direction: Long & short // Timeframe tested: 10 minutes // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade bandPeriod = 30 // Bollinger Band length exitPeriod = 180 // exit when price crosses this simple moving average // --- Indicators --- upperBand = BollingerUp[bandPeriod](close) lowerBand = BollingerDown[bandPeriod](close) exitMA = Average[exitPeriod](close)
25 more lines: the entry and exit rules.
Read this first
Questions
Yes, it is fully automated with no stop. The rewritten code was not compile-checked, so backtest it before live use.
EUR/USD, GBP/USD, Silver, US Crude Oil and four stock indices, and every listed run was positive. Dow Jones daily made EUR 20,830.2 over 210 trades.
The EUR/USD 10 minute best run had a max drawdown of USD 25,496 at position size 1.
It produced the best recorded run on EUR/USD, with 3,144 trades giving a large sample.
Related
The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.