TradingView chart comparisons

Renko vs Heikin Ashi: price bricks or smoothed time bars

Renko groups movement into price bricks; Heikin Ashi smooths OHLC values while keeping one bar per underlying time interval. Choose Renko to inspect movement against a price threshold, or Heikin Ashi to inspect a smoothed trend on a regular timeline. Both transform market data. Neither synthetic candle prices nor brick levels should be treated as executable quotes, and a cleaner chart does not establish a better trading strategy.

See the decision guide

What each chart preserves and removes

Start with the task, then select the display. A rule about elapsed minutes needs a time reference; a rule about crossing a fixed price distance needs a defined threshold. TradingView documents both construction methods in the sources below. The choices in this table are implications of those methods, not performance rankings.

QuestionRenkoHeikin Ashi
What creates a new observation?A sufficient move beyond the last brick.The next underlying time bar.
What do I configure?Brick method and size, price source, and source interval.Time interval; the standard HA formula has no brick size.
What is easier to inspect?Runs measured in price increments.Smoothed direction with regular time positions.
What becomes harder to see?Elapsed time and movement inside the sampling interval.Original opens, closes, and gaps.
What does a 20-bar indicator count?20 bricks, potentially spanning very different durations.20 transformed time bars.

A four-bar example with identical market inputs

These are hypothetical consecutive five-minute bars in price units. Seed the previous HA open and close at 100. For Renko, use close-only sampling, a fixed brick size of 2, and a preceding up brick from 98 to 100. This explicit starting state makes the calculation reproducible; a chart loaded with different earlier history can start elsewhere.

  • HA close = (O + H + L + C) / 4. HA open = (previous HA open + previous HA close) / 2. Thus bar 3 has HA close 405 / 4 = 101.25 and HA open (100.5 + 102.5) / 2 = 101.5. Its body turns down.
  • After the up brick closes at 102, the next up brick needs 104. A reversal down brick needs 98: two brick sizes below 102. Bar 3 closes at 100, so the latest completed Renko brick still points up when HA has already turned down.
  • HA high = max(standard high, HA open, HA close); HA low = min(standard low, HA open, HA close). Bar 4 therefore has an HA high of 101.375, above its actual high of 101. That synthetic level was not traded during this bar.
  • Bar 2 reaches a high of 104 but closes at 103. Close-only Renko does not retain that touch as a new completed up brick in this example. Switching the source to OHLC changes the experiment.
BarStandard O / H / L / CHA open / closeNew Renko brick
1100 / 103 / 99 / 102100 / 101Up: 100 to 102
2102 / 104 / 101 / 103100.5 / 102.5None
3103 / 103 / 99 / 100101.5 / 101.25None
4100 / 101 / 97 / 98101.375 / 99Down: 100 to 98

Brick size and smoothing create different kinds of delay

In the example, the first down HA body appears on bar 3 and the first down Renko brick on bar 4. That is a five-minute difference in this constructed sequence, not a general latency estimate. A rapid price move can cross several brick thresholds in one source interval; a quiet market may cross none for hours.

  • With a latest up-brick close of 102 and fixed size 2, the continuation and reversal thresholds are 104 and 98. With a latest up-brick close of 102 and size 4, they would be 106 and 94. This comparison fixes the endpoint deliberately; changing size on an actual chart can also rebuild the preceding bricks.
  • Traditional Renko uses an absolute price increment. ATR sizing derives the increment from volatility. Record the method as well as its input; an ATR length of 14 is not a 14-point brick.
  • HA can remain positive during a decline because its open depends on earlier HA values. In another price path it may change direction before a Renko reversal. Specify what counts as a signal before measuring delay.

Why the historical Renko picture can change

TradingView approximates Renko from interval data rather than a complete historical tick path. Its Renko troubleshooting page explains that deeper history can use coarser intervals, and the boundary between coarse and fine history can move. Reconstructed bricks can therefore change even when the selected box size stays fixed.

  • Projection bricks can change before the source interval closes, and their realtime history is lost on reload. A screenshot of a projected reversal is not proof of a completed historical signal.
  • Consider an interval with O=100, H=104, L=96, C=102. The path 100 → 104 → 96 → 102 and the path 100 → 96 → 104 → 102 share the same OHLC but visit the extremes in opposite order. Those four prices cannot recover the tick sequence or establish which threshold was crossed first.
  • For a reproducibility check, save the symbol, exchange, session, source interval, Close/OHLC setting, brick method, input value, date range, and observation time. Compare the recorded closed-bar values after reload. Treat discrepancies as data or reconstruction questions before judging a strategy.

