Skip to content
All library documents

Designing Adaptive Range Bars for Intraday FX Charts

Article Quant Q&A · Author: MisterH

Summary

The document proposes adjusting constant range bar size dynamically on intraday foreign exchange charts. Unlike time-based candles, range bars form after price moves a preset amount, so their duration varies with market activity. A fixed range may sometimes produce smooth, persistent trends and at other times create overlapping, noisy bars.

The suggested design is a feedback loop: estimate volatility and possibly time-of-day seasonality from tick or minute data, then assess the resulting bars using overlap, directional changes, persistence measures such as the Hurst exponent, or an efficiency ratio. The document asks how these signals could be combined to choose a range that maximizes smoothness. It provides no tested adjustment rule, empirical results, or guidance on weighting the measures. Its proposal is therefore a research question, and optimizing chart smoothness alone would need validation against a trading objective.

Key ideas

  • Range bars form after price covers a preset distance, so their duration changes with market activity.
  • A fixed range can produce smooth trends in some conditions and noisy overlapping segments in others.
  • Volatility estimates and intraday seasonality are proposed as inputs to a dynamic range rule.
  • Overlap, directional changes, Hurst estimates, and efficiency ratios are possible output smoothness measures.
  • The document proposes a feedback design but does not specify or validate a combined criterion.

Tags

Full text
# Dynamically adjusting the size of a Constant Range Bar (on an intraday fx chart)


# Dynamically adjusting the size of a Constant Range Bar (on an intraday fx chart)












Constant Range Bars (CRB) is a type of candlestick charting method that does not draw a new candle every unit of time (like every 1/5/15/30 minutes), but every time the range (high-low) of the candlestick has reached a certain preset value (e.g. 8 pips in eur/usd). Meaning that all candles have the same range, but possibly wildly varying time duration: you can have 5 candles in a minute during a news announcement, or 1 candle lasting 6 hours during a quiet Asian trading session, both with the same high minus low range. This can possibly result in smoother, more persistent intra-day charts.

If the range of the CRB is set at e.g. 8 pips for eur/usd, it can be seen that sometimes this CRB-chart will show you a nicely trending (up & down), persistent, smooth chart (the green rectangle in the image below). Sometimes however, the range of the candles will be "wrong", resulting in consecutive overlapping, noisy candle segments (the segment in the red rectangle in the image below).

I would think you need to create a feed-back loop that measures certain things on a moving window, both on your input (tick-data chart or maybe M1 chart) and your output: the resulting range bar chart. The goal is to dynamically adjust the range variable of the candlesticks, to create the smoothest, most persistently trending "Dynamic Range Bar" chart.

I would assume you need to calculate some of the following elements on a moving window:

==> On your input data: (the tick / M1 chart):

- a time-based intra-day volatility measure (Standard Deviation, Average True Range, Bollinger Band width,...)

- maybe some historical intra-day seasonality data: there is clear evidence of periodic intra-day volatility because of the nature of fx: different market centers open at different times: low vol in Asia, rising as the European banks & large funds open their desks, maximum during the overlap of the US-EU sessions, then declining as the dateline travels over the pacific, to pick back up as Wellington & Tokyo wake up.

==> On the resulting "Dynamic Range Bar Chart": measure smoothness:

- a measure of overlap / anti-persistence (compare high, low, open, close of several consecutive candles)

- number of directional changes: count the number of times the sign of first difference changes up, up, up, up, down, down, down, down, up, up, up, up (would be 3 out of 12: the lower the better)

- Hurst exponent (>0.6 and the higher the better)

- Efficiency indicator (the net change in the price movement over an n number of periods divided by the sum of the absolute values of all the bar-to-bar price changes over these same n-periods).

If your goal was to maximize the smoothness / persistence of the new "Dynamic" Range Bar chart, what criterion could you use to dynamically adjust the range? Would the above elements be enough? And how would you combine them to reach the goal?

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.