doc headers

This commit is contained in:
Miha Kralj
2026-02-27 07:48:12 -08:00
parent 8a1ba95173
commit 4ab3a7fb53
389 changed files with 6682 additions and 468 deletions
+17
View File
@@ -1,5 +1,22 @@
# ADL: Accumulation/Distribution Line
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | None |
| **Outputs** | Single series (ADL) |
| **Output range** | Unbounded |
| **Warmup** | 1 bar |
### TL;DR
- The Accumulation/Distribution Line (ADL) is the bedrock of volume analysis.
- No configurable parameters; computation is stateless per bar.
- Output range: Unbounded.
- Requires 1 bar of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Volume precedes price." — Old Wall Street Adage
The Accumulation/Distribution Line (ADL) is the bedrock of volume analysis. It attempts to answer a single, vital question: "Are the big players buying or selling?"
+17
View File
@@ -1,5 +1,22 @@
# ADOSC: Chaikin A/D Oscillator
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `fastPeriod` (default 3), `slowPeriod` (default 10) |
| **Outputs** | Single series (Adosc) |
| **Output range** | Unbounded |
| **Warmup** | `slowPeriod` bars |
### TL;DR
- The Chaikin Oscillator (ADOSC) is an indicator of an indicator.
- Parameterized by `fastperiod` (default 3), `slowperiod` (default 10).
- Output range: Unbounded.
- Requires `slowPeriod` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Momentum precedes price. Volume momentum precedes price momentum."
The Chaikin Oscillator (ADOSC) is an indicator of an indicator. It applies the MACD formula to the Accumulation/Distribution Line (ADL) instead of the price.
+17
View File
@@ -1,5 +1,22 @@
# AOBV: Archer On-Balance Volume
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | None |
| **Outputs** | Multiple series (LastFast, LastSlow) |
| **Output range** | Unbounded |
| **Warmup** | `> SlowPeriod` bars |
### TL;DR
- Archer On-Balance Volume (AOBV) applies dual exponential smoothing to the classic On-Balance Volume indicator, creating a responsive yet noise-filt...
- No configurable parameters; computation is stateless per bar.
- Output range: Unbounded.
- Requires `> SlowPeriod` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "OBV told me what was happening. AOBV told me when to act." — Adapted trader wisdom
Archer On-Balance Volume (AOBV) applies dual exponential smoothing to the classic On-Balance Volume indicator, creating a responsive yet noise-filtered momentum signal. The intersection of fast and slow EMAs provides actionable crossover signals while preserving OBV's core insight: volume precedes price.
+17
View File
@@ -1,5 +1,22 @@
# CMF: Chaikin Money Flow
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `period` (default 20) |
| **Outputs** | Single series (CMF) |
| **Output range** | Unbounded |
| **Warmup** | `> period` bars |
### TL;DR
- Chaikin Money Flow (CMF) is the normalized cousin of the Accumulation/Distribution Line.
- Parameterized by `period` (default 20).
- Output range: Unbounded.
- Requires `> period` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Money flow tells you what the big players are doing. CMF tells you if they're winning." — Marc Chaikin
Chaikin Money Flow (CMF) is the normalized cousin of the Accumulation/Distribution Line. While ADL is cumulative and unbounded, CMF oscillates between -1 and +1, measuring the persistence of buying or selling pressure over a rolling window.
+18 -1
View File
@@ -1,5 +1,22 @@
# EFI: Elder's Force Index
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `period` (default 13) |
| **Outputs** | Single series (EFI) |
| **Output range** | Unbounded |
| **Warmup** | `> period` bars |
### TL;DR
- Elder's Force Index (EFI) quantifies the buying and selling pressure behind price movements by multiplying price change by volume.
- Parameterized by `period` (default 13).
- Output range: Unbounded.
- Requires `> period` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Force Index combines price movement with volume to measure the power behind every move. It's the market's polygraph test." — Dr. Alexander Elder
Elder's Force Index (EFI) quantifies the buying and selling pressure behind price movements by multiplying price change by volume. Large positive values indicate strong buying pressure (bulls in control), while large negative values reveal strong selling pressure (bears dominant).
@@ -152,4 +169,4 @@ Note: Most libraries use standard EMA without bias correction, causing warmup di
- Elder, A. (1993). "Trading for a Living." John Wiley & Sons.
- Elder, A. (2002). "Come Into My Trading Room." John Wiley & Sons.
- StockCharts. "Force Index." [Technical Indicators](https://school.stockcharts.com/doku.php?id=technical_indicators:force_index)
- Investopedia. "Force Index Definition." [Technical Analysis](https://www.investopedia.com/terms/f/force-index.asp)
- Investopedia. "Force Index Definition." [Technical Analysis](https://www.investopedia.com/terms/f/force-index.asp)
+18 -1
View File
@@ -1,5 +1,22 @@
# EOM: Ease of Movement
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `period` (default 14), `volumeScale` (default 10000) |
| **Outputs** | Single series (Eom) |
| **Output range** | Unbounded |
| **Warmup** | `period + 1` bars |
### TL;DR
- Ease of Movement (EOM) quantifies how easily price moves relative to volume.
- Parameterized by `period` (default 14), `volumescale` (default 10000).
- Output range: Unbounded.
- Requires `period + 1` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Ease of Movement reveals when price advances effortlessly versus when it struggles against resistance. It's the market's accelerometer." — Richard W. Arms Jr.
Ease of Movement (EOM) quantifies how easily price moves relative to volume. High positive values indicate price is advancing with little resistance (low volume relative to price range), while high negative values reveal price declining easily. Values near zero suggest price is meeting resistance, requiring substantial volume to produce movement.
@@ -171,4 +188,4 @@ Note: External library implementations vary in their handling of volume scaling
- Arms, R.W. Jr. (1994). "Trading Without Fear." John Wiley & Sons.
- StockCharts. "Ease of Movement (EMV)." [Technical Indicators](https://school.stockcharts.com/doku.php?id=technical_indicators:ease_of_movement_emv)
- Investopedia. "Ease of Movement Indicator." [Technical Analysis](https://www.investopedia.com/terms/e/easeofmovement.asp)
- TradingView Wiki. "Ease of Movement." [Pine Script Reference](https://www.tradingview.com/pine-script-reference/)
- TradingView Wiki. "Ease of Movement." [Pine Script Reference](https://www.tradingview.com/pine-script-reference/)
+17
View File
@@ -1,5 +1,22 @@
# EVWMA: Elastic Volume Weighted Moving Average
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `period` (default 20) |
| **Outputs** | Single series (EVWMA) |
| **Output range** | Unbounded |
| **Warmup** | `> period` bars |
### TL;DR
- EVWMA (Elastic Volume Weighted Moving Average) is a volume-adaptive moving average that weights each bar's contribution to the average by its volum...
- Parameterized by `period` (default 20).
- Output range: Unbounded.
- Requires `> period` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Volume is the one technical indicator that never lies." — Joe Granville
## Introduction
+18 -1
View File
@@ -1,5 +1,22 @@
# III: Intraday Intensity Index
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `period` (default 14), `cumulative` (default false) |
| **Outputs** | Single series (III) |
| **Output range** | Unbounded |
| **Warmup** | `period` bars |
### TL;DR
- The Intraday Intensity Index (III) measures buying and selling pressure by analyzing where the close price falls within the high-low range, weighte...
- Parameterized by `period` (default 14), `cumulative` (default false).
- Output range: Unbounded.
- Requires `period` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Where the close lands within the day's range tells you who won the battle—bulls or bears. Volume tells you how hard they fought."
The Intraday Intensity Index (III) measures buying and selling pressure by analyzing where the close price falls within the high-low range, weighted by volume. Originally developed by David Bostian, this indicator quantifies whether money is flowing into or out of a security on an intraday basis. Values range from -1 (close at low, maximum selling pressure) to +1 (close at high, maximum buying pressure), multiplied by volume for magnitude.
@@ -132,4 +149,4 @@ Validation focuses on internal consistency (streaming vs batch vs span modes).
## References
- Bostian, D. "Intraday Intensity Index." *Technical Analysis of Stocks & Commodities*.
- Arms, R. W. (1989). "The Arms Index (TRIN)." *Dow Jones-Irwin*.
- Arms, R. W. (1989). "The Arms Index (TRIN)." *Dow Jones-Irwin*.
+18 -1
View File
@@ -1,5 +1,22 @@
# KVO: Klinger Volume Oscillator
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `fastPeriod` (default 34), `slowPeriod` (default 55), `signalPeriod` (default 13) |
| **Outputs** | Single series (Kvo) |
| **Output range** | Unbounded |
| **Warmup** | `slowPeriod` bars |
### TL;DR
- The Klinger Volume Oscillator (KVO), developed by Stephen Klinger in the 1970s, measures the long-term trend of money flow while remaining sensitiv...
- Parameterized by `fastperiod` (default 34), `slowperiod` (default 55), `signalperiod` (default 13).
- Output range: Unbounded.
- Requires `slowPeriod` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Volume is the fuel that drives the market train."
The Klinger Volume Oscillator (KVO), developed by Stephen Klinger in the 1970s, measures the long-term trend of money flow while remaining sensitive to short-term fluctuations. Unlike simple volume indicators, KVO incorporates price direction and range into its volume analysis, creating a comprehensive measure of buying and selling pressure that can identify divergences before they appear in price action.
@@ -167,4 +184,4 @@ $$
- Klinger, S. (1977). "Summing Up Volume." *Stocks & Commodities Magazine*.
- Murphy, J. (1999). *Technical Analysis of the Financial Markets*. New York Institute of Finance.
- https://github.com/mihakralj/pinescript/blob/main/indicators/volume/kvo.md
- https://github.com/mihakralj/pinescript/blob/main/indicators/volume/kvo.md
+18 -1
View File
@@ -1,5 +1,22 @@
# MFI: Money Flow Index
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `period` (default 14) |
| **Outputs** | Single series (Mfi) |
| **Output range** | Unbounded |
| **Warmup** | `> period` bars |
### TL;DR
- Money Flow Index is the volume-weighted cousin of RSI.
- Parameterized by `period` (default 14).
- Output range: Unbounded.
- Requires `> period` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Volume confirms price, but money flow confirms intent." — Gene Quong & Avrum Soudack
Money Flow Index is the volume-weighted cousin of RSI. While RSI measures the momentum of price changes alone, MFI incorporates volume to determine whether the price movement has conviction behind it. The result is an oscillator that can identify when strong hands are accumulating or distributing.
@@ -142,4 +159,4 @@ The TP and RMF calculations are fully vectorizable. The directional classificati
- Quong, G. & Soudack, A. (1989). "Money Flow Index." *Technical Analysis of Stocks & Commodities*.
- Investopedia. "Money Flow Index (MFI)." [Definition](https://www.investopedia.com/terms/m/mfi.asp)
- StockCharts. "Money Flow Index (MFI)." [Technical Indicators](https://school.stockcharts.com/doku.php?id=technical_indicators:money_flow_index_mfi)
- StockCharts. "Money Flow Index (MFI)." [Technical Indicators](https://school.stockcharts.com/doku.php?id=technical_indicators:money_flow_index_mfi)
+18 -1
View File
@@ -1,5 +1,22 @@
# NVI: Negative Volume Index
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `startValue` (default 100.0) |
| **Outputs** | Single series (Nvi) |
| **Output range** | Unbounded |
| **Warmup** | `> 2` bars |
### TL;DR
- The Negative Volume Index tracks price changes exclusively on days when trading volume decreases compared to the previous day.
- Parameterized by `startvalue` (default 100.0).
- Output range: Unbounded.
- Requires `> 2` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Low volume suggests smart money is at work; high volume days are for the crowd." — Norman Fosback
The Negative Volume Index tracks price changes exclusively on days when trading volume decreases compared to the previous day. The underlying theory: institutional investors—the "smart money"—prefer to accumulate or distribute positions during quiet, low-volume periods, while retail traders drive high-volume days with more emotional, less informed decisions.
@@ -179,4 +196,4 @@ NVI and PVI provide complementary signals:
- Fosback, N. (1976). *Stock Market Logic*. Institute for Econometric Research.
- Investopedia. "Negative Volume Index (NVI)." [Definition](https://www.investopedia.com/terms/n/nvi.asp)
- StockCharts. "Negative Volume Index (NVI)." [Technical Indicators](https://school.stockcharts.com/doku.php?id=technical_indicators:negative_volume_index)
- TradingView. "PineScript ta.nvi()." [Reference](https://www.tradingview.com/pine-script-reference/v5/#fun_ta{dot}nvi)
- TradingView. "PineScript ta.nvi()." [Reference](https://www.tradingview.com/pine-script-reference/v5/#fun_ta{dot}nvi)
+18 -1
View File
@@ -1,5 +1,22 @@
# OBV: On Balance Volume
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | None |
| **Outputs** | Single series (OBV) |
| **Output range** | Unbounded |
| **Warmup** | `> 2` bars |
### TL;DR
- On Balance Volume distills the relationship between price and volume into a single cumulative indicator.
- No configurable parameters; computation is stateless per bar.
- Output range: Unbounded.
- Requires `> 2` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Volume is the fuel that drives price." — Joseph Granville
On Balance Volume distills the relationship between price and volume into a single cumulative indicator. The premise is elegantly simple: volume flows into a security when it closes higher, and flows out when it closes lower. OBV tracks this flow as a running total, creating a momentum indicator that often leads price movements.
@@ -180,4 +197,4 @@ The slope of OBV indicates buying/selling intensity:
- Murphy, J. (1999). *Technical Analysis of the Financial Markets*. New York Institute of Finance.
- Investopedia. "On-Balance Volume (OBV)." [Definition](https://www.investopedia.com/terms/o/onbalancevolume.asp)
- StockCharts. "On Balance Volume (OBV)." [Technical Indicators](https://school.stockcharts.com/doku.php?id=technical_indicators:on_balance_volume_obv)
- TradingView. "PineScript ta.obv()." [Reference](https://www.tradingview.com/pine-script-reference/v5/#fun_ta{dot}obv)
- TradingView. "PineScript ta.obv()." [Reference](https://www.tradingview.com/pine-script-reference/v5/#fun_ta{dot}obv)
+18 -1
View File
@@ -1,5 +1,22 @@
# PVD: Price Volume Divergence
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `pricePeriod` (default 14), `volumePeriod` (default 14), `smoothingPeriod` (default 3) |
| **Outputs** | Single series (Pvd) |
| **Output range** | Unbounded |
| **Warmup** | 1 bar |
### TL;DR
- Price Volume Divergence (PVD) quantifies the disagreement between price momentum and volume momentum.
- Parameterized by `priceperiod` (default 14), `volumeperiod` (default 14), `smoothingperiod` (default 3).
- Output range: Unbounded.
- Requires 1 bar of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "When price and volume disagree, one of them is lying."
Price Volume Divergence (PVD) quantifies the disagreement between price momentum and volume momentum. The indicator identifies situations where price movement lacks volume confirmation—a classic warning signal that the current trend may be weakening or about to reverse.
@@ -184,4 +201,4 @@ PVD is a custom indicator not found in standard technical analysis libraries. Va
- Dow, C. (1900-1902). *Wall Street Journal* editorials on price-volume relationships.
- Murphy, J. J. (1999). *Technical Analysis of the Financial Markets*. New York Institute of Finance.
- Achelis, S. B. (2001). *Technical Analysis from A to Z*. McGraw-Hill.
- Achelis, S. B. (2001). *Technical Analysis from A to Z*. McGraw-Hill.
+18 -1
View File
@@ -1,5 +1,22 @@
# PVI: Positive Volume Index
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `startValue` (default 100.0) |
| **Outputs** | Single series (Pvi) |
| **Output range** | Unbounded |
| **Warmup** | `> 2` bars |
### TL;DR
- The Positive Volume Index tracks price changes exclusively on days when trading volume increases compared to the previous day.
- Parameterized by `startvalue` (default 100.0).
- Output range: Unbounded.
- Requires `> 2` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "High volume days reveal where retail traders swarm; smart money prefers the quiet." — Norman Fosback
The Positive Volume Index tracks price changes exclusively on days when trading volume increases compared to the previous day. The underlying theory: retail investors—the "uninformed crowd"—drive high-volume trading days, often reacting emotionally to news and price movements. Institutional investors prefer to operate during quieter periods to avoid moving markets.
@@ -178,4 +195,4 @@ The danger signal: **PVI rising while NVI falling**. Retail enthusiasm without i
- Fosback, N. (1976). *Stock Market Logic*. Institute for Econometric Research.
- Investopedia. "Positive Volume Index (PVI)." [Definition](https://www.investopedia.com/terms/p/pvi.asp)
- StockCharts. "Positive Volume Index (PVI)." [Technical Indicators](https://school.stockcharts.com/doku.php?id=technical_indicators:positive_volume_index)
- TradingView. "PineScript ta.pvi()." [Reference](https://www.tradingview.com/pine-script-reference/v5/#fun_ta{dot}pvi)
- TradingView. "PineScript ta.pvi()." [Reference](https://www.tradingview.com/pine-script-reference/v5/#fun_ta{dot}pvi)
+18 -1
View File
@@ -1,5 +1,22 @@
# PVO: Percentage Volume Oscillator
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `fastPeriod` (default 12), `slowPeriod` (default 26), `signalPeriod` (default 9) |
| **Outputs** | Multiple series (Signal, Histogram) |
| **Output range** | Unbounded |
| **Warmup** | `slowPeriod` bars |
### TL;DR
- The Percentage Volume Oscillator (PVO) measures the difference between two exponential moving averages of volume, expressed as a percentage of the ...
- Parameterized by `fastperiod` (default 12), `slowperiod` (default 26), `signalperiod` (default 9).
- Output range: Unbounded.
- Requires `slowPeriod` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Volume precedes price—PVO measures whether the market is inhaling or exhaling."
The Percentage Volume Oscillator (PVO) measures the difference between two exponential moving averages of volume, expressed as a percentage of the slower EMA. Essentially the MACD of volume, PVO identifies whether volume is expanding (accumulation) or contracting (distribution) relative to its recent history. This percentage normalization makes it comparable across instruments with vastly different volume profiles.
@@ -196,4 +213,4 @@ PVO's recursive EMA structure limits SIMD parallelization. The span-based `Calcu
- Murphy, J. (1999). *Technical Analysis of the Financial Markets*. New York Institute of Finance.
- Achelis, S. (2001). *Technical Analysis from A to Z*. McGraw-Hill.
- https://school.stockcharts.com/doku.php?id=technical_indicators:percentage_volume_oscillator_pvo
- https://github.com/mihakralj/pinescript/blob/main/indicators/volume/pvo.md
- https://github.com/mihakralj/pinescript/blob/main/indicators/volume/pvo.md
+18 -1
View File
@@ -1,5 +1,22 @@
# PVR: Price Volume Rank
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | None |
| **Outputs** | Single series (PVR) |
| **Output range** | Unbounded |
| **Warmup** | 1 bar |
### TL;DR
- Price Volume Rank distills the price-volume relationship into a simple categorical indicator.
- No configurable parameters; computation is stateless per bar.
- Output range: Unbounded.
- Requires 1 bar of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "The relationship between price and volume reveals the conviction behind market moves." — Technical Analysis Axiom
Price Volume Rank distills the price-volume relationship into a simple categorical indicator. Rather than producing a continuous value, PVR returns one of five discrete states (0-4) that classify the current bar's price and volume behavior relative to the previous bar. This creates an instant "market condition" snapshot.
@@ -187,4 +204,4 @@ Track PVR distribution over rolling windows:
- Arms, R. (1989). *Volume Cycles in the Stock Market*. Equis International.
- Blau, W. (1995). *Momentum, Direction, and Divergence*. Wiley.
- Elder, A. (1993). *Trading for a Living*. Wiley.
- Murphy, J. (1999). *Technical Analysis of the Financial Markets*. New York Institute of Finance.
- Murphy, J. (1999). *Technical Analysis of the Financial Markets*. New York Institute of Finance.
+18 -1
View File
@@ -1,5 +1,22 @@
# PVT: Price Volume Trend
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | None |
| **Outputs** | Single series (PVT) |
| **Output range** | Unbounded |
| **Warmup** | `> 2` bars |
### TL;DR
- Price Volume Trend refines the OBV concept by weighting volume according to the percentage price change rather than using an all-or-nothing approach.
- No configurable parameters; computation is stateless per bar.
- Output range: Unbounded.
- Requires `> 2` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Volume tells you about the intensity of price moves, but PVT tells you what volume is actually accomplishing." — Unknown
Price Volume Trend refines the OBV concept by weighting volume according to the percentage price change rather than using an all-or-nothing approach. Where OBV assigns the entire bar's volume to either buyers or sellers, PVT scales the volume contribution by the relative price movement—a 1% move adds only 1% of volume to the running total.
@@ -200,4 +217,4 @@ The default signal period is typically 14-21 bars.
- Murphy, J. (1999). *Technical Analysis of the Financial Markets*. New York Institute of Finance.
- Investopedia. "Price Volume Trend (PVT)." [Definition](https://www.investopedia.com/terms/p/pricevolumetrend.asp)
- StockCharts. "Price Volume Trend." [Technical Indicators](https://school.stockcharts.com/doku.php?id=technical_indicators:price_volume_trend_pvt)
- TradingView. "Volume Indicators." [Reference](https://www.tradingview.com/scripts/volume/)
- TradingView. "Volume Indicators." [Reference](https://www.tradingview.com/scripts/volume/)
+18 -1
View File
@@ -1,5 +1,22 @@
# TVI: Trade Volume Index
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `minTick` (default 0.125) |
| **Outputs** | Single series (Tvi) |
| **Output range** | Unbounded |
| **Warmup** | `> 2` bars |
### TL;DR
- Trade Volume Index refines the relationship between price and volume by introducing a threshold filter.
- Parameterized by `mintick` (default 0.125).
- Output range: Unbounded.
- Requires `> 2` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "The direction of money flow matters more than the magnitude of price change." — William Blau
Trade Volume Index refines the relationship between price and volume by introducing a threshold filter. Unlike OBV which responds to any price change, TVI only changes direction when price movement exceeds a minimum tick threshold. This "sticky direction" behavior filters out noise from insignificant price fluctuations, allowing the indicator to better capture genuine accumulation and distribution.
@@ -215,4 +232,4 @@ The minTick should generally match or exceed the instrument's minimum price incr
- Blau, W. (1995). *Momentum, Direction, and Divergence*. Wiley.
- Blau, W. (1993). "The Trade Volume Index." *Technical Analysis of Stocks & Commodities*.
- Achelis, S. (2001). *Technical Analysis from A to Z*. McGraw-Hill.
- TradingView. "PineScript TVI Implementation." Community Scripts.
- TradingView. "PineScript TVI Implementation." Community Scripts.
+18 -1
View File
@@ -1,5 +1,22 @@
# TWAP: Time Weighted Average Price
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `period` (default DefaultPeriod) |
| **Outputs** | Single series (TWAP) |
| **Output range** | Unbounded |
| **Warmup** | `> 1` bars |
### TL;DR
- Time Weighted Average Price (TWAP) calculates the average price over a period by giving equal weight to each price point, regardless of volume.
- Parameterized by `period` (default defaultperiod).
- Output range: Unbounded.
- Requires `> 1` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Equal time, equal weight—the simplest benchmark refuses to let any single moment dominate the conversation." — Anonymous Quant
Time Weighted Average Price (TWAP) calculates the average price over a period by giving equal weight to each price point, regardless of volume. Unlike VWAP which emphasizes high-volume periods, TWAP treats every moment as equally important. This makes it a pure temporal benchmark—ideal for evaluating execution quality when volume patterns could bias the analysis.
@@ -255,4 +272,4 @@ Target: Minimize absolute slippage to achieve the unbiased average price.
- Almgren, R., & Chriss, N. (2001). "Optimal Execution of Portfolio Transactions." *Journal of Risk*.
- Berkowitz, S., Logue, D., & Noser, E. (1988). "The Total Cost of Transactions on the NYSE." *Journal of Finance*.
- Kissell, R., & Glantz, M. (2003). *Optimal Trading Strategies*. AMACOM.
- TradingView. "PineScript TWAP Implementation." Community Scripts.
- TradingView. "PineScript TWAP Implementation." Community Scripts.
+18 -1
View File
@@ -1,5 +1,22 @@
# VA: Volume Accumulation
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | None |
| **Outputs** | Single series (VA) |
| **Output range** | Unbounded |
| **Warmup** | `> 1` bars |
### TL;DR
- Volume Accumulation (VA) measures the cumulative flow of volume weighted by where price closes relative to the bar's midpoint.
- No configurable parameters; computation is stateless per bar.
- Output range: Unbounded.
- Requires `> 1` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Volume tells you who's winning the argument between bulls and bears—VA keeps a running tally of the score." — Anonymous Trader
Volume Accumulation (VA) measures the cumulative flow of volume weighted by where price closes relative to the bar's midpoint. When price closes above the midpoint, volume is considered buying pressure; when below, selling pressure. The cumulative sum reveals the net directional conviction of market participants over time.
@@ -230,4 +247,4 @@ var smoothedVa = new Ema(5); // 5-period smoothing
- Williams, L. (1979). "How I Made One Million Dollars Last Year Trading Commodities." Windsor Books.
- Granville, J. (1976). "Granville's New Strategy of Daily Stock Market Timing." Prentice-Hall.
- Achelis, S. (2000). "Technical Analysis from A to Z." McGraw-Hill.
- TradingView. "PineScript Volume Accumulation." Community Reference.
- TradingView. "PineScript Volume Accumulation." Community Reference.
+18 -1
View File
@@ -1,5 +1,22 @@
# VF: Volume Force
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `period` (default 14) |
| **Outputs** | Single series (Vf) |
| **Output range** | Unbounded |
| **Warmup** | `> period` bars |
### TL;DR
- Volume Force (VF) quantifies the strength of volume behind price movements by multiplying price change by volume and applying EMA smoothing with wa...
- Parameterized by `period` (default 14).
- Output range: Unbounded.
- Requires `> period` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Price without volume is like a punch without body weight behind it—VF measures the momentum of conviction." — Anonymous Quant
Volume Force (VF) quantifies the strength of volume behind price movements by multiplying price change by volume and applying EMA smoothing with warmup compensation. The result is a momentum-style oscillator that distinguishes between genuine volume-backed moves and hollow price action.
@@ -280,4 +297,4 @@ VF occupies a middle ground: more responsive than OBV/CMF (not cumulative), smoo
- Elder, A. (1993). "Trading for a Living." John Wiley & Sons.
- Ehlers, J. (2001). "Rocket Science for Traders." John Wiley & Sons.
- Murphy, J. (1999). "Technical Analysis of the Financial Markets." New York Institute of Finance.
- TradingView. "PineScript Volume Force." Community Reference.
- TradingView. "PineScript Volume Force." Community Reference.
+18 -1
View File
@@ -1,5 +1,22 @@
# VO: Volume Oscillator
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `shortPeriod` (default 5), `longPeriod` (default 10), `signalPeriod` (default 10) |
| **Outputs** | Single series (Vo) |
| **Output range** | Unbounded |
| **Warmup** | 1 bar |
### TL;DR
- The Volume Oscillator (VO) measures the difference between two moving averages of volume, expressed as a percentage.
- Parameterized by `shortperiod` (default 5), `longperiod` (default 10), `signalperiod` (default 10).
- Output range: Unbounded.
- Requires 1 bar of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Volume tells us the conviction behind price moves—the oscillator reveals when that conviction is accelerating or fading."
The Volume Oscillator (VO) measures the difference between two moving averages of volume, expressed as a percentage. It helps identify changes in volume trends and potential momentum shifts by comparing short-term volume activity against longer-term volume norms.
@@ -167,4 +184,4 @@ With defaults (5, 10, 10): ~328 bytes per instance.
- Murphy, J. J. (1999). *Technical Analysis of the Financial Markets*. New York Institute of Finance.
- Achelis, S. B. (2001). *Technical Analysis from A to Z*. McGraw-Hill.
- PineScript Reference: vo.pine
- PineScript Reference: vo.pine
+18 -1
View File
@@ -1,5 +1,22 @@
# VROC: Volume Rate of Change
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `period` (default 12), `usePercent` (default true) |
| **Outputs** | Single series (Vroc) |
| **Output range** | Unbounded |
| **Warmup** | `> period + 1` bars |
### TL;DR
- VROC (Volume Rate of Change) measures the percentage or absolute change in volume over a specified lookback period.
- Parameterized by `period` (default 12), `usepercent` (default true).
- Output range: Unbounded.
- Requires `> period + 1` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Yesterday's volume is ancient history; what matters is how fast it's changing."
VROC (Volume Rate of Change) measures the percentage or absolute change in volume over a specified lookback period. Unlike moving average-based volume indicators that smooth data, VROC provides a direct comparison between current volume and historical volume, making it particularly useful for detecting sudden volume surges or contractions that may signal significant market events.
@@ -129,4 +146,4 @@ Per instance: `8 bytes × (period + 1)` for the ring buffer plus ~32 bytes for s
- Appel, G., & Hitschler, F. (1979). *Stock Market Trading Systems*. Dow Jones-Irwin.
- Murphy, J. J. (1999). *Technical Analysis of the Financial Markets*. New York Institute of Finance.
- Achelis, S. B. (2001). *Technical Analysis from A to Z*. McGraw-Hill.
- Achelis, S. B. (2001). *Technical Analysis from A to Z*. McGraw-Hill.
+18 -1
View File
@@ -1,5 +1,22 @@
# VWAD: Volume Weighted Accumulation/Distribution
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `period` (default 20) |
| **Outputs** | Single series (VWAD) |
| **Output range** | Unbounded |
| **Warmup** | `> period` bars |
### TL;DR
- Volume Weighted Accumulation/Distribution (VWAD) takes the classic ADL concept and asks a sharper question: not just "where did the close fall in t...
- Parameterized by `period` (default 20).
- Output range: Unbounded.
- Requires `> period` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "The market's memory isn't just about price—it's about who showed up with conviction."
Volume Weighted Accumulation/Distribution (VWAD) takes the classic ADL concept and asks a sharper question: not just "where did the close fall in the range?" but "how significant was this bar's volume compared to recent activity?"
@@ -176,4 +193,4 @@ VWAD is a proprietary indicator. Validation is performed against the PineScript
## References
- Chaikin, M. (1996). "Accumulation/Distribution Line." *Technical Analysis of Stocks & Commodities*.
- QuanTAlib. "Volume Weighted Accumulation/Distribution." [PineScript Reference](https://github.com/mihakralj/pinescript/blob/main/indicators/volume/vwad.md)
- QuanTAlib. "Volume Weighted Accumulation/Distribution." [PineScript Reference](https://github.com/mihakralj/pinescript/blob/main/indicators/volume/vwad.md)
+18 -1
View File
@@ -1,5 +1,22 @@
# VWAP: Volume Weighted Average Price
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `period` (default 0) |
| **Outputs** | Single series (VWAP) |
| **Output range** | Unbounded |
| **Warmup** | `> 1` bars |
### TL;DR
- VWAP (Volume Weighted Average Price) calculates the cumulative average price weighted by trading volume, typically reset at session boundaries.
- Parameterized by `period` (default 0).
- Output range: Unbounded.
- Requires `> 1` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "VWAP doesn't predict where price will go—it reveals where institutional money has already committed."
VWAP (Volume Weighted Average Price) calculates the cumulative average price weighted by trading volume, typically reset at session boundaries. It represents the true average price at which a security has traded throughout the period, giving more weight to prices where higher volume occurred. This implementation supports flexible period-based resets rather than traditional session-based anchoring.
@@ -167,4 +184,4 @@ VWAP implementations vary primarily in reset behavior. This implementation uses
- Berkowitz, S., Logue, D., & Noser, E. (1988). "The Total Cost of Transactions on the NYSE." *Journal of Finance*.
- Madhavan, A. (2002). "VWAP Strategies." *Trading*, Spring 2002.
- Kissell, R. (2006). "The Science of Algorithmic Trading and Portfolio Management." *Academic Press*.
- Kissell, R. (2006). "The Science of Algorithmic Trading and Portfolio Management." *Academic Press*.
+18 -1
View File
@@ -1,5 +1,22 @@
# VWMA: Volume Weighted Moving Average
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | `period` (default 20) |
| **Outputs** | Single series (VWMA) |
| **Output range** | Unbounded |
| **Warmup** | `> period` bars |
### TL;DR
- VWMA (Volume Weighted Moving Average) calculates a moving average where each price is weighted by its corresponding volume over a specified lookbac...
- Parameterized by `period` (default 20).
- Output range: Unbounded.
- Requires `> period` bars of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "VWMA reveals where the smart money traded—not just where price went, but where conviction backed the moves."
VWMA (Volume Weighted Moving Average) calculates a moving average where each price is weighted by its corresponding volume over a specified lookback period. Unlike VWAP which accumulates from a reset point, VWMA uses a sliding window that continuously drops old values, making it a true moving average. Bars with higher volume contribute more to the average, surfacing price levels where institutional activity concentrated.
@@ -165,4 +182,4 @@ For batch calculation from scratch, SIMD can parallelize:
- Arms, R. (1989). "Volume Cycles in the Stock Market." Equis International.
- Achelis, S. (2000). "Technical Analysis from A to Z." McGraw-Hill.
- TradingView. "Pine Script VWMA Reference." [tradingview.com](https://www.tradingview.com/pine-script-reference/v5/#fun_ta.vwma)
- TradingView. "Pine Script VWMA Reference." [tradingview.com](https://www.tradingview.com/pine-script-reference/v5/#fun_ta.vwma)
+18 -1
View File
@@ -1,5 +1,22 @@
# WAD: Williams Accumulation/Distribution
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Volume |
| **Inputs** | OHLCV bar (TBar) |
| **Parameters** | None |
| **Outputs** | Single series (WAD) |
| **Output range** | Unbounded |
| **Warmup** | 1 bar |
### TL;DR
- Williams Accumulation/Distribution (WAD) is Larry Williams' contribution to the volume analysis toolkit.
- No configurable parameters; computation is stateless per bar.
- Output range: Unbounded.
- Requires 1 bar of warmup before first valid output (IsHot = true).
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
> "Volume is the fuel that drives price." — Larry Williams
Williams Accumulation/Distribution (WAD) is Larry Williams' contribution to the volume analysis toolkit. Unlike the standard Accumulation/Distribution Line that uses the close's position within the day's range, WAD incorporates **True Range** concepts. This gives it a different perspective on buying and selling pressure.
@@ -124,4 +141,4 @@ O(1) cumulative. No window, no smoothing. The conditional branch (up day vs down
## References
- Williams, L. (1979). "How I Made One Million Dollars... Last Year... Trading Commodities." Windsor Books.
- https://school.stockcharts.com/doku.php?id=technical_indicators:williams_ad
- https://school.stockcharts.com/doku.php?id=technical_indicators:williams_ad