Inspect both feeds on a standard TradingView chart

This Pine v6 indicator plots standard, HA, and Renko closes on the same time axis. It uses the same regular-session ticker for both transformations and rejects non-standard host charts. The two direction fields in the Data Window describe the latest sampled bodies: +1 is up, -1 is down, and 0 is equal. They are observations, not order instructions.

  • gaps_off carries the last available value through missing slots. Read observations within the regular session; a repeated Renko value does not mean a new brick appeared on every chart bar. Several bricks may also map to one host interval.
  • lookahead_off avoids requesting future historical values. Waiting for the host candle close limits intrabar changes, but neither setting removes Renko reconstruction risk or restores missing ticks.
  • Keep this as a value comparison first. If you add orders later, use standard-chart prices, specify execution timing and costs, and inspect individual fills. A sampled brick direction cannot tell you the attainable price at the instant a historical brick threshold was crossed.
Run on standard time-based candles with regular session selected. Choose a positive brick size appropriate to the instrument tick size. This indicator places no orders and does not reproduce the seeded four-bar example unless its input history matches.pine
//@version=6
indicator("Renko and HA feed comparison", overlay = true)
if not chart.is_standard
    runtime.error("Use a standard time-based chart.")
box = input.float(2.0, "Traditional brick size (price units)", minval = 0.000001)
base = ticker.new(syminfo.prefix, syminfo.ticker, session.regular)
ha = ticker.heikinashi(base)
renko = ticker.renko(base, "Traditional", box, request_wicks = false, source = "Close")
realClose = request.security(base, timeframe.period, close, gaps = barmerge.gaps_off, lookahead = barmerge.lookahead_off)
[haOpen, haClose] = request.security(ha, timeframe.period, [open, close], gaps = barmerge.gaps_off, lookahead = barmerge.lookahead_off)
[renkoOpen, renkoClose] = request.security(renko, timeframe.period, [open, close], gaps = barmerge.gaps_off, lookahead = barmerge.lookahead_off)
plot(realClose, "Standard close", color = color.gray, linewidth = 2)
plot(haClose, "HA close (synthetic)", color = color.blue)
plot(renkoClose, "Renko close (synthetic)", color = color.orange, style = plot.style_stepline)
plot(barstate.isconfirmed ? math.sign(haClose - haOpen) : na, "HA sampled direction", display = display.data_window)
plot(barstate.isconfirmed ? math.sign(renkoClose - renkoOpen) : na, "Renko sampled direction", display = display.data_window)

Keep signal prices separate from simulated fills

A strategy on a non-standard chart normally uses synthetic chart prices for its fills. TradingView provides a specific HA exception: standard-OHLC fills can be enabled in strategy Properties or by setting fill_orders_on_standard_ohlc in the strategy declaration. That changes the fill data, not the HA signal calculation. It does not make Renko charts a reliable execution model.

  • In the four-bar example, an order at the HA high of 101.375 on bar 4 would assume access to a price above that bar's actual high. A plausible-looking candle can therefore imply an impossible fill.
  • For a later strategy test, record the signal timestamp separately from the fill timestamp, use the same position sizing and costs, and reserve an unseen period. Standard OHLC still cannot supply an exact intrabar order path or guarantee a live fill.
  • Pineify's Pine Script AI Coding Agent can draft or revise the comparison script from explicit rules. Ask it to preserve the common input context and label synthetic fields. Review the code, request syntax checking, and inspect chart values; the agent cannot recover unavailable tick history or certify executable signals.
Where Pineify fits

Pine Script AI Coding Agent

Draft a Renko and HA comparison with shared symbol, session, and interval settings. Review the synthetic data requests and confirmation rules before adding strategy orders.

Draft a chart comparison

Frequently asked questions

Educational chart comparison, not investment advice. Numerical examples use invented prices and are not trading results. Synthetic data, historical simulations, and generated code do not guarantee executable fills or future returns.

Sources and verification

Published by Pineify. Pineify is an independent product and is not affiliated with TradingView. Sources support the technical explanations; examples do not establish trading performance.