Joshua Dunnink ยท Trading Systems

← Rubberband

Rubberband MT5 -- User Manual

AUDCAD M15 adaptive mean-reversion grid. Version 1.42. Backtest figures only -- past performance does not guarantee future results.

1. Install

  1. Copy RUBBERBAND.ex5 to MQL5/Experts/ (or attach from the Navigator after a Market install).
  2. Open one AUDCAD chart on the M15 timeframe.
  3. Attach the EA. Enable Algo Trading. A hedging account is required.
  4. Allow it to run 24/5 -- a VPS is recommended.

It is facade-complete: with no preset it runs the LOW profile out of the box (the default since v1.39; MEDIUM was the default up to v1.38 -- see section 2b), and the Friday weekend control (section 4) is already on by default.

2. Pick your risk (one input: InpRiskProfile)

Backtest, MetaTrader 5 Strategy Tester, OANDA AUDCAD.pro real ticks, 2022-01 to 2026-06 (measured before the Friday weekend cutoff described in section 4 existed).

Profile Balance-risk Recommended account Backtest net (4.5 yr) Floating DD
LOW (default since 1.39) ~1.5 % $500 +41 % ~10 %
MEDIUM ~3 % $1,000 +71 % ~18 %
HIGH ~4.5 % $2,000 +131 % ~24 %
HOT ~6 % $3,000 +232 % ~22 %

Floating drawdown is disclosed here as safety information: it is how far an open basket can go underwater before it reverts, not a figure to trade toward.

2b. Why the LOW tier ships as the default

On OANDA's AUDCAD real-tick backtest from January 2020 to September 2026 (per 0.01 lot, account equity marked at the worst M5 price), the LOW tier grew to +320% and floated at most 13.1% along the way, with every basket closing inside its own target. An earlier default tier ran a wider account breaker on the same history and let baskets float deeper before closing; LOW's tighter budget is what keeps the same kind of basket inside the account's tolerance instead. Single-shot designs without the averaging basket were tested on the same history and did not reproduce Rubberband's edge -- the snap-back the averaging waits for is the mechanism, not an add-on. So this build makes the survivable tier the default. MEDIUM, HIGH and HOT are still one click away in the same dropdown, at the larger floating drawdown shown in the table above. Backtest figures only.

3. Confidence lot-size boosting (one simple switch)

Set InpConfidenceLots = true to turn on confidence-based lot boosting on any risk tier. It enlarges the lot only on the very-highest-confidence entries (calm-market extreme reversions, ~76 % revert in one leg) and leaves everything else flat. Real-tick backtest (OANDA AUDCAD.pro M15, 2022-26, LOW tier): OFF +78 % at 11.4 % DD -> ON +92 % at 13.2 % DD -- +17 % return for under 2 pp more drawdown, still inside the 20 % survival limit. - InpConfidenceLots -- the switch (default false = drawdown-safest). - InpConfidenceMult -- boost size (default 3.0; keep <= 3). - InpConfidenceZThr -- how extreme a setup must be to count (default 2.0 fires regularly; 3.0 = only rare extremes). Preset: presets/RUBBERBAND_ConfidenceON.set. The boost is RANGE-only by design -- it never oversizes the trend/high-vol tail where deep-float baskets hide.

3b. Optional +TURBO profiles (high-risk / high-return)

Alternatively pick a +TURBO profile in the Risk-Profile dropdown (LOW/MEDIUM/HIGH/HOT +TURBO) -- same confidence boost, baked together with a hotter compounding tier. Backtest: MEDIUM+TURBO +89 % at ~15 % floating DD; HOT+TURBO +310 % at ~31 % floating DD (floating DD disclosed here as safety information -- use only with margin headroom). Presets: presets/RUBBERBAND_*_TURBO.set.

4. Friday and weekend control (InpFriNoNewHour, default 12, new in 1.41, on by default since 1.42)

InpFriNoNewHour is a server hour (0-23; 0 = off). From that hour on a Friday, the EA opens no new basket; a basket that is already open keeps adding to itself and exiting exactly as it would on any other day -- only the seed is gated. The compiled default is 12 (noon, server time): the EA will not start a fresh floating position going into the weekend gap.

