PVO
PVO
Summary
Percentage Volume Oscillator: a variation of the Percentage Price Oscillator (PPO, created by Gerald Appel) applied to the volume series instead of price. It is the difference between a fast and slow moving average of volume, expressed as a percentage of the slow MA. Positive when short-term volume is above its longer-term average (rising participation), negative when below. The default periods (12, 26) match MACD and PPO.
Formula
PVO = ((fastMA(inVolume) - slowMA(inVolume)) / slowMA(inVolume)) * 100, both MAs of type optInMAType; output = 0 when slowMA == 0
The standard form is exponential with periods 12 and 26 — ((12-day EMA of Volume - 26-day EMA of Volume) / 26-day EMA of Volume) * 100, i.e. the PPO/MACD oscillator computed on volume. optInMAType therefore defaults to EMA — the moving average Gerald Appel used for the original PPO/MACD; pass another type (e.g. TA_MAType_SMA) to override.
Inputs
inVolume— Volume of each bar
Outputs
outReal— PVO value in percent
Parameters
| Parameter | Type | Default | Accepted values | Description |
|---|---|---|---|---|
optInFastPeriod | integer | 12 | 2–100000 | Period of the fast MA |
optInSlowPeriod | integer | 26 | 2–100000 | Period of the slow MA |
optInMAType | MAType | EMA (1) | any MAType | Moving average type used for both MAs |
MAType values: 0 SMA · 1 EMA · 2 WMA · 3 DEMA · 4 TEMA · 5 TRIMA · 6 KAMA · 7 MAMA · 8 T3 · 9 HMA · 10 DISABLED
Properties
Numerical Stability: Depends on MA Type — This function's default, EMA, has an initial unstable period.
| Display Flags |
|---|
| ☐ Overlap Input |
| ✅ Independent Y-Axis i |
| ☐ Candlestick |
Implementation
TA-Lib Definition: pvo.c · pvo.yaml
| Native | File |
|---|---|
| C | ta_PVO.c |
| Rust | pvo.rs |
| Java | Core_PVO.java |
TA-Lib is also available for Python, R and more using a wrapper.
Aliases
Percentage Volume Oscillator
See Also
References
- PVO has no separately documented originator; it applies the PPO/MACD oscillator (Gerald Appel) to the volume series.
- Formula and standard (12, 26, 9) parameters: Percentage Volume Oscillator (PVO), StockCharts ChartSchool; also documented by TradingView.