All indicators

Trade Volume Index (TVI)

A running total of volume that adds while price ticks up by more than a minimum move and subtracts while it ticks down, holding direction through smaller moves.

BTCUSD1h
Fixed data to Oct 6, 2026, UTC
Loading the chart

The Trade Volume Index keeps a running total of volume signed by the direction of price. On each bar the study compares the price with the previous bar's price. If it rose by more than the minimum move, the direction becomes up; if it fell by more than the minimum move, the direction becomes down; anything smaller leaves the direction as it was.

The bar's volume is then added to the total while the direction is up and subtracted while it is down. The direction starts as up, and the first bar compares its price with itself, so its volume is added. A missing price falls back to the close and a missing volume counts as zero.

The minimum move is what separates it from on-balance volume: small back-and-forth ticks inside the threshold do not flip the sign, so a quiet drift keeps accumulating in the direction of the last real move.

How to read Trade Volume Index (TVI)

Read the slope of the line. A rising TVI says volume has been flowing while price moves up, which is accumulation; a falling TVI says it flows while price moves down. Compare its swings with price: a new price high that TVI fails to confirm suggests the move is losing participation.

The level itself depends on where the chart starts, so it has no fixed meaning. Set the minimum move to suit the instrument: on a high-priced market a tiny threshold behaves almost exactly like on-balance volume, while a larger one makes the line hold its direction through noise.

Settings

Price Field
The price compared from bar to bar to decide the direction. The default is the close.
Min. Move
The smallest price change, in price units, that sets a new direction. Changes this size or smaller leave the last direction in place.

Frequently asked questions

How is TVI different from on-balance volume?

On-balance volume flips sign on any change in the close. TVI flips only when the move exceeds the minimum, and on smaller or unchanged moves it keeps adding volume in the last direction.

What minimum move should I use?

Pick a value near the instrument's typical noise between bars. Too small and the line flips on every tick; too large and it rarely changes direction at all.

Why does the first bar add its volume?

The direction starts as up and the first bar has no earlier bar to compare with, so its change is zero and the starting direction carries.

Write your own in OpenScript

Every study here is plain OpenScript. Change a setting, combine two, or turn one into a strategy, then backtest it in /trading and run it in sandbox trading (analyzer mode in OpenAlgo) before going further.