The rule is short: if today opens below yesterday's close and at or below the lower of the last two daily lows, buy. The trade is closed one bar later, with no stop and no target. It is long only and trades at 5 per point by default.
Best run of 10. Nasdaq 100, Daily, spread 3, from run pf:2026-09-15-NAS100-D.tsv:2.
| Period | Up to 2026-09-15 |
| Instrument | Nasdaq 100, Daily |
| Spread | 3 points |
| Contracts | 5 |
| 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-15 |
| positionSize Money per point | 5 |
| maxBarsInTrade Exit after this many bars | 1 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| Nasdaq 100Best run | Daily | 1.95 | 219 | 49.77 | 33,616 EUR | -6,916 |
| S&P 500 | Daily | 1.80 | 293 | 41.30 | 6,713 EUR | -1,400 |
| Dow Jones | Daily | 1.78 | 205 | 51.22 | 57,964 EUR | -10,917 |
| Brent Crude | Daily | 1.22 | 214 | 56.07 | 18,111 EUR | -11,173 |
| Nasdaq 100 | 4 hours | 1.22 | 678 | 50.00 | 13,578 EUR | -8,879 |
| Dow Jones | 30 min | 1.09 | 1,511 | 49.11 | 16,770 EUR | -14,177 |
| Silver | 4 hours | n/a | 304 | 44.74 | 9,229,775 USD | -370,925 |
| Silver | 1 hour | n/a | 926 | 38.66 | 5,279,775 USD | -279,850 |
| Silver | 30 min | n/a | 1,767 | 36.79 | 4,788,525 USD | -415,450 |
| USD/JPY | Daily | n/a | 94 | 61.70 | 416,350 JPY | -376,000 |
Charts
Above 1.0 made money, below 1.0 lost money.
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.
// ============================================================ // Overnight Dip // ProRealAlgos Strategy Library | prorealalgos.com // Type: Mean reversion // Direction: Long only // Timeframe tested: Daily // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false DEFPARAM PreloadBars = 1000 // --- Parameters --- positionSize = 5 // money per point, as published maxBarsInTrade = 1 // exit after this many bars // --- Indicators --- dayOpen = DOpen(0) prevDayClose = DClose(1) twoDayLow = Min(DLow(1), DLow(2))
14 more lines: the entry and exit rules.
Read this first
Questions
Yes. It enters at market and exits after one bar, which ProOrder handles easily. The rewritten code is not compile-checked yet.
Nasdaq 100 Daily had a profit factor of 1.95, S&P 500 Daily 1.8 and Dow Jones Daily 1.78. Brent Crude Daily was weaker at 1.22.
The tests used 5 contracts per trade. At that size the Nasdaq 100 run had a max drawdown of EUR 6,915.55, so scale down if that is too much.
The setup compares the open with prior daily lows and closes, so a Daily chart matches the idea directly. The Nasdaq 100 4 hour run made EUR 13,577.5 at a lower profit factor of 1.22.
Related
Copy trading on US indices is available to ProRealAlgos members as spots open.