A long-only mean reversion system that buys after a volatility spike when price rises above the prior bar's high. It exits when the %K line crosses above %D with %K above 80.
Best run of 25. Nasdaq 100, 4 hours, spread 3, from run pf:2026-10-12-NAS100-4h.tsv:3.
| Period | Up to 2026-10-12 |
| Instrument | Nasdaq 100, 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-12 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| Nasdaq 100Best run | 4 hours | 1.99 | 275 | 73.09 | 16,912 EUR | -3,268 |
| S&P 500 | 4 hours | 1.95 | 292 | 75.00 | 4,610 EUR | -1,064 |
| USD/JPY | 4 hours | n/a | 283 | 68.55 | 529,800 USD | -375,740 |
| Nikkei 225 | 4 hours | n/a | 206 | 73.79 | 43,107 USD | -11,561 |
| Nikkei 225 | 1 hour | n/a | 758 | 64.51 | 30,310 USD | -10,766 |
| Dow Jones | Daily | n/a | 140 | 78.57 | 28,007 EUR | -8,615 |
| Dow Jones | 1 hour | n/a | 300 | 69.33 | 17,946 EUR | -9,388 |
| Nasdaq 100 | 1 hour | n/a | 937 | 67.56 | 17,358 EUR | -5,955 |
| DAX 40 | 1 hour | n/a | 875 | 65.71 | 16,115 EUR | -4,375 |
| Dow Jones | 30 min | n/a | 610 | 65.08 | 15,786 EUR | -6,049 |
| Nikkei 225 | 15 min | n/a | 1,532 | 63.25 | 15,506 USD | -9,450 |
| DAX 40 | 4 hours | n/a | 238 | 66.39 | 13,466 EUR | -5,434 |
| Dow Jones | 10 min | n/a | 1,470 | 64.90 | 13,361 EUR | -6,500 |
| Silver | Daily | n/a | 90 | 60.00 | 12,931 USD | -11,663 |
| DAX 40 | Daily | n/a | 138 | 71.74 | 7,151 EUR | -4,677 |
| FTSE 100 | Daily | n/a | 116 | 76.72 | 6,869 EUR | -2,651 |
| Nasdaq 100 | 10 min | n/a | 1,516 | 64.97 | 5,890 EUR | -4,829 |
| DAX 40 | 10 min | n/a | 1,482 | 65.45 | 4,367 EUR | -4,037 |
| Nasdaq 100 | Daily | n/a | 93 | 66.67 | 3,735 EUR | -3,611 |
| S&P 500 | 1 hour | n/a | 948 | 67.62 | 3,357 EUR | -1,278 |
| S&P 500 | 30 min | n/a | 1,565 | 63.19 | 2,219 EUR | -946 |
| Gold | 4 hours | n/a | 245 | 69.80 | 2,130 EUR | -714 |
| S&P 500 | 15 min | n/a | 1,557 | 65.70 | 2,125 EUR | -937 |
| S&P 500 | Daily | n/a | 136 | 75.74 | 2,124 EUR | -922 |
| Gold | Daily | n/a | 100 | 72.00 | 1,558 EUR | -856 |
Charts
Top 10 of 25 runs. The full list is in the table above.
Above 1.0 made money, below 1.0 lost money.
The code
// ============================================================== // Volatility Spike Entry Stochastic Exit // ProRealAlgos Strategy Library | prorealalgos.com // Type: Mean reversion // Direction: Long only // Timeframe tested: 4 hours // ============================================================== DEFPARAM CumulateOrders = false ONCE sincebad = 1000 hc = highest[22](close) wvf = (hc - low) / hc * 100 sdev = 2 * STD[20](wvf) mid = Average[20](wvf) upper = mid + sdev rangehigh = highest[50](wvf) * 0.85 ll = lowest[14](low) hh = highest[14](high)
26 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 25 market and timeframe combinations. The best run was Nasdaq 100, 4 hours, with a profit factor of 1.99 over 275 trades.
The best run had a maximum drawdown of 3,268 EUR at the tested position size, against a net result of 16,912 EUR.
It only takes long trades.
Related
Copy trading on US indices is available to ProRealAlgos members as spots open.