# Alternative Bar Types

Also known as: range, tick, volume, delta bars.
A Meta & Composition concept (Chart transforms) in the LuxAlgo Library, with 1 indicator implementation.

## What are Alternative Bar Types?

Alternative bar types replace the clock as the trigger for printing a new bar. A standard chart closes a bar every N minutes no matter what traded; alternative bars close on activity instead. Tick bars close after a fixed number of trades, volume bars after a fixed amount of volume, dollar bars after a fixed traded value, range bars once price covers a fixed high-to-low span, and delta bars once the net difference between buy-side and sell-side volume reaches a set size. The trades are the same; what changes is how they are grouped along the x-axis.

The effect is activity-based sampling. Busy periods print many bars and quiet periods print few, so each bar carries a roughly comparable amount of trading, and dead stretches compress instead of flatlining across the chart. Market-microstructure researchers have argued that returns sampled this way have more stable statistical properties than clock-time returns, which is why activity bars appear in systematic pipelines as well as on discretionary charts. The trade-offs are real: elapsed time is no longer readable from bar spacing, indicator values shift because lookbacks count events rather than minutes, and anything anchored to the clock, such as sessions or opens, needs explicit handling.

The idea predates the charts: Clark's 1973 work on subordinated processes found price changes look closer to normally distributed when measured per unit of volume rather than clock time, and Mandelbrot had proposed trading time as the market's natural clock even earlier. Range bars are commonly credited to Vicente Nicolellis, a Brazilian trader working in the mid-1990s, and López de Prado's financial machine learning work re-popularized tick, volume, and dollar bars for research datasets.

