On Mondays, when price is below its 50 EMA and a 1-period EMA crosses above a 2-period EMA, the system buys the uptick. It exits only at a 1% profit target. There is no stop loss, so a losing trade stays open until the target is reached.
Best run of 93. Nikkei 225, 4 hours, spread 10, from run pf:2026-09-24-NIKKEI-4h.tsv:2.
| Period | Up to 2026-09-24 |
| Instrument | Nikkei 225, 4 hours |
| Spread | 10 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-24 |
| positionSize Contracts per trade | 1 |
| tradeDay Day of week allowed for entries (1 = Monday) | 1 |
| fastPeriod Fast EMA length | 1 |
| midPeriod EMA the fast one must cross above | 2 |
| trendPeriod EMA the fast one must still be below | 50 |
| takeProfitPct Profit target, percent of entry price | 1 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| Nikkei 225Best run | 4 hours | No losses | 146 | 100.00 | 39,707 USD | -8,960 |
| Nasdaq 100 | 30 min | No losses | 231 | 100.00 | 25,359 EUR | -6,182 |
| DAX 40 | 4 hours | No losses | 124 | 100.00 | 17,079 EUR | -4,192 |
| S&P 500 | 30 min | No losses | 174 | 100.00 | 6,121 EUR | -1,314 |
| S&P 500 | 1 hour | No losses | 155 | 100.00 | 5,404 EUR | -1,306 |
| USD/JPY | 30 min | n/a | 48 | 100.00 | 561,070 JPY | -256,680 |
| USD/JPY | 10 min | n/a | 36 | 100.00 | 494,860 JPY | -222,980 |
| USD/JPY | 15 min | n/a | 32 | 100.00 | 442,680 JPY | -220,640 |
| USD/JPY | 2 min | n/a | 12 | 100.00 | 185,880 JPY | -110,160 |
| USD/JPY | 3 min | n/a | 9 | 100.00 | 141,340 JPY | -123,670 |
| Nikkei 225 | 1 hour | n/a | 140 | 100.00 | 41,411 USD | -10,862 |
| Nikkei 225 | 30 min | n/a | 132 | 100.00 | 36,155 USD | -10,960 |
| Silver | 5 min | n/a | 114 | 100.00 | 28,540 USD | -20,247 |
| Dow Jones | 15 min | n/a | 68 | 100.00 | 26,974 EUR | -11,267 |
| Nikkei 225 | 15 min | n/a | 65 | 100.00 | 26,454 USD | -12,572 |
| Silver | 3 min | n/a | 88 | 100.00 | 25,467 USD | -20,437 |
| Nikkei 225 | 10 min | n/a | 53 | 100.00 | 24,978 USD | -12,453 |
| Nikkei 225 | 5 min | n/a | 48 | 100.00 | 24,788 USD | -12,676 |
| Silver | 2 min | n/a | 70 | 100.00 | 24,114 USD | -20,501 |
| Dow Jones | 1 hour | n/a | 60 | 100.00 | 23,592 EUR | -11,215 |
| Silver | 30 min | n/a | 98 | 100.00 | 23,483 USD | -14,856 |
| Dow Jones | 30 min | n/a | 58 | 100.00 | 23,219 EUR | -11,222 |
| Silver | 10 min | n/a | 93 | 100.00 | 22,860 USD | -20,159 |
| Silver | 15 min | n/a | 122 | 100.00 | 22,793 USD | -19,531 |
| Nikkei 225 | 3 min | n/a | 42 | 100.00 | 22,662 USD | -12,883 |
| Nasdaq 100 | 1 hour | n/a | 212 | 100.00 | 21,481 EUR | -6,061 |
| Dow Jones | 10 min | n/a | 49 | 100.00 | 21,202 EUR | -8,381 |
| Nikkei 225 | 2 min | n/a | 37 | 100.00 | 20,964 USD | -13,121 |
| Nikkei 225 | 1 min | n/a | 32 | 100.00 | 18,834 USD | -13,148 |
| DAX 40 | 1 hour | n/a | 127 | 100.00 | 18,367 EUR | -5,305 |
| Dow Jones | 5 min | n/a | 41 | 100.00 | 18,339 EUR | -8,406 |
| DAX 40 | 30 min | n/a | 126 | 100.00 | 18,075 EUR | -5,810 |
| Silver | 4 hours | n/a | 98 | 100.00 | 17,917 USD | -11,181 |
| Nasdaq 100 | 15 min | n/a | 102 | 100.00 | 17,021 EUR | -6,189 |
| Silver | 1 hour | n/a | 75 | 100.00 | 16,844 USD | -14,799 |
| Dow Jones | 4 hours | n/a | 41 | 100.00 | 16,144 EUR | -9,942 |
| Dow Jones | Daily | n/a | 127 | 100.00 | 15,971 EUR | -5,370 |
| Nasdaq 100 | 4 hours | n/a | 167 | 100.00 | 15,239 EUR | -4,956 |
| DAX 40 | 15 min | n/a | 73 | 100.00 | 14,203 EUR | -5,814 |
| Nikkei 225 | Daily | n/a | 62 | 100.00 | 14,096 USD | -5,187 |
| Nasdaq 100 | 10 min | n/a | 62 | 100.00 | 13,243 EUR | -6,198 |
| Silver | 1 min | n/a | 34 | 100.00 | 12,963 USD | -11,929 |
| DAX 40 | 10 min | n/a | 62 | 100.00 | 12,961 EUR | -4,461 |
| Dow Jones | 3 min | n/a | 25 | 100.00 | 11,980 EUR | -8,156 |
| EUR/USD | 3 min | n/a | 10 | 100.00 | 11,387 USD | -6,001 |
| Nasdaq 100 | 5 min | n/a | 48 | 100.00 | 11,195 EUR | -5,875 |
| DAX 40 | 5 min | n/a | 51 | 100.00 | 10,929 EUR | -3,633 |
| EUR/USD | 5 min | n/a | 9 | 100.00 | 10,300 USD | -10,279 |
| Dow Jones | 1 min | n/a | 20 | 100.00 | 9,781 EUR | -3,056 |
| Dow Jones | 2 min | n/a | 20 | 100.00 | 9,755 EUR | -5,676 |
| FTSE 100 | 4 hours | n/a | 126 | 100.00 | 9,243 EUR | -2,931 |
| DAX 40 | Daily | n/a | 106 | 100.00 | 9,093 EUR | -4,389 |
| Brent Crude | 1 hour | n/a | 117 | 100.00 | 8,715 EUR | -6,219 |
| Nasdaq 100 | 3 min | n/a | 32 | 100.00 | 7,864 EUR | -5,852 |
| US Crude Oil | 15 min | n/a | 89 | 100.00 | 7,821 EUR | -5,972 |
| Brent Crude | 15 min | n/a | 86 | 100.00 | 7,803 EUR | -6,056 |
| DAX 40 | 3 min | n/a | 33 | 100.00 | 7,572 EUR | -3,630 |
| FTSE 100 | Daily | n/a | 131 | 100.00 | 7,381 EUR | -2,156 |
| Brent Crude | 30 min | n/a | 88 | 100.00 | 7,221 EUR | -6,221 |
| Brent Crude | 10 min | n/a | 83 | 100.00 | 7,015 EUR | -4,520 |
| Brent Crude | 4 hours | n/a | 92 | 100.00 | 6,803 EUR | -6,153 |
| US Crude Oil | 10 min | n/a | 72 | 100.00 | 6,479 EUR | -4,711 |
| FTSE 100 | 1 hour | n/a | 81 | 100.00 | 5,798 EUR | -2,969 |
| FTSE 100 | 30 min | n/a | 77 | 100.00 | 5,654 EUR | -2,969 |
| Nasdaq 100 | Daily | n/a | 95 | 100.00 | 5,558 EUR | -2,380 |
| DAX 40 | 1 min | n/a | 22 | 100.00 | 5,241 EUR | -1,484 |
| Nasdaq 100 | 2 min | n/a | 20 | 100.00 | 5,204 EUR | -3,756 |
| S&P 500 | 15 min | n/a | 105 | 100.00 | 5,057 EUR | -1,316 |
| Nasdaq 100 | 1 min | n/a | 19 | 100.00 | 4,941 EUR | -3,760 |
| S&P 500 | 4 hours | n/a | 113 | 100.00 | 3,976 EUR | -1,099 |
| FTSE 100 | 10 min | n/a | 43 | 100.00 | 3,683 EUR | -1,320 |
| US Crude Oil | 5 min | n/a | 36 | 100.00 | 3,193 EUR | -3,071 |
| S&P 500 | 10 min | n/a | 56 | 100.00 | 3,184 EUR | -1,323 |
| FTSE 100 | 15 min | n/a | 34 | 100.00 | 3,035 EUR | -2,888 |
| FTSE 100 | 5 min | n/a | 31 | 100.00 | 2,836 EUR | -1,320 |
| S&P 500 | 5 min | n/a | 42 | 100.00 | 2,566 EUR | -1,236 |
| Gold | 10 min | n/a | 80 | 100.00 | 2,433 EUR | -1,417 |
| Gold | 15 min | n/a | 91 | 100.00 | 2,320 EUR | -1,419 |
| Gold | 1 hour | n/a | 116 | 100.00 | 2,279 EUR | -1,075 |
| Gold | 5 min | n/a | 68 | 100.00 | 2,273 EUR | -1,448 |
| Gold | 30 min | n/a | 93 | 100.00 | 2,148 EUR | -1,076 |
| Gold | 4 hours | n/a | 122 | 100.00 | 2,091 EUR | -1,065 |
| FTSE 100 | 3 min | n/a | 21 | 100.00 | 2,030 EUR | -1,372 |
| Gold | 3 min | n/a | 52 | 100.00 | 1,972 EUR | -1,457 |
| S&P 500 | Daily | n/a | 105 | 100.00 | 1,781 EUR | -725 |
| S&P 500 | 3 min | n/a | 25 | 100.00 | 1,680 EUR | -1,338 |
| FTSE 100 | 1 min | n/a | 15 | 100.00 | 1,540 EUR | -524 |
| FTSE 100 | 2 min | n/a | 13 | 100.00 | 1,312 EUR | -1,195 |
| S&P 500 | 2 min | n/a | 17 | 100.00 | 1,188 EUR | -699 |
| GBP/USD | 3 min | n/a | 8 | 100.00 | 1,048 USD | -776 |
| S&P 500 | 1 min | n/a | 11 | 100.00 | 783 EUR | -532 |
| Gold | Daily | n/a | 45 | 100.00 | 672 EUR | -645 |
| GBP/USD | 1 min | n/a | 4 | 100.00 | 535 USD | -509 |
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.
// ============================================================ // Monday Dip Buy // ProRealAlgos Strategy Library | prorealalgos.com // Type: Mean reversion // Direction: Long only // Timeframe tested: 4 hours // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade tradeDay = 1 // day of week allowed for entries (1 = Monday) fastPeriod = 1 // fast EMA length midPeriod = 2 // EMA the fast one must cross above trendPeriod = 50 // EMA the fast one must still be below takeProfitPct = 1 // profit target, percent of entry price // --- Indicators --- fastMA = ExponentialAverage[fastPeriod](close) midMA = ExponentialAverage[midPeriod](close) trendMA = ExponentialAverage[trendPeriod](close) isTradeDay = OpenDayOfWeek = tradeDay
11 more lines: the entry and exit rules.
Read this first
Questions
Yes, it needs only an entry rule and a percent target. Without a stop, decide your own maximum loss before going live.
It was tested widely, including Nikkei 225, Nasdaq 100, DAX 40 and S&P 500. Nasdaq 100 30 minutes made EUR 25,358.9 and DAX 40 4 hours EUR 17,078.7, all with 100.0% win rates.
The best run had a USD 8,960.2 drawdown with 1 contract. Nasdaq 100 30 minutes dropped EUR 6,181.6, so keep a buffer for open losses that run longer.
On 4 hour bars there are only a few Monday bars per week, which keeps entries to real dips. The Nikkei 225 run made 146 trades.
Related
The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.