The system buys when a short ADX(7) signals a trend and +DI(7) confirms buying pressure above 26. New longs are only opened from Monday to Wednesday. Every position is closed on Thursday unless the 200 point target or the 600 point stop is hit first.
Best run of 65. S&P 500, 5 min, spread 1, from run pf:2026-09-24-USA500-5m.tsv:1.
| Period | Up to 2026-09-25 |
| Instrument | S&P 500, 5 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-25 |
| positionSize Contracts per trade | 1 |
| adxPeriod ADX and DI length | 7 |
| adxThreshold ADX trend level | 16 |
| diLevel +DI level | 26 |
| firstTradeDay First entry weekday (Monday) | 1 |
| lastTradeDay Last entry weekday (Wednesday) | 3 |
| exitDay Weekday that closes longs (Thursday) | 4 |
| stopLossPoints Protective stop in points | 600 |
| takeProfitPoints Profit target in points | 200 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| S&P 500Best run | 5 min | 2.15 | 153 | 59.48 | 3,715 EUR | -444 |
| S&P 500 | 10 min | 1.55 | 296 | 56.42 | 3,926 EUR | -517 |
| Nasdaq 100 | 3 min | 1.51 | 266 | 72.56 | 11,461 EUR | -2,275 |
| Nasdaq 100 | 5 min | 1.45 | 375 | 70.40 | 14,022 EUR | -2,640 |
| S&P 500 | 15 min | 1.40 | 439 | 56.72 | 4,085 EUR | -551 |
| Nasdaq 100 | 4 hours | 1.34 | 848 | 54.83 | 10,555 EUR | -1,992 |
| S&P 500 | 30 min | 1.33 | 868 | 54.84 | 4,353 EUR | -573 |
| Nasdaq 100 | 15 min | 1.32 | 801 | 65.17 | 19,648 EUR | -2,993 |
| USD/JPY | 15 min | 1.30 | 456 | 56.36 | 496,850 JPY | -119,230 |
| DAX 40 | 30 min | 1.27 | 1,179 | 58.78 | 19,686 EUR | -2,941 |
| Nasdaq 100 | 10 min | 1.27 | 615 | 66.34 | 14,162 EUR | -3,032 |
| Nasdaq 100 | 30 min | 1.25 | 1,134 | 60.32 | 16,330 EUR | -3,469 |
| DAX 40 | 15 min | 1.25 | 718 | 61.56 | 13,661 EUR | -2,681 |
| Dow Jones | 5 min | 1.22 | 533 | 71.67 | 12,666 EUR | -2,719 |
| USD/JPY | 30 min | 1.21 | 870 | 53.91 | 601,440 JPY | -122,880 |
| DAX 40 | 1 hour | 1.16 | 1,241 | 58.34 | 12,285 EUR | -2,906 |
| USD/JPY | 1 hour | n/a | 1,199 | 54.05 | 720,930 JPY | -262,240 |
| USD/JPY | 10 min | n/a | 313 | 58.15 | 494,210 JPY | -125,820 |
| USD/JPY | 2 min | n/a | 61 | 62.30 | 67,770 JPY | -61,320 |
| Silver | 3 min | n/a | 180 | 69.44 | 28,496 USD | -13,986 |
| Silver | 2 min | n/a | 157 | 67.52 | 18,103 USD | -14,091 |
| Dow Jones | 10 min | n/a | 902 | 67.63 | 14,389 EUR | -5,140 |
| Nikkei 225 | 5 min | n/a | 1,171 | 72.84 | 13,704 USD | -8,864 |
| Silver | 15 min | n/a | 512 | 53.71 | 12,752 USD | -12,420 |
| Nikkei 225 | 10 min | n/a | 1,348 | 69.88 | 11,435 USD | -5,805 |
| Nikkei 225 | 3 min | n/a | 1,010 | 74.06 | 10,837 USD | -9,071 |
| Dow Jones | 30 min | n/a | 892 | 67.60 | 10,817 EUR | -4,505 |
| DAX 40 | 10 min | n/a | 498 | 61.85 | 9,452 EUR | -2,575 |
| Dow Jones | 15 min | n/a | 1,070 | 67.29 | 9,107 EUR | -5,682 |
| Dow Jones | 4 hours | n/a | 322 | 66.46 | 8,916 EUR | -3,615 |
| DAX 40 | 5 min | n/a | 303 | 66.34 | 8,472 EUR | -2,440 |
| Nasdaq 100 | 1 hour | n/a | 1,237 | 57.48 | 8,436 EUR | -3,921 |
| Dow Jones | 3 min | n/a | 407 | 71.50 | 8,159 EUR | -2,340 |
| DAX 40 | 3 min | n/a | 227 | 68.28 | 7,298 EUR | -2,228 |
| Nasdaq 100 | 2 min | n/a | 184 | 69.02 | 6,818 EUR | -2,399 |
| DAX 40 | 4 hours | n/a | 810 | 56.17 | 5,522 EUR | -3,212 |
| Dow Jones | 2 min | n/a | 257 | 71.98 | 5,327 EUR | -2,337 |
| FTSE 100 | 15 min | n/a | 460 | 55.00 | 5,257 EUR | -1,995 |
| FTSE 100 | 30 min | n/a | 916 | 52.07 | 4,243 EUR | -2,024 |
| DAX 40 | 2 min | n/a | 142 | 68.31 | 3,749 EUR | -2,225 |
| Brent Crude | Daily | n/a | 170 | 60.59 | 3,460 EUR | -1,561 |
| FTSE 100 | 10 min | n/a | 302 | 55.30 | 3,198 EUR | -1,856 |
| FTSE 100 | 3 min | n/a | 98 | 63.27 | 3,180 EUR | -635 |
| Nasdaq 100 | 1 min | n/a | 116 | 69.83 | 3,134 EUR | -2,250 |
| Dow Jones | 1 min | n/a | 141 | 70.21 | 2,903 EUR | -2,165 |
| FTSE 100 | 1 hour | n/a | 1,109 | 52.75 | 2,828 EUR | -1,870 |
| S&P 500 | 3 min | n/a | 96 | 62.50 | 2,712 EUR | -443 |
| DAX 40 | 1 min | n/a | 78 | 65.38 | 2,655 EUR | -2,440 |
| FTSE 100 | 5 min | n/a | 155 | 56.13 | 2,589 EUR | -1,116 |
| FTSE 100 | 2 min | n/a | 66 | 63.64 | 2,130 EUR | -613 |
| Gold | 1 hour | n/a | 1,047 | 52.44 | 2,077 EUR | -1,110 |
| S&P 500 | 1 hour | n/a | 1,058 | 52.74 | 1,988 EUR | -1,039 |
| S&P 500 | 4 hours | n/a | 783 | 50.96 | 1,962 EUR | -779 |
| Gold | 10 min | n/a | 302 | 55.96 | 1,865 EUR | -1,035 |
| Gold | 15 min | n/a | 447 | 54.14 | 1,852 EUR | -959 |
| Gold | 3 min | n/a | 96 | 56.25 | 1,784 EUR | -1,032 |
| Gold | 5 min | n/a | 154 | 55.84 | 1,666 EUR | -1,058 |
| S&P 500 | 2 min | n/a | 64 | 59.38 | 1,546 EUR | -386 |
| Gold | 30 min | n/a | 884 | 52.38 | 1,538 EUR | -1,157 |
| GBP/USD | 10 min | n/a | 296 | 51.69 | 1,374 USD | -957 |
| Gold | 4 hours | n/a | 738 | 50.41 | 1,229 EUR | -966 |
| Gold | 2 min | n/a | 67 | 53.73 | 1,170 EUR | -1,070 |
| GBP/USD | 3 min | n/a | 89 | 56.18 | 942 USD | -505 |
| FTSE 100 | 1 min | n/a | 34 | 52.94 | 695 EUR | -630 |
| S&P 500 | 1 min | n/a | 34 | 50.00 | 632 EUR | -399 |
Charts
Above 1.0 made money, below 1.0 lost money.
Longer history
With 947,000 bars available on S&P 500 5 minutes, net profit rose to EUR 5,469.38 from EUR 3,714.79 in the standard run, and the older data alone added EUR 1,754.59.
| Bars available | 947,000 |
| Net, standard 200,000-bar run | 3,714.79 EUR |
| Net, long run | 5,469.38 EUR |
| Net on the older data alone | 1,754.59 EUR |
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.
// ============================================================ // ADX Plus DI Trend // ProRealAlgos Strategy Library | prorealalgos.com // Type: Trend // Direction: Long only // Timeframe tested: 5 minutes // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade adxPeriod = 7 // ADX and DI length adxThreshold = 16 // ADX level that confirms a trend diLevel = 26 // +DI level that confirms buying pressure firstTradeDay = 1 // entries allowed from Monday lastTradeDay = 3 // to Wednesday exitDay = 4 // close any long on Thursday stopLossPoints = 600 // protective stop takeProfitPoints = 200 // profit target // --- Indicators --- adxValue = ADX[adxPeriod] plusDI = DIplus[adxPeriod](close) tradingWindow = DayOfWeek >= firstTradeDay AND DayOfWeek <= lastTradeDay
17 more lines: the entry and exit rules.
Read this first
Questions
It is written as a ProOrder system with fixed stop and target orders. The rewritten code has not been compile-checked yet, so run it on a demo account before going live.
Every Nasdaq 100 run in the table was profitable. The 3 minute run made EUR 11,461.4 with a profit factor of 1.51, and the 15 minute run made EUR 19,647.7 at 1.32, but its drawdown reached EUR 2,993.1.
With 1 contract the best run had a max drawdown of EUR 443.83 on the S&P 500. On the Nasdaq 100 drawdowns ran higher, for example EUR 3,469.4 on 30 minutes, so size capital to the market you trade.
A 5 minute chart lets the ADX(7) signal fire several times a week while the fixed 200 point target is still reachable within a day or two. Slower charts took more trades but reached lower profit factors, such as 1.33 on 30 minutes.
Related
Copy trading on US indices is available to ProRealAlgos members as spots open.