Adopting activity bars changes the engineering around a chart. The threshold becomes the de facto timeframe and goes stale as participation shifts, so many users scale it to average activity, a form of [adaptive parameterization](https://www.luxalgo.com/library/concept/adaptive-parameterization/). Automation needs review too: bars can close in bursts during news and rarely overnight, affecting [alerts and webhooks](https://www.luxalgo.com/library/concept/alerts-and-webhooks/) keyed to bar closes, and inherited clock-chart rules deserve revalidation, basic [signal hygiene](https://www.luxalgo.com/library/concept/signal-hygiene/) when sampling changes.

## How to recognize and set up activity bars

Alternative bars are usually a chart-type setting rather than an indicator; the tell is the x-axis.

1. Check timestamps: activity-chart bars are irregular, seconds apart in busy trade and far apart in quiet trade, with counts varying session to session.
2. Pick the unit matching your question: ticks for trade count, volume or dollar value for participation, range for movement, delta for one-sided pressure.
3. Size the threshold so a typical session prints a workable number of bars, and revisit it when average activity shifts.
4. Keep a time reference such as session shading or a clock chart alongside, since elapsed time can no longer be read from bar spacing.

## How it's calculated

Bars that close when an activity threshold is reached instead of when a fixed time interval ends.

```
Tick bars: close the bar when T = N
Volume bars: close the bar when Σ v_j >= V, j = 1 to T
Range bars: close the bar when max(p_j) - min(p_j) = R, j = 1 to T
Delta bars: close the bar when abs(Σ s_j × v_j) >= D, j = 1 to T
After each close the next trade opens a new bar and the running totals reset

  T: number of trades accumulated in the current bar
  N: trade-count threshold for tick bars
  v_j: size of trade j
  V: volume threshold for volume bars
  p_j: price of trade j
  R: fixed price range per range bar
  s_j: sign of trade j (+1 buyer-initiated, -1 seller-initiated)
  D: absolute delta threshold for delta bars
  j: trade index within the current bar
```

Bar frequency follows activity, so busy markets print more bars and quiet markets fewer.

Every completed range bar spans exactly R; implementations differ on whether the next bar opens at the prior close or one tick beyond it.

Trade sign comes from the aggressor side, or from a tick rule when aggressor data is unavailable.

## How traders use it

- To normalize indicator inputs: an oscillator computed on tick or volume bars sees a comparable amount of trading in every bar, which reduces quiet-session flatlines and news-burst distortion without touching its settings.
- To simplify structure: on range bars every bar spans the same height, so congestion collapses into a handful of bars while directional moves print as clean runs, changing how consecutive-close or bar-count rules behave.
- To foreground participation: volume and delta bars devote chart space to where trading actually happened, making absorption and one-sided pressure easier to see than on a clock chart with a separate volume pane.
- As an execution layer: levels are prices rather than times, so higher-timeframe references and [HTF-level proximity filters](https://www.luxalgo.com/library/concept/htf-level-proximity-filters/) still work on activity charts while session context stays on a clock chart, a [top-down analysis](https://www.luxalgo.com/library/concept/top-down-analysis/) division of labor.
- Inside a full system: swapping bar type changes every stage of a [filter-setup-trigger-exit architecture](https://www.luxalgo.com/library/concept/filter-setup-trigger-exit-architecture/), including [trend/range classifiers](https://www.luxalgo.com/library/concept/trend-range-classifiers/), so each rule is retested on the new sampling rather than carried over.

## Alternative Bar Types vs other chart transforms

- **Renko** (https://www.luxalgo.com/library/concept/renko/): Renko rebuilds price from fixed-size bricks: a new brick needs a set move, and a reversal typically needs two bricks' worth. It discards time and intra-brick detail entirely, while tick, volume, and range bars still print full OHLC bars on a non-clock schedule.
- **Heikin Ashi** (https://www.luxalgo.com/library/concept/heikin-ashi/): Heikin Ashi keeps the clock but replaces each bar's OHLC values with smoothed averages, so bars stop showing true traded prices. Alternative bar types do the opposite: every printed price is real, but when a bar closes is decoupled from time.
- **Chart Scales** (https://www.luxalgo.com/library/concept/chart-scales/): Log versus linear scaling re-maps the price axis and leaves sampling untouched; activity bars re-map the time axis and leave prices untouched. They address different distortions and combine freely; a log-scaled range-bar chart is coherent.

## FAQ

### Are tick or volume bars better than time-based charts?

Neither is better in general; they group the same trades differently. Activity bars adapt to participation, which suits fast intraday markets and systematic sampling, while time bars keep sessions and news readable in context. Indicator values, pattern shapes, and backtest fills all change with the bar type, so any rule tuned on one should be retested rather than assumed to transfer.

### Why does a tick chart look different on different data feeds?

Because the inputs differ. Feeds aggregate trades differently (some bundle partial fills, some filter block or off-exchange prints), and volume conventions vary by venue, so the same setting closes bars at different moments on different feeds. Historical backfill can also be built from coarser data than the live stream, so cross-feed differences reflect construction, not necessarily different market behavior.

### How are range bars different from Renko bricks?

Range bars are genuine OHLC bars that close once price covers a fixed high-to-low span: every trade is represented and bars print only when the market moves. Renko bricks are synthetic fixed-size boxes built from closes, classically without wicks, and reversals require extra movement, filtering more but discarding more. Range bars sit closer to raw price; bricks are a smoothed abstraction.

### How do alternative bars compare with Point and Figure or EquiVolume charts?

EquiVolume keeps clock-time sampling and encodes each bar's volume as its width, while volume bars do the reverse, fixing the volume per bar and letting elapsed time vary: one changes how bars are drawn, the other when they close. Point and Figure abandons bars entirely for columns of X's and O's governed by a box size and reversal count, with its own signal vocabulary. Tick, volume, and range bars keep ordinary bar anatomy, so standard indicators and patterns still apply.

### Do standard indicators work on tick, volume, and range bars?

They compute without complaint, but their meaning shifts: lookbacks count events instead of minutes, so a 14-bar reading spans a variable amount of time. Some degenerate: ATR on range bars is nearly constant because every bar spans the same height, and session-anchored tools like intraday VWAP need explicit handling. Nothing transfers on faith; retest each piece.

### Can strategies be backtested reliably on alternative bars?

Yes, with the usual caveats sharpened. Historical bars must be built from data as granular as the live feed uses, otherwise bar boundaries differ between backtest and production. Fills near closes are trickier because closes arrive in bursts, and platforms that approximate activity bars from minute data diverge from tick-built live bars exactly when markets are busiest.

## Implementations in the Library

- Alternative Bar Types (LuxAlgo): https://www.luxalgo.com/library/indicator/alternative-bar-types/

## Related concepts

- Renko: https://www.luxalgo.com/library/concept/renko/
- Kagi: https://www.luxalgo.com/library/concept/kagi/
- Point & Figure: https://www.luxalgo.com/library/concept/point-and-figure/
- Line Break: https://www.luxalgo.com/library/concept/line-break/
- Custom Indices/baskets: https://www.luxalgo.com/library/concept/custom-indices-baskets/
- Chart Scales: https://www.luxalgo.com/library/concept/chart-scales/
- Volume-adjusted Time: https://www.luxalgo.com/library/concept/volume-adjusted-time/
- EquiVolume: https://www.luxalgo.com/library/concept/equivolume/
- Heikin Ashi: https://www.luxalgo.com/library/concept/heikin-ashi/
- Ratio/spread Charts: https://www.luxalgo.com/library/concept/ratio-spread-charts/

---

Source: https://www.luxalgo.com/library/concept/alternative-bar-types/ (LuxAlgo Library, the encyclopedia of trading & technical analysis). Free to use with attribution: https://www.luxalgo.com/library/license/