The system buys when close moves back above the lower Keltner band after the prior close was below it, and sells short on the mirror setup at the upper band. Stops sit at the outer band and targets at the opposite band.
Best run of 2. USD/JPY, Daily, spread 1, from run sweeps:2026-10-11-USDJPY-D-opt.tsv:150.
| Period | Up to 2026-10-11 |
| Instrument | USD/JPY, Daily |
| 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-11 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| USD/JPYBest run | Daily | n/a | 836 | 46.17 | 13,440 USD | -4,940 |
| Brent Crude | 4 hours | n/a | 769 | 45.51 | 4,822 EUR | -4,691 |
Charts
The code
// ============================================================== // Keltner Channel Rebound // ProRealAlgos Strategy Library | prorealalgos.com // Type: Mean reversion // Direction: Long & short // Timeframe tested: Daily // ============================================================== DEFPARAM CumulateOrders = false mid = ExponentialAverage[35](close) myTr = TR(close) rng = ExponentialAverage[35](myTr) up = mid + 1.5 * rng lo = mid - 1.5 * rng upsl = mid + 3 * rng losl = mid - 3 * rng
20 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 2 market and timeframe combinations. The best run by trade count was USD/JPY, Daily, with 836 trades.
The best run had a maximum drawdown of 4,940 USD at the tested position size, against a net result of 13,440 USD.
It trades both long and short.
Related
The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.