Re: Renko for MT5?

2
ASki wrote: Tue May 26, 2026 1:58 am I'm in search of an indicator similar to omniabar no wick renko from OVO.CZ, for MT5. I can't find anything similar where I can trade from my EA added to the offline chart. Any suggestions?
Ask AI iif you can't find what you need
These users thanked the author ionone for the post:
ASki
Scalping the Century TimeFrame since 1999

Re: Renko for MT5?

3
Hi everyone,

I'd like to share my RenkoPipelineInd, a free MT5 indicator I built as the visual/backtesting companion to a Renko-based EA I'm developing. It's an overlay indicator that reconstructs a Renko brick stream internally from price and runs a configurable signal pipeline on top of it.


Most Renko tools on the market use a fixed brick size in points or pips. That works fine until you switch symbols: a brick that makes sense on EURUSD is either meaningless (too small, pure noise) or absurd (too large, no signals at all) on Gold, on an index, or on a crypto pair. Every time you change instrument you're back to guessing a new brick size from scratch, usually by trial and error on the chart.

The idea here was to stop treating brick size as a fixed number and instead treat it as a fraction of the instrument's own volatility. That's the whole starting point of this project.

How the box (brick) is built:
The brick size is not an input in points — it's derived:
Brick size = ATR(D1, 14) × k
ATR is calculated with a proper Wilder recursive implementation on the daily timeframe (configurable), read directly from historical rates — no iATR handle dependency.
k is a small multiplier (default 0.05, so roughly 1/k = ~20 bricks per day's average range). This is the only "scale" parameter you really need to touch between instruments, and it's dimensionless — a k of 0.05 behaves similarly on Gold, on Nasdaq, or on a FX pair, which a fixed point value never does.
The raw ATR-based size is then rounded to the nearest tick multiple, optionally clamped between a min/max in points, and forced to stay above a multiple of the current spread (so the brick can never collapse to something smaller than the cost of trading it).

Once the target size is known, bricks are built with the classic two-brick-reversal rule: a continuation needs price to move one full brick in the same direction from the last close; a reversal needs a two-brick move in the opposite direction, with the first reversal brick opening from the correct side. This is the same logic used by traditional tick-based Renko builders, just fed with a size that adapts to the instrument.

Daily rebase, with hysteresis

Since ATR moves every day, the brick size is recalculated once per day (or on the timeframe you choose for the ATR — daily by default). But it does not rebuild the whole Renko stream every time the ATR ticks slightly — that would make the series incoherent and the indicators built on top of it (see below) meaningless, because you'd be mixing bricks of different "units" in the same series.

Instead: a rebase only happens if the new ATR-based size differs from the current brick by more than a hysteresis threshold (default 15%).
If a rebase is due, it's deferred while a virtual trade is open, and only applied once flat — so an open position always has a stable, known brick size behind its stop/target logic.
When a rebase does happen, the whole ADX/Bollinger state is reset and re-warmed from historical M1 data before the stream goes live again.

This solves the "brick size varies by orders of magnitude between instruments" problem without turning the Renko series into a moving target intraday.

The signal pipeline is modular, not hardcoded: instead of hardcoding "ADX cross" or "Bollinger breakout" as the one strategy, I split the logic into independent modules, each of which can be set to one of three roles:

Off — module ignored
Filter — must agree with the signal direction, but never fires on its own
Trigger — actually generates the entry event

The available modules are:

Run — N consecutive bricks in the same direction (the simplest Renko momentum signal)
ADX/DI (computed on the Renko brick series, Wilder-style, not on time bars) — two polarities:
Trend mode: ADX above a threshold + minimum +DI/−DI separation + DI direction agreeing with brick direction
Range mode: ADX below a maximum (useful when pairing with mean-reversion modules)
Bollinger Breakout — brick closes outside the band, in the direction of the band break
Bollinger Re-entry — price re-enters the bands from outside (mean reversion)
Bollinger Midline Cross — brick crosses the moving average of the bands (used as a trigger, or as a directional bias filter when set to Filter)
Bollinger Width filter — blocks entries unless the band width (in bricks) is below a max — a simple squeeze filter

The Bollinger bands themselves are calculated causally on completed bricks only (the forming brick is never included in its own band calculation, so there's no repainting of the bands).

You can combine trigger modules with OR logic (any one firing is enough) or AND logic (all active triggers must agree), and any number of filter modules must all pass before an entry is taken. A few pre-built presets are included for convenience (ADX-Trend, Breakout+ADX, Squeeze-Breakout, Re-entry+Range-ADX, Midline+ADX), but the Custom option lets you build your own stack from scratch.

Most important parameters at a glance

InpATRTimeframe / InpATRPeriod / InpBrickATRMult — the three inputs that define brick size (D1 / 14 / 0.05 by default)
InpRebaseHysteresisPct — how much ATR has to move before the brick resizes (default 15%)
InpPreset / InpTriggerLogic — which combination of modules is active and how triggers combine
InpRunBricks, InpADXThreshold, InpMinDISeparation, InpBBPeriod, InpBBDeviation, InpBBWidthMaxBricks — the module-specific thresholds
Nine independent exit rules (Renko reversal, N-bricks-against stop, brick trailing, DI flip, Bollinger midline target/stop, opposite-signal exit, ADX fade, stagnation timeout, max holding time) — all optional and combinable, so you're not limited to a fixed SL/TP if you don't want to be
Optional SL/TP expressed in bricks, not points — again, so the same setting is meaningful across instruments


The Renko bricks themselves, drawn as colored rectangles (up/down) behind the candles, so you can see exactly how price is being segmented in real time
A dotted line tracking the last completed brick's close level
The Bollinger bands, stepped on the brick series
Long/short entry arrows and exit markers (colored by win/loss) for every signal the pipeline would have generated
A line connecting each virtual trade's entry to its exit, labeled with the exit reason and the P/L expressed in bricks (e.g. RenkoReversal +1.8b) — I find reasoning in bricks much more intuitive than in raw price when you're evaluating whether a strategy makes sense on a given instrument
A rebase marker every time the brick size changes, so you can see exactly when and why the scale shifted
An info panel summarizing current brick size, ATR, active modules, active exits, and a running count of virtual trades

Everything is rebuilt from M1 history on load (configurable lookback in days) and then updated live from closing M1 bars, so what you see historically is a faithful walk-forward simulation, not a repainted end-of-run picture — the pipeline decisions are made exactly as they would have been made bar by bar.


The modular design is deliberate because Renko + these modules can express a few genuinely different trading styles depending on which pieces you turn on:
Trend-following breakout: Run + ADX-Trend as filter, or Bollinger Breakout as trigger with ADX confirming — designed for trending, directional instruments where you want to ride N consecutive bricks in one direction
Mean reversion: Bollinger Re-entry as trigger with ADX in Range mode as filter — designed for choppier conditions where price oscillates around a fair-value band
Volatility expansion / squeeze breakout: Bollinger Breakout as trigger with the Width filter active — waits for the bands to compress before allowing a breakout entry, filtering out breakouts that happen when volatility is already expanded
Pure momentum / scalping: Run alone as trigger with tight exits (short reversal count, brick trailing) — closest to a "pure Renko" system with the fewest confirming filters

Because every module can be independently toggled and the exits are fully separable from the entry logic, you're not locked into one style — the same indicator lets you test a trend approach on Gold and a mean-reversion approach on a range-bound FX cross without touching the underlying Renko engine at all.


Since bricks aren't time-based, the underlying engine works as a state machine driven by M1 closes rather than a per-bar buffer calculation — this is intentional and necessary for Renko, but it does mean history is rebuilt in one pass rather than bar-by-bar, so very long lookbacks can take a moment to load.
Please be aware that on TF > M15 you would need a lot more data, probably even more than you history allow, so the results could be less than accetable...
My professional trading tools:
Mql5 "alexf81"