Volume Indicators
21 algorithms in Technical Indicators · 21 with asserted arithmetic.
In this family#
-
On-Balance Volume (OBV) verified
On-balance volume: a running total that adds the bar's volume when price closed up and subtracts it when price closed down. The level is arbitrary; only its direction carries information.
obv(close, volume, initial) -
Accumulation/Distribution Line verified
Weights each bar's volume by where the close sat within that bar's range, then accumulates. Unlike OBV it distinguishes a close at the high from a close barely above the open.
accumulationDistributionLine(high, low, close, volume, initial) -
Chaikin Money Flow verified
Money-flow volume summed over a lookback and divided by total volume over the same window — the accumulation/distribution idea as a bounded oscillator rather than a running total.
chaikinMoneyFlow(high, low, close, volume, p) -
Money Flow Index verified
RSI computed on typical price weighted by volume — commonly described as volume-weighted RSI, and read on the same 0–100 scale.
moneyFlowIndex(high, low, close, volume, p) -
Volume Price Trend verified
Like OBV, but each bar contributes volume scaled by the size of the return rather than only its sign — so a 3% move counts for more than a 0.1% one.
volumePriceTrend(close, volume, initial) -
Force Index verified
Price change multiplied by volume, then smoothed. Combines direction, size and participation in one number — a large move on no volume scores low.
forceIndex(close, volume, p) -
Chaikin A/D Oscillator verified
Builds the cumulative accumulation/distribution line from the money flow multiplier and volume, then returns the difference between a fast and a slow EMA of that line.
chaikinADOscillator(input) -
Session VWAP Indicator verified
Accumulates typical price times volume divided by cumulative volume, restarting the accumulation at every new session.
sessionVwapIndicator(input) -
Anchored VWAP verified
Accumulates typical price times volume divided by cumulative volume from a chosen anchor bar onward, with no session reset.
anchoredVwap(input) -
Negative Volume Index verified
Tracks a cumulative index seeded at 1000 that compounds the close-to-close return only on bars whose volume fell against the prior bar.
negativeVolumeIndex(input) -
Positive Volume Index verified
Tracks a cumulative index seeded at 1000 that compounds the close-to-close return only on bars whose volume rose against the prior bar.
positiveVolumeIndex(input) -
Ease of Movement verified
Divides the typical-price change by a box ratio built from scaled volume over the bar range, then smooths that raw reading with a simple moving average.
easeOfMovement(input) -
Klinger Volume Oscillator verified
Signs each bar's volume force by the direction of the high-low-close sum and weights it by where the close sits in the bar range, then returns the fast EMA of that force minus the slow EMA.
klingerVolumeOscillator(input) -
Volume Oscillator verified
Returns the difference between a fast and a slow simple moving average of raw volume.
volumeOscillator(input) -
Percentage Volume Oscillator verified
Expresses the gap between a fast and a slow EMA of volume as a percentage of the slow EMA.
percentageVolumeOscillator(input) -
Volume Rate of Change verified
Measures the percentage change in volume against the bar
periodpositions earlier.volumeRateOfChange(input) -
Relative Volume verified
Divides each bar's volume by the simple moving average of volume over the preceding window, giving a multiple of normal activity.
relativeVolume(input) -
Money Flow Multiplier and Money Flow Volume verified
Returns the per-bar money flow multiplier, the close's position within the bar range mapped to minus one through one, and that multiplier times volume.
moneyFlowMultiplierAndMoneyFlowVolume(input) -
Volume-Weighted MACD verified
Runs the MACD construction on volume-weighted moving averages of close instead of exponential ones, and smooths the resulting line into a signal.
volumeWeightedMacd(input) -
Volume Zone Oscillator verified
Signs each bar's volume by the direction of the close change, then expresses the EMA of that signed volume as a percentage of the EMA of total volume.
volumeZoneOscillator(input) -
Twiggs Money Flow verified
Accumulates volume weighted by where the close sits inside a range extended to include the prior close, then divides the EMA of that flow by the EMA of volume.
twiggsMoneyFlow(input)
What they share#
Every topic here is a series-transform, so once you have
called one the rest follow the same shape. Import paths differ only in the final segment:
import { obv } from "fintech-algorithms/technical-indicators/volume-indicators/obv";
import { accumulationDistributionLine } from "fintech-algorithms/technical-indicators/volume-indicators/accumulation-distribution-line";Read them in the order above — the sequence is pedagogical, not alphabetical.
Where this sits#
Technical Indicators collects 137 algorithms across 9 families. For the concept behind this family rather than the call signatures, see the concept guides.