A long-only trend system that buys when the 20-period EMA crosses above the 50-period EMA. It exits when the EMAs cross back down or when a bar low reaches the lower Bollinger Band recorded at entry.
Best run of 41. Nasdaq 100, Daily, spread 3, from run pf:2026-10-11-NAS100-D.tsv:8.
| Period | Up to 2026-10-11 |
| Instrument | Nasdaq 100, Daily |
| 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-12 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| Nasdaq 100Best run | Daily | 3.55 | 100 | 49.00 | 20,689 EUR | -3,270 |
| Nikkei 225 | 4 hours | 1.74 | 245 | 37.96 | 38,580 USD | -7,742 |
| Nasdaq 100 | 30 min | 1.19 | 1,836 | 32.19 | 13,289 EUR | -3,266 |
| USD/JPY | Daily | n/a | 115 | 33.91 | 1,165,460 USD | -520,750 |
| USD/JPY | 30 min | n/a | 1,831 | 30.42 | 770,930 USD | -198,380 |
| USD/JPY | 1 hour | n/a | 1,340 | 31.72 | 544,620 USD | -376,010 |
| USD/JPY | 15 min | n/a | 1,892 | 31.03 | 390,650 USD | -142,580 |
| USD/JPY | 10 min | n/a | 1,903 | 29.85 | 350,490 USD | -115,020 |
| EUR/USD | 2 min | n/a | 2,087 | 22.47 | 84,024 USD | -76,572 |
| EUR/USD | Daily | n/a | 126 | 32.54 | 58,672 USD | -43,952 |
| Nikkei 225 | Daily | n/a | 105 | 32.38 | 47,512 USD | -13,427 |
| Nikkei 225 | 1 hour | n/a | 974 | 30.18 | 22,405 USD | -12,182 |
| Dow Jones | Daily | n/a | 142 | 33.10 | 21,199 EUR | -8,049 |
| Nikkei 225 | 2 min | n/a | 1,842 | 29.48 | 16,198 USD | -8,059 |
| Nikkei 225 | 3 min | n/a | 1,906 | 29.01 | 13,312 USD | -7,664 |
| Dow Jones | 30 min | n/a | 756 | 31.35 | 11,774 EUR | -6,206 |
| Nasdaq 100 | 4 hours | n/a | 312 | 36.22 | 11,284 EUR | -5,188 |
| Nasdaq 100 | 1 hour | n/a | 1,120 | 32.77 | 10,957 EUR | -4,438 |
| US Crude Oil | Daily | n/a | 106 | 36.79 | 10,728 EUR | -5,029 |
| DAX 40 | Daily | n/a | 145 | 35.86 | 10,546 EUR | -4,857 |
| Nasdaq 100 | 5 min | n/a | 1,868 | 29.28 | 9,302 EUR | -4,100 |
| Dow Jones | 4 hours | n/a | 104 | 39.42 | 8,504 EUR | -6,118 |
| DAX 40 | 30 min | n/a | 1,857 | 30.10 | 8,174 EUR | -5,190 |
| Nasdaq 100 | 15 min | n/a | 1,884 | 30.15 | 7,323 EUR | -3,586 |
| DAX 40 | 4 hours | n/a | 322 | 31.99 | 6,876 EUR | -4,178 |
| Nasdaq 100 | 10 min | n/a | 1,870 | 28.66 | 6,702 EUR | -4,418 |
| Brent Crude | Daily | n/a | 49 | 36.73 | 6,029 EUR | -5,827 |
| DAX 40 | 10 min | n/a | 1,922 | 28.72 | 5,056 EUR | -3,224 |
| DAX 40 | 15 min | n/a | 1,881 | 28.07 | 4,533 EUR | -4,170 |
| S&P 500 | Daily | n/a | 145 | 37.93 | 4,315 EUR | -1,129 |
| Gold | Daily | n/a | 133 | 34.59 | 3,066 EUR | -1,191 |
| Gold | 30 min | n/a | 1,895 | 27.92 | 3,022 EUR | -765 |
| Gold | 1 hour | n/a | 1,125 | 31.47 | 2,459 EUR | -1,290 |
| S&P 500 | 4 hours | n/a | 302 | 37.09 | 2,231 EUR | -971 |
| Gold | 10 min | n/a | 1,944 | 26.75 | 2,000 EUR | -833 |
| Gold | 4 hours | n/a | 311 | 30.23 | 1,856 EUR | -1,563 |
| S&P 500 | 1 hour | n/a | 1,158 | 34.46 | 1,495 EUR | -969 |
| Gold | 15 min | n/a | 1,933 | 27.83 | 1,485 EUR | -855 |
| Gold | 5 min | n/a | 1,969 | 29.36 | 1,452 EUR | -704 |
| S&P 500 | 30 min | n/a | 1,855 | 31.37 | 1,439 EUR | -936 |
| Gold | 3 min | n/a | 2,008 | 27.39 | 1,066 EUR | -614 |
Charts
Top 10 of 41 runs. The full list is in the table above.
Above 1.0 made money, below 1.0 lost money.
The code
// ============================================================== // EMA Crossover With Bollinger Stop // ProRealAlgos Strategy Library | prorealalgos.com // Type: Trend // Direction: Long only // Timeframe tested: Daily // ============================================================== DEFPARAM CumulateOrders = false ONCE sl = 0 emaf = ExponentialAverage[20](close) emas = ExponentialAverage[50](close) bblower = Average[20](close) - 2 * STD[20](close)
13 more lines: the entry and exit rules.
Setup
Nasdaq 100 had no history beyond the standard run, so both runs used 10,000 bars.
| Bars available | 10,000 |
| Net, standard 200,000-bar run | 20,689.30 EUR |
| Net, long run | 20,689.30 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 41 market and timeframe combinations. The best run was Nasdaq 100, Daily, with a profit factor of 3.55 over 100 trades.
The best run had a maximum drawdown of 3,270 EUR at the tested position size, against a net result of 20,689 EUR.
It only takes long trades.
Related
Copy trading on US indices is available to ProRealAlgos members as spots open.