MTF and Repainting

Multi-timeframe (MTF) indicators request data from timeframes higher than the chart they sit on. That request introduces a question that matters more than almost any other feature: does the historical picture match wh...

Written By Axiom Admin

Last updated About 1 month ago

MTF and Repainting

Multi-timeframe (MTF) indicators request data from timeframes higher than the chart they sit on. That request introduces a question that matters more than almost any other feature: does the historical picture match what was visible in real time, or does it look better after the fact?

Axiom RSI Osc Pro gives you a per-slot toggle that controls this behavior. This page explains what the toggle does, what it costs you in each direction, how the timeframe enforcement works, and how to verify the repainting contract yourself.


What On Bar Close controls

Each slot has an "On Bar Close?" toggle in its Power User settings. The default is true.

On Bar Close = true (default)

When enabled, the slot's RSI and Signal values come from the last completed higher-timeframe bar. On live charts, the slot holds its value steady between higher-timeframe bar closings. When a new HTF bar closes, the slot steps to the new value.

This means:

  • Historical bars show exactly what was visible in real time. If you scroll back and see a regime flip on bar 150, that flip was visible when bar 150 was the live bar. The historical picture is not retroactively improved.

  • The slot does not react to price movement within the current HTF bar. If you are on a 5-minute chart with a slot set to 60 minutes, the slot's RSI will not change during the twelve 5-minute bars that make up the current hourly bar. It updates only when the hour closes.

The tradeoff is delay. You always see "what RSI was as of the last completed HTF bar," never "what RSI looks like right now on the higher timeframe." For most analytical workflows, this is the correct default β€” stability and historical accuracy matter more than intrabar responsiveness.

On Bar Close = false

When disabled, the slot's RSI and Signal values come from the currently building higher-timeframe bar. On live charts, the slot updates on every chart bar as the HTF bar accumulates new data.

This means:

  • The slot responds faster. You see RSI recalculate on every chart bar, reflecting the price data that the HTF bar has received so far.

  • The values repaint. The RSI you see on a live bar will change as more data arrives within the HTF period. When you scroll back later, the historical values will show the final settled state β€” not the intermediate values that were visible in real time.

The tradeoff is that the historical chart becomes misleading. A regime flip that shows cleanly in history may not have been visible at the time, because the intrabar RSI was oscillating between bullish and bearish until the HTF bar closed and settled. Building confidence or backtesting assumptions on historical bars from a slot with On Bar Close disabled will lead you to believe the readings were cleaner and more timely than they actually were.


Why this is per-slot, not global

Unlike indicators with a single MTF toggle, this oscillator lets you set On Bar Close independently for each slot. This means you can run some slots with confirmed data and others with intrabar updates on the same chart at the same time.

There are practical reasons for this:

  • A slot on the chart's own timeframe (where no MTF request is needed) is not affected by On Bar Close in the same way β€” its data is always current because there is no higher-timeframe request. On Bar Close still technically applies (it shifts the value by one bar), but the practical impact is different from a true HTF slot.

  • You might want your primary analysis slots on confirmed data while running a "scout" slot with faster updates that you know repaints and treat accordingly.

The risk is confusion. If some slots repaint and others do not, the pane mixes confirmed and unconfirmed data without visual distinction. The slot line looks the same whether On Bar Close is on or off. There is no color change, no icon, no border β€” nothing in the visual layer that tells you which slots are running on confirmed data and which are using provisional intrabar values. Only you know the difference, and only if you remember which slots you set to false.

This matters most during post-session review. If you scroll back through history and one of your slots had On Bar Close disabled, the historical values for that slot reflect the final settled state β€” not what you saw during the live session. You may look at the history and think the slot gave a clear, timely regime reading when in fact the live reading was fluctuating and unclear until the HTF bar closed. The other slots, with On Bar Close enabled, will show history that matches what was visible in real time. The mismatch between confirmed and unconfirmed history is invisible in the chart and can lead you to trust a setup that was less clean than it appears.


Timeframe enforcement

