Buys 1 contract when both stochastic lines stay below 10 for at least 5 bars and then rise to 10 or above. Closes the long after both lines stay above 90 for at least 5 bars and then drop to 90 or below.
Best run of 46. EUR/USD, 1 min, spread 1, from run sweeps:2026-10-04-EURUSD-1m-opt.tsv:2.
| Period | Up to 2026-10-04 |
| Instrument | EUR/USD, 1 minute |
| Spread | 1 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 |
|---|---|---|---|---|---|---|
| EUR/USDBest run | 1 min | n/a | 249 | 55.82 | 3,053 USD | -3,019 |
| USD/JPY | 4 hours | n/a | 17 | 70.59 | 405,210 USD | -133,330 |
| USD/JPY | 15 min | n/a | 97 | 72.16 | 331,230 USD | -149,330 |
| USD/JPY | 1 hour | n/a | 51 | 64.71 | 282,830 USD | -155,900 |
| Nikkei 225 | 4 hours | n/a | 18 | 94.44 | 18,241 USD | -8,226 |
| Nikkei 225 | 15 min | n/a | 160 | 61.25 | 17,106 USD | -8,998 |
| Nikkei 225 | 30 min | n/a | 136 | 61.03 | 17,104 USD | -12,754 |
| Nikkei 225 | 10 min | n/a | 164 | 62.80 | 13,518 USD | -9,181 |
| Nikkei 225 | 1 min | n/a | 171 | 58.48 | 11,990 USD | -10,608 |
| DAX 40 | 30 min | n/a | 118 | 66.10 | 9,817 EUR | -4,409 |
| EUR/USD | 15 min | n/a | 129 | 55.04 | 9,486 USD | -9,411 |
| Silver | Daily | n/a | 7 | 100.00 | 8,720 USD | -5,040 |
| Dow Jones | 5 min | n/a | 138 | 62.32 | 8,687 EUR | -4,027 |
| Nasdaq 100 | 1 hour | n/a | 109 | 68.81 | 8,332 EUR | -3,235 |
| Nasdaq 100 | 5 min | n/a | 117 | 61.54 | 7,628 EUR | -2,386 |
| Brent Crude | 30 min | n/a | 101 | 64.36 | 6,212 EUR | -2,993 |
| DAX 40 | 4 hours | n/a | 21 | 71.43 | 5,825 EUR | -3,229 |
| Nasdaq 100 | 15 min | n/a | 117 | 57.26 | 5,202 EUR | -4,074 |
| FTSE 100 | 4 hours | n/a | 23 | 82.61 | 4,283 EUR | -1,320 |
| DAX 40 | 1 min | n/a | 141 | 63.12 | 3,964 EUR | -1,161 |
| Nasdaq 100 | 2 min | n/a | 129 | 64.34 | 3,961 EUR | -2,639 |
| Nasdaq 100 | 1 min | n/a | 137 | 62.77 | 3,872 EUR | -1,542 |
| Nasdaq 100 | 4 hours | n/a | 25 | 72.00 | 3,848 EUR | -3,036 |
| US Crude Oil | 2 min | n/a | 92 | 58.70 | 3,791 EUR | -1,373 |
| Dow Jones | 1 min | n/a | 123 | 61.79 | 3,745 EUR | -2,631 |
| Brent Crude | 2 min | n/a | 140 | 50.00 | 3,614 EUR | -1,648 |
| Dow Jones | Daily | n/a | 4 | 75.00 | 3,527 EUR | -3,349 |
| DAX 40 | Daily | n/a | 30 | 63.33 | 2,944 EUR | -1,700 |
| S&P 500 | 1 hour | n/a | 109 | 69.72 | 2,791 EUR | -849 |
| DAX 40 | 2 min | n/a | 160 | 63.12 | 2,637 EUR | -2,559 |
| S&P 500 | 15 min | n/a | 138 | 66.67 | 2,359 EUR | -1,072 |
| S&P 500 | 4 hours | n/a | 21 | 76.19 | 2,023 EUR | -821 |
| S&P 500 | 5 min | n/a | 127 | 67.72 | 1,910 EUR | -526 |
| Gold | 30 min | n/a | 53 | 66.04 | 1,632 EUR | -529 |
| Gold | 4 hours | n/a | 11 | 90.91 | 1,503 EUR | -435 |
| S&P 500 | 10 min | n/a | 152 | 57.89 | 1,431 EUR | -925 |
| S&P 500 | 30 min | n/a | 122 | 69.67 | 1,367 EUR | -1,090 |
| Gold | 5 min | n/a | 87 | 67.82 | 1,357 EUR | -287 |
| S&P 500 | 3 min | n/a | 120 | 61.67 | 1,140 EUR | -498 |
| Gold | 1 hour | n/a | 39 | 66.67 | 1,022 EUR | -482 |
| Gold | 15 min | n/a | 61 | 55.74 | 791 EUR | -489 |
| S&P 500 | 2 min | n/a | 113 | 55.75 | 732 EUR | -405 |
| GBP/USD | 3 min | n/a | 194 | 58.25 | 714 USD | -501 |
| Gold | Daily | n/a | 5 | 100.00 | 694 EUR | -234 |
| S&P 500 | Daily | n/a | 4 | 100.00 | 406 EUR | -114 |
| Nasdaq 100 | Daily | n/a | 1 | 100.00 | 143 EUR | -62.80 |
Charts
Top 10 of 46 runs. The full list is in the table above.
The code
// ============================================================== // Stochastic Oversold Recovery Long // ProRealAlgos Strategy Library | prorealalgos.com // Type: Mean reversion // Direction: Long only // Timeframe tested: 1 minute // ============================================================== DEFPARAM CumulateOrders = false ONCE inlong = 0 ONCE overbuy = 0 ONCE oversell = 0 myRange = Highest[9](high) - Lowest[9](low)
36 more lines: the entry and exit rules.
Setup
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 46 market and timeframe combinations. The best run by trade count was EUR/USD, 1 minute, with 249 trades.
The best run had a maximum drawdown of 3,019 USD at the tested position size, against a net result of 3,053 USD.
It only takes long trades.
Related
The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.