Home/Guides/Renko and range bars

Chart types

Renko, range and tick bars break volatility readings.

Not loudly. The number stays stable and plausible, which is exactly the problem — nothing on the chart tells you the measurement has stopped meaning anything.

Guide About 5 minutes Updated 3 August 2026

What these bar types have in common

A five-minute bar closes when five minutes have passed, whatever the market did in them. Renko, range and tick bars close on a different condition entirely:

  • Renko prints a new brick when price has moved a fixed distance from the last one. Brick height is a setting.
  • Range bars close once the bar has covered a fixed range. Bar height is a setting.
  • Tick bars close after a fixed number of trades. Bar height varies, but the bar's duration is whatever it took to reach that trade count.

In all three cases, one bar is not a fixed amount of time. That single fact is what undermines any indicator that treats bar count as a proxy for elapsed time — which includes every average true range calculation run on the chart's own bars.

Why ATR stops working

ATR averages the true range of recent bars. On a renko chart, the true range of a brick is, by construction, close to the brick size you chose. On a range chart it is the range setting you chose. Average a series of near-identical numbers and you get that number back.

So the ATR reading on a renko chart is not measuring the market. It is measuring your brick setting. Volatility could double and the reading would barely move — the market would simply produce bricks faster.

The reason it goes unnoticed. A broken ATR here does not spike, flatline at zero, or throw an error. It sits at a stable, believable value forever. Anything downstream that divides by it inherits the fault silently, and every threshold expressed in R becomes a threshold expressed in fractions of a number you picked out of the bar-type dialog.

Tick bars are a milder version of the same problem. Their ranges do vary, so the ATR is not pinned to a constant — but a fixed number of trades is a very different amount of time at the open than it is at midday, so the average is taken over a lookback that stretches and contracts unpredictably.

What still works, and what does not

MeasurementOn renko / range bars
Moving averages of price Fine. They average closes; the closes are real prices.
Separation between averages, in points Fine as a raw distance.
ATR from the chart's own bars Broken. Reports your bar setting.
Anything normalised by that ATR Broken. Inherits the constant denominator.
"Distance travelled over N bars" Unreliable — N bars is not a consistent span of time.

The fix: take volatility from a time-based series

NinjaTrader 8 lets an indicator subscribe to more than one data series at once. The standard solution is to leave the display on your renko or range chart and compute the volatility reading from a separate, time-based series added behind the scenes — five minutes is the usual choice, being short enough to react and long enough to be stable.

The chart looks identical. The difference is that the denominator in every normalised reading now comes from bars that represent equal spans of time, so it responds to the market instead of to your bar settings.

In FlowRegime

Half of the problem is designed out and half of it is handed to you.

The denominator is safe: FlowRegime takes its ATR from a separate five-minute series — AtrPeriod and AtrMinutes in the Regime authority group — and never from the primary chart, precisely because the primary chart may be renko or range. You do not have to switch that on.

The numerator still needs you. BarAtrFraction is the fraction of that ATR the indicator treats as a normal bar's displacement, and on a renko chart a "normal" brick is whatever brick size you chose. It is the one setting the manual tells you to set before anything else, and the defaults are built around NinZaRenko 24/12 on NQ:

Instrument / chartBarAtrFraction
NQ · NinZaRenko 16/80.20 – 0.30
NQ · NinZaRenko 24/120.30 – 0.40 (default)
ES · 52-range0.25 – 0.35
NQ or ES · 5-minute0.85 – 1.00

The jump between a renko row and a 5-minute row is the whole point of this guide expressed as a number. A time bar is an ATR bar by definition, so the fraction sits near 1.00; a brick is not, so it does not.

To check you got it right, watch the Efficiency plot on an ordinary bar. It should sit around 0.6 to 1.0 rather than pinning at 0 or 2. If everything reads as absorption the value is too high — displacement always looks small against it. If everything reads as trend, it is too low.

One limitation worth knowing before you build on it: renko and range charts are execution displays. Backtest fills taken on them are optimistically biased, so validate in Market Replay rather than trusting a backtest run on bricks.

In the bundled Traffic Lights

There it is a choice rather than the default. Tick Use 5-minute ATR in the volatility group; the indicator adds the five-minute series itself, and the slope and separation figures on the dashboard switch to being measured against it. Nothing else about the configuration changes.

Do re-check your thresholds after switching. The denominator changes scale, so an R value that read 0.3 before may read quite differently afterwards — the new number is the meaningful one, but it is a new number.

Practical notes

  • Your data connection has to supply it. The secondary series needs historical five-minute data for the instrument. If your feed is limited, load fewer days rather than expecting the indicator to fill the gap.
  • Expect a slightly longer chart load. Two series means two requests. It is noticeable on the first load and not afterwards.
  • Renko variants are not all the same. NinjaTrader ships several renko-style bar types, and some smooth or synthesise the final brick as it forms. Any indicator reading the current bar reads that synthetic value, and it can change before the brick completes.
  • Be careful backtesting on these bar types. Renko and range charts hide intrabar path — the sequence of prices that produced the brick is not recoverable from the brick. Backtests run on them routinely look far better than the same logic performs live. Use tick-replay or a time-based series if you are testing anything that depends on order of events.

The short version

If your chart's bars close on price or activity rather than the clock, do not let anything measure volatility from those bars. Point the measurement at a time-based series and leave the display where you like it. It is a one-checkbox difference, and it is the difference between a threshold that tracks the market and one that tracks a setting you chose months ago.

Try it on your renko charts.

Seven days of the full indicator, no card charged and nothing to cancel. The five-minute ATR option is a checkbox, not an upgrade.