Each slot's timeframe must be equal to or higher than the chart timeframe. If you set a slot to 5 minutes on a 15-minute chart, the indicator throws a runtime error and stops drawing entirely. You will see an error message in the pane.

This is a hard guardrail, not a soft warning. The reason is structural: TradingView's request.security() cannot reliably produce lower-timeframe data on a higher-timeframe chart. Rather than drawing something that looks plausible but is not trustworthy, the indicator stops and tells you.

The fix is always the same: either increase the slot's timeframe to be at or above your chart's timeframe, or switch your chart to a lower timeframe. There is no workaround and no setting to override this protection.


How to verify the repainting contract

This procedure lets you confirm for yourself that On Bar Close = true delivers the stability it promises, and that On Bar Close = false behaves the way this page describes. It takes about 10–15 minutes and only needs to be done once.

Setup

  1. Open a chart on a low timeframe β€” 1 minute is ideal.

  2. Enable only one slot. Set it to a higher timeframe β€” 15 minutes works well for this test.

  3. Set On Bar Close to true.

  4. Make sure the chart is live (market hours, real-time data flowing).

Step 1: Watch with On Bar Close = true

Watch the slot's RSI line for at least two complete 15-minute periods (about 30 minutes of real time). During each 15-minute period, the slot's value should hold perfectly steady β€” no movement on any of the 1-minute bars between HTF closings. When a 15-minute bar closes, the value will step to a new level.

What to confirm: The value does not move between HTF bar closings. This is the confirmed-data contract at work.

Step 2: Toggle On Bar Close to false

On the same slot, switch On Bar Close to false. Now watch.

The slot's RSI line should start updating on every 1-minute bar. As the current 15-minute bar builds, the RSI will move around β€” sometimes substantially β€” because the RSI calculation is being fed incomplete HTF data that changes with each new 1-minute bar.

What to confirm: The value changes on every chart bar during the HTF period. This is intrabar repainting at work.

Step 3: Compare history after the HTF bar closes

After the current 15-minute bar closes, scroll back a few bars and look at the recent history.

  • For the period when On Bar Close was true, the historical values should be stable and match what you observed in real time.

  • For the period when On Bar Close was false, the historical values now show the final settled state. They may look smooth and clean β€” but you know from watching live that the values were fluctuating during the HTF period. The history has been overwritten.

What this proves

The confirmed-data mode (On Bar Close = true) produces a historical chart you can trust as an accurate record of what the indicator was showing in real time. The intrabar mode (On Bar Close = false) produces a historical chart that looks cleaner than what you actually experienced. If historical accuracy matters to your analysis β€” and for any form of backtesting or post-session review, it should β€” leave On Bar Close on for the slots you rely on for decisions.


Interactions with alerts

All alerts are bar-close gated regardless of individual slot On Bar Close settings. This is a separate safety layer. Even if a slot has On Bar Close = false and its RSI is updating intrabar, the alert conditions only evaluate on confirmed (closed) chart bars. This prevents alerts from firing on intrabar noise.

The practical effect: a slot with On Bar Close = false might show a live regime flip that triggers no alert because the bar has not closed yet. If the RSI uncrosses the Signal before the bar closes, no alert fires. This is the intended behavior β€” it means your alerts are never based on provisional data, even when the slot's visual display is.


Summary decision guide

Your priority

On Bar Close setting

What you get

What you give up

Historical accuracy, backtesting integrity, stable readings

True (default)

History matches real time. Values are from the last confirmed HTF bar.

Slower updates. You see the HTF bar's result only after it closes.

Fastest possible RSI response from higher timeframes

False

Intrabar updates on every chart bar.

History repaints. Past values show the final state, not what you saw live. Confidence built on historical observation may be unfounded.

Mixed approach β€” some slots confirmed, others fast

True on decision slots, false on scout slots

Core readings are stable. Scout slots give early signals you treat as provisional.

You must remember which slots are confirmed and which are not. The pane does not distinguish them visually.

For most traders, the default (On Bar Close = true on every slot) is the right choice. Change it only when you specifically need intrabar updates and you are prepared to treat those readings as provisional until the HTF bar closes.