MTF & Repainting

This page explains how Axiom BB Lite handles multi-timeframe data, what the On Bar Close switch actually does, what you gain and lose with each setting, and how to verify the behavior yourself. If you only read one pa...

Written By Axiom Admin

Last updated About 1 month ago

MTF & Repainting

This page explains how Axiom BB Lite handles multi-timeframe data, what the On Bar Close switch actually does, what you gain and lose with each setting, and how to verify the behavior yourself. If you only read one page beyond the Quick Start, make it this one.


What "multi-timeframe" means in practice

Each BB slot in Axiom BB Lite can request data from a timeframe equal to or higher than the chart's own timeframe. When you are on a 1-minute chart and a slot is set to 60 minutes, the indicator asks TradingView for 60-minute data and computes the Bollinger Bands in that 60-minute context. The result is then displayed on your 1-minute chart. If you set a slot below the chart timeframe, the script throws a runtime error instead of silently looking downward.

This is what produces the stepped appearance of higher-timeframe bands on a lower-timeframe chart. The 60-minute BB values update once per 60-minute bar. Between updates, the values hold flat. On your 1-minute chart, that means 60 bars of flat values followed by a jump to the new level.

The step pattern is not a bug, a limitation, or a sign that the indicator is lagging. It is the honest representation of what a 60-minute Bollinger Band looks like when displayed at 1-minute resolution. The alternative β€” interpolating smooth values between HTF updates β€” would be visually pleasing but would represent data that does not exist.


The On Bar Close switch

On Bar Close is a single global toggle in PU Settings. It applies to all three slots simultaneously. There is no per-slot control.

On Bar Close = ON (default)

When On Bar Close is on, the indicator uses the last completed higher-timeframe bar's values. Specifically, it looks back one HTF bar and uses those confirmed values.

What this means for your chart:

  • The values you see on any historical bar are the values that were visible when that bar was live. If you scroll back to yesterday at 10:15am, the 60-minute slot shows the BB values computed from the 60-minute bar that had most recently closed at 10:15am β€” not the one that was still building.

  • If you ran this indicator live yesterday, you would have seen the same values at 10:15am that you see now when you scroll back to that bar. The chart's past is stable.

  • Backtests or visual analysis against these values are reliable in the sense that the reference points existed at the time they are displayed. The bands were there. The basis was there. Price's relationship to those levels was observable in real time.

What it costs:

The values always lag by one higher-timeframe bar. On a 1-minute chart with a 60-minute slot, the bands reflect the 60-minute bar that closed up to 59 minutes ago. The current building 60-minute bar's data is not included. This means:

  • The bands do not respond to what is happening right now on the 60-minute timeframe.

  • A large price move that is well underway on the 60-minute bar will not appear in the slot's BB until that 60-minute bar closes and the next one's confirmed values take over.

  • The lag is proportional to the timeframe difference. A 5-minute slot on a 1-minute chart lags by up to 5 minutes. A daily slot on a 1-hour chart lags by up to one day.

This lag is predictable and consistent. You know exactly how stale the values are: they are always one HTF bar old. You can factor that into your reading.

On Bar Close = OFF

When On Bar Close is off, the indicator uses the current building higher-timeframe bar's values. The BB is computed from HTF data that includes the bar currently in progress.

What this means for your chart:

  • The bands update more frequently. Instead of stepping once per HTF bar, they shift continuously as the building HTF bar accumulates new price data.

  • The chart feels more responsive. You see the 60-minute BB reacting to price changes before the 60-minute bar closes.

What it costs:

The values on historical bars may not match what you would have seen live. This is the definition of repainting.

Here is why: when the indicator computes the BB for a past bar with On Bar Close off, it uses the HTF bar that was building at that moment β€” but it computes it with the full HTF bar's data, including data that arrived after the bar you are looking at. The indicator does not know what data was available at the exact moment each 1-minute bar was live. It only knows what the completed HTF bar looks like after the fact.

The result is that historical values are computed with more information than was actually available in real time. The chart's past looks cleaner, more precise, and better-fitted to what actually happened β€” because it had the benefit of knowing the outcome.

The practical danger:

  • You scroll back and see the bands catching a reversal perfectly β€” upper band tagged right at the top, basis cross right at the turn. In real time, the bands were not in that position when the reversal was happening. They were still computing from the building HTF bar, which had not yet accumulated the data that eventually defined the level you are now looking at. The "perfect catch" is a product of the indicator knowing the outcome. It looks like the tool predicted the move. It did not.

  • You use TradingView's replay mode and watch the bands respond to price. The replay looks convincing β€” the bands move with the market. But replay replays the data sequentially and may not reproduce the exact mid-bar values that the indicator showed on a live chart, depending on how TradingView handles replay for HTF security calls. The replay can make On Bar Close OFF look more reliable than it is in live conditions.

  • You build confidence in a pattern over days or weeks of scrollback study β€” a certain band-touch pattern, a certain basis-cross sequence, a certain way the blend narrows before a move. You start trading on that pattern. In live conditions, the pattern does not appear as cleanly because the bands are not in the same positions they showed during your historical study. The confidence you built was real. The data it was built on was not.