This is independent of InpPropFridayCloseHour (default 0 = off), a separate, older input that -- if you turn it on -- flattens every open basket at a chosen Friday hour and blocks new trading until Monday. It stays off by default because forcing a still-open basket shut removes the chance it had to close on its own profit target; InpFriNoNewHour alone already keeps a new position from being opened into the weekend.

Set InpFriNoNewHour = 0 if you would rather the EA trade every Friday hour as earlier versions (1.40 and before) did. Preset files ship with the compiled default (12) unless a preset is explicitly named otherwise.

5. Understand the drawdown

This is a recovery-grid: it averages a small equal-lot basket against an over-extension and closes the basket when price reverts. Two drawdown numbers: - Realised (closed balance) is small (2-8 %) -- baskets close in profit. - Floating is the real risk: how far an open basket goes underwater before reverting (10-24 % by tier, ~31 % HOT+TURBO). Choose your profile by the floating drawdown you can tolerate, and keep margin headroom for it.

6. Safety built in

7. Requirements

Risk disclosure

Grid / averaging strategies can hold an open basket significantly underwater before it reverts, and an extreme, non-reverting market move can cause large losses. Trade only risk capital, respect the minimum account, and keep margin headroom for the floating drawdown of your chosen profile. Backtest results do not guarantee future performance.

Broker differences (v1.37 note)

Results differ across brokers for three reasons: (1) server timezone -- v1.37 auto-detects the server-to-UTC offset on live/demo charts (InpGmtAuto), so the session window stays aligned; (2) swap -- baskets can hold overnight and brokers charge different swap rates on AUDCAD; (3) spread/feed -- entry timing shifts slightly with the tick stream. Backtest your own broker's real ticks before going live, and prefer brokers with low AUDCAD spread and moderate swaps.

Backtest, MetaTrader 5 Strategy Tester, OANDA AUDCAD.pro real ticks, 2022-01 to 2026-06.

Streak sizing (v1.37, optional) and broker notes (v1.37)

InpStreakK (default off) multiplies size while recent closed trades are net-positive -- validated at K=2: +69% more net on the identical trade set, worst equity drawdown 18.3% (inside the 20% guideline). Load presets/RUBBERBAND_SESS_streak2.set. v1.37 auto-detects your broker's server-UTC offset live (InpGmtAuto) so the trading session stays aligned on any broker, and prints a risk warning when an aggressive profile is combined with a small balance.

Is it waiting, or is it broken? -- the regime monitor

This product earns in a particular market state and goes quiet outside it. That is disclosed above, but a disclosure without a number is not usable: meeting a flat stretch, you cannot tell whether the machine is waiting for its conditions or whether its edge has changed. This section gives you the one measurement that separates those, taken from this product's own record.

The state to watch is the daily Average True Range of the traded instrument, expressed as a percentile of its own trailing 250 days -- not a fixed number of dollars or pips, which goes stale as the instrument reprices. Most charting packages will plot ATR; the percentile is simply where today's ATR sits within the last year of its own values.

Measured on 53 months of real ticks (2022-01 to 2026-06). Good state: volatility percentile at or above 0.50, which is 57% of that record. In that state, every three-month window in this backtest record closed positive -- its worst three-month stretch still finished at +$3,739.

Tripwire -- while volatility is at or above 0.50, ANY losing three-month stretch is outside what this record contains.

That tripwire is deliberately marked optimistic, and here is why. 100% of the months in this record are positive. A record where every month closed positive almost certainly does not span a regime this product struggles in -- and independent testing of this strategy family on 2018-2021 data found it earned essentially nothing over that period. Treat the tripwire as a floor, not as a measured worst case, and treat a first losing quarter as new information rather than as a violation of an established bound.

What this cannot tell you. While the market is outside the good state, a temporary quiet period and a permanent change in behaviour look identical. The tripwire is the earliest point at which they separate, not an early warning. Nothing here is a guarantee; it is the historical extreme of a backtested record, and being beyond it is evidence rather than proof.