Buys when a 2-period rolling VWAP crosses under 0.97 times a 5-period rolling VWAP while the 5-period EMA of RSI(2) is below 30. Sells when the 2-period VWAP crosses over the 5-period VWAP.
Best run of 32. US Crude Oil, Daily, spread 3, from run sweeps:2026-10-11-CRUDE-D-opt.tsv:39.
| Period | Up to 2026-10-11 |
| Instrument | US Crude Oil, Daily |
| 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-11 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| US Crude OilBest run | Daily | n/a | 35 | 74.29 | 4,707 EUR | -1,195 |
| Silver | 10 min | n/a | 3 | 100.00 | 5,175 USD | -1,590 |
| Silver | 1 hour | n/a | 16 | 56.25 | 4,541 USD | -3,788 |
| Silver | 15 min | n/a | 3 | 100.00 | 4,178 USD | -1,945 |
| Silver | 5 min | n/a | 2 | 100.00 | 2,392 USD | -1,709 |
| Nasdaq 100 | Daily | n/a | 10 | 50.00 | 1,981 EUR | -1,731 |
| Dow Jones | 4 hours | n/a | 4 | 75.00 | 1,845 EUR | -1,463 |
| Brent Crude | 4 hours | n/a | 19 | 68.42 | 1,693 EUR | -788 |
| Nasdaq 100 | 4 hours | n/a | 6 | 83.33 | 1,658 EUR | -490 |
| Nikkei 225 | 4 hours | n/a | 2 | 100.00 | 1,020 USD | -180 |
| Brent Crude | 1 hour | n/a | 11 | 72.73 | 995 EUR | -360 |
| Nikkei 225 | 30 min | n/a | 2 | 100.00 | 985 USD | -27.50 |
| Dow Jones | 1 hour | n/a | 2 | 100.00 | 612 EUR | -103 |
| Nasdaq 100 | 1 hour | n/a | 3 | 100.00 | 514 EUR | -228 |
| Brent Crude | 30 min | n/a | 6 | 66.67 | 464 EUR | -312 |
| US Crude Oil | 5 min | n/a | 1 | 100.00 | 403 EUR | -4.50 |
| Brent Crude | 5 min | n/a | 1 | 100.00 | 381 EUR | -130 |
| Nikkei 225 | 1 hour | n/a | 1 | 100.00 | 363 USD | -62.40 |
| Dow Jones | 30 min | n/a | 3 | 66.67 | 356 EUR | -3.60 |
| S&P 500 | 4 hours | n/a | 7 | 71.43 | 349 EUR | -159 |
| Brent Crude | 1 min | n/a | 1 | 100.00 | 280 EUR | -1.20 |
| US Crude Oil | 2 min | n/a | 1 | 100.00 | 200 EUR | -3.30 |
| Gold | 30 min | n/a | 1 | 100.00 | 180 EUR | -25.50 |
| Gold | 15 min | n/a | 1 | 100.00 | 167 EUR | -1.10 |
| US Crude Oil | 1 min | n/a | 1 | 100.00 | 162 EUR | -0.00 |
| GBP/USD | 1 hour | n/a | 1 | 100.00 | 155 USD | -75.90 |
| Brent Crude | 15 min | n/a | 1 | 100.00 | 124 EUR | -82.50 |
| Nasdaq 100 | 30 min | n/a | 2 | 100.00 | 104 EUR | -46.80 |
| US Crude Oil | 10 min | n/a | 1 | 100.00 | 98.70 EUR | -41.20 |
| Gold | 1 hour | n/a | 2 | 100.00 | 55.50 EUR | -33.50 |
| DAX 40 | 1 hour | n/a | 1 | 100.00 | 51.50 EUR | -1.30 |
| S&P 500 | 30 min | n/a | 2 | 100.00 | 19.00 EUR | -17.50 |
Charts
Top 10 of 32 runs. The full list is in the table above.
The code
// ============================================================== // Rolling VWAP Reversion Long // ProRealAlgos Strategy Library | prorealalgos.com // Type: Mean reversion // Direction: Long only // Timeframe tested: Daily // ============================================================== DEFPARAM CumulateOrders = false ONCE smallvwap = 0 ONCE bigvwap = 0 tpv = TypicalPrice * volume vols = summation[2](volume) volb = summation[5](volume)
18 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 32 market and timeframe combinations. The best run by trade count was US Crude Oil, Daily, with 35 trades.
The best run had a maximum drawdown of 1,194 EUR at the tested position size, against a net result of 4,707 EUR.
It only takes long trades.
Related
The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.