---
title: Volume Indicators
description: Money Flow Index and On-Balance Volume — volume-weighted indicators that confirm price moves and flag divergences.
---

Volume indicators incorporate volume data in their calculations to provide insight into buying and selling pressure, money flow, and market participation strength.

| Type | Description |
| --- | --- |
| **Money Flow Index (MFI)** | Volume-weighted RSI that measures buying and selling pressure using both price and volume data. Overbought above **80**, oversold below **20**. |
| **On-Balance Volume (OBV)** | Cumulative volume indicator that adds volume on up bars and subtracts volume on down bars to show volume flow relative to price. |

| Function | Description |
| --- | --- |
| [`mfi`](#mfi) | Money Flow Index — volume-weighted momentum |
| [`obv`](#obv) | On-Balance Volume — cumulative volume flow |

<a id="mfi"></a>

## mfi - Money Flow Index

`mfi(source: TimeSeries, period?: number = 14): number` — Money Flow Index. Measures volume-weighted momentum and returns a value from 0 to 100.

| Parameter | Type | Description |
| --- | --- | --- |
| `source` | TimeSeries | Source data series with volume |
| `period` | number | Number of periods (default: `14`) |

**Returns:** `number` — MFI value from 0 to 100.

```javascript
var mfiData = mfi(source=trade, period=14);
```

<a id="obv"></a>

## obv - On-Balance Volume

`obv(source: TimeSeries): number` — On-Balance Volume. Shows cumulative volume flow by adding volume when price rises and subtracting volume when price falls.

| Parameter | Type | Description |
| --- | --- | --- |
| `source` | TimeSeries | Source data series with volume |

**Returns:** `number` — OBV value.

```javascript
var obvData = obv(source=trade);
```

## Best Practices

<table data-view="cards"><tbody>
<tr><td>Volume Quality</td><td>High volume during breakouts confirms the move. Low-volume breakouts are often false signals that reverse quickly.</td><td></td></tr>
<tr><td>Divergence Analysis</td><td>Watch for divergences between price and volume indicators. When price makes new highs but volume indicators do not, be cautious.</td><td></td></tr>
</tbody></table>
