Buys when ADX(14) is above 25 and the 3-period simple moving average crosses above the 10-period one. Sells when ADX(14) is below 25 and the averages cross the other way, holding one contract, long only.
Best run of 31. DAX 40, 4 hours, spread 3, from run pf:2026-10-04-DAX40-4h.tsv:1.
| Period | Up to 2026-10-04 |
| Instrument | DAX 40, 4 hours |
| 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 | 4 hours | 1.86 | 160 | 59.38 | 19,856 EUR | -4,215 |
| S&P 500 | 1 hour | 1.67 | 707 | 60.96 | 6,947 EUR | -1,175 |
| Nasdaq 100 | 1 hour | 1.49 | 721 | 57.70 | 20,412 EUR | -3,993 |
| S&P 500 | 30 min | 1.40 | 1,045 | 56.75 | 5,046 EUR | -1,085 |
| Nasdaq 100 | 30 min | 1.39 | 1,009 | 57.38 | 20,486 EUR | -5,088 |
| USD/JPY | 4 hours | n/a | 188 | 55.85 | 763,880 USD | -293,670 |
| Dow Jones | Daily | n/a | 83 | 77.11 | 41,857 EUR | -7,927 |
| Nikkei 225 | 30 min | n/a | 1,073 | 53.22 | 38,623 USD | -13,591 |
| Nikkei 225 | 1 hour | n/a | 545 | 54.50 | 37,558 USD | -13,955 |
| Nikkei 225 | 4 hours | n/a | 139 | 59.71 | 37,156 USD | -11,500 |
| Dow Jones | 1 hour | n/a | 228 | 62.28 | 26,979 EUR | -9,431 |
| Nikkei 225 | 15 min | n/a | 1,091 | 51.88 | 20,335 USD | -11,122 |
| Nasdaq 100 | 4 hours | n/a | 166 | 65.06 | 19,289 EUR | -6,689 |
| Nikkei 225 | 5 min | n/a | 1,104 | 49.37 | 18,965 USD | -13,795 |
| Nasdaq 100 | Daily | n/a | 64 | 68.75 | 17,176 EUR | -4,516 |
| Dow Jones | 30 min | n/a | 434 | 53.23 | 15,974 EUR | -10,157 |
| DAX 40 | Daily | n/a | 81 | 58.02 | 15,770 EUR | -4,395 |
| Dow Jones | 4 hours | n/a | 53 | 66.04 | 11,994 EUR | -9,925 |
| Nasdaq 100 | 15 min | n/a | 1,097 | 57.70 | 10,845 EUR | -5,654 |
| DAX 40 | 1 hour | n/a | 635 | 53.39 | 10,236 EUR | -7,874 |
| Nasdaq 100 | 10 min | n/a | 1,102 | 55.17 | 7,916 EUR | -5,873 |
| FTSE 100 | Daily | n/a | 68 | 70.59 | 7,898 EUR | -2,138 |
| Nasdaq 100 | 5 min | n/a | 1,113 | 54.81 | 7,221 EUR | -6,034 |
| Dow Jones | 3 min | n/a | 1,098 | 51.09 | 7,041 EUR | -4,672 |
| S&P 500 | Daily | n/a | 87 | 70.11 | 5,661 EUR | -1,190 |
| Nasdaq 100 | 3 min | n/a | 1,102 | 54.45 | 5,561 EUR | -4,449 |
| FTSE 100 | 4 hours | n/a | 157 | 63.06 | 4,623 EUR | -3,363 |
| S&P 500 | 4 hours | n/a | 176 | 64.20 | 4,098 EUR | -1,184 |
| S&P 500 | 5 min | n/a | 1,083 | 52.72 | 2,138 EUR | -1,004 |
| S&P 500 | 10 min | n/a | 1,098 | 53.10 | 1,820 EUR | -1,365 |
| S&P 500 | 3 min | n/a | 1,055 | 52.32 | 1,061 EUR | -923 |
Charts
Top 10 of 31 runs. The full list is in the table above.
Above 1.0 made money, below 1.0 lost money.
The code
// ============================================================== // ADX Filtered SMA Crossover (long only) // ProRealAlgos Strategy Library | prorealalgos.com // Type: Trend // Direction: Long only // Timeframe tested: 4 hours // ============================================================== DEFPARAM CumulateOrders = false smafast = Average[3](close) smaslow = Average[10](close) myAdx = ADX[14]
15 more lines: the entry and exit rules.
Setup
DAX 40 had no history beyond the standard run, so both runs used 28,000 bars.
| Bars available | 28,000 |
| Net, standard 200,000-bar run | 19,856.20 EUR |
| Net, long run | 19,927.60 EUR |
| Net on the older data alone | 71.40 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 31 market and timeframe combinations. The best run was DAX 40, 4 hours, with a profit factor of 1.86 over 160 trades.
The best run had a maximum drawdown of 4,215 EUR at the tested position size, against a net result of 19,856 EUR.
It only takes long trades.
Related
The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.