Why the default is On

The default is On Bar Close = ON because the lag cost is honest and the repainting cost is hidden.

When On Bar Close is on, you know the bands are stale. You can see the step pattern. You can count the bars since the last update. The lag is annoying but visible β€” you cannot accidentally mistake it for real-time data because it obviously is not.

When On Bar Close is off, the chart looks correct. The bands appear responsive and well-fitted. Nothing about the visual output warns you that the historical values are unreliable. There is no asterisk, no color change, no label that says "these past values may have been different in real time." The repainting is invisible unless you specifically know to test for it.

A cost you can see and account for is less dangerous than a cost you cannot see at all. The stepped lines are annoying. They look less polished than smooth bands. But they are honest about what they know and when they knew it.


How repainting affects backtesting

Axiom BB Lite is not a strategy β€” it does not generate entries or exits. But many traders use indicators as reference levels in their own decision-making, and some use them as components in strategy scripts or manual backtesting routines.

If you use BB levels from this indicator as part of any historical analysis β€” whether that is manual scrollback, TradingView replay, journal review, or using the bands as reference levels in a manual backtest β€” the On Bar Close setting determines whether the levels you are studying were real:

  • On Bar Close ON: The levels you see on historical bars are the levels that existed at that time. If price touched the upper band at 10:15am, the upper band was at that value at 10:15am. The reference point is real. You can reason about the touch β€” how price behaved when it reached that level β€” because the level was visible to a live trader at that moment.

  • On Bar Close OFF: The levels you see on historical bars may not be the levels that existed at that time. If price appears to have "touched the upper band" at 10:15am, the upper band may have been somewhere else at 10:15am because the HTF bar was still building. The touch you see on the chart may not have been observable to a live trader. You might be studying a price-band interaction that never happened in real time.

This does not make On Bar Close OFF useless. It makes it unsuitable for studying the past. In real time, the responsive values can be useful as a "where is the HTF BB right now as the bar builds" reference β€” a live reading that you know is provisional. The problem is only when you confuse provisional data with confirmed data by scrolling back and treating the responsive values as settled history.


Cross-ticker scaling and On Bar Close

When a slot uses an Optional Ticker, the price-space scaling ratio is also affected by On Bar Close. With On Bar Close on, the ratio uses confirmed closing prices from both symbols. With On Bar Close off, it uses building-bar closing prices, which can change until the HTF bar confirms.

This means that with On Bar Close off, the cross-ticker overlay is doubly approximate: both the foreign BB values and the scaling ratio are based on incomplete data.

There is one more limit worth naming. The ratio only forms when both requested closes resolve and the foreign close is not zero. If that ratio is unavailable, the script does not give you a clean "scaling failed" state. You should treat that overlay as unverified until you confirm it is still behaving sensibly on the chart.


Verification walkthrough

You can verify the repaint behavior yourself without reading any code. This walkthrough takes about five minutes.

Step 1: Set up

Apply Axiom BB Lite to a 1-minute chart with a stock or futures instrument that is currently in an active session (so you get live data). Set one slot (e.g., Slot 1) to a 60-minute timeframe. Leave On Bar Close on. Disable or hide the other two slots for clarity.

Step 2: Observe the step pattern

Watch the chart for a few minutes. The 60-minute slot's bands should hold flat across each minute bar, updating only when a new 60-minute bar closes. Note the current values of the upper, basis, and lower bands.

Step 3: Wait for an HTF bar close

Wait for the next 60-minute bar to close (or use a shorter HTF like 5 minutes if you do not want to wait). When the HTF bar closes, the slot's values should update to new levels. Note the new values.

Step 4: Turn On Bar Close off

Open PU Settings and turn On Bar Close off. The bands should change immediately β€” they are now reflecting the current building HTF bar's data instead of the last completed one.

Watch for a few minutes. The bands should update continuously as new 1-minute bars close and the HTF bar accumulates more data. This is the "responsive" mode.

Step 5: Check historical values

Scroll back to a bar from earlier in the session β€” one that you were watching live in Step 2. The values on that bar may differ from what you recorded in Step 2.

This is repainting. The indicator, with On Bar Close off, computed those historical values using the full HTF bar's data β€” including data that arrived after the bar you are looking at. When you were watching live, the values were different because the HTF bar was still building.

Step 6: Restore the default

Turn On Bar Close back on. The values should revert to the confirmed (one-HTF-bar-lagged) mode. The historical values should now match what you observed in Step 2.


Summary of the tradeoff

On Bar Close ON

On Bar Close OFF

Band updates

Once per HTF bar close

Continuously as HTF bar builds

Historical accuracy

What you see is what was visible live

Historical values may differ from live

Backtesting reliability

Reliable β€” reference points existed

Unreliable β€” reference points may have shifted

Responsiveness

Lags by up to one HTF bar

Near real-time

Visual appearance

Stepped, flat between updates

Smoother, more continuous

Risk visibility

Lag is obvious (you can see the steps)

Repainting is invisible (chart looks normal)

If you need historical reliability, leave it on. If you want real-time responsiveness and accept that history is approximate, you can turn it off β€” but do your historical analysis with it back on.