Investment Studio > Expressions > Functions > Indicator > PVT
float array[*][2] pvt(float array[*][3] dcv, float start_pvt = 0)
Returns a two-column array containing dates (first column) and corresponding Price Volume Trend (PVT) values (second column).
dcv is a three-column array containing daily price quotes. Each row is structured as follows:
| Column # | Content |
| 1 | The quote date. |
| 2 | The day's close (last traded price). |
| 3 | The day's volume (number of traded shares). |
The array is assumed to be time-sorted, with earlier dates preceding later dates.
Automatic type conversion allows the use of date strings as arguments instead of explicit date values.
start_pvt is the value returned for the start date (first input date), and the start value for the computation of all subsequent output values. If omitted, it defaults to 0.
PVT is defined as a cumulative sum:
| close - yesterday's close | ||
| PVT | = yesterday's PVT + volume | ¾¾¾¾¾¾¾¾¾¾¾ |
| yesterday's close |
start_pvt therefore acts as an overall offset, and is important only if PVT values need to be compared across different assets or date ranges.
Interpretation
PVT is a cumulative measure of value flows. Each day's volume is multiplied by the relative price change from the previous trading day and added to the running total. When PVT moves up, most new volume is assumed to be associated with upward price movement (accumulation, indicating a demand-driven market); when PVT moves down, most new volume is assumed to be associated with downward price movement (distribution, indicating a supply-driven market).
Note that this is not a strict result. PVT is mainly useful in the absence of tick-by-tick data showing the price and number of shares traded in each transaction over the course of the trading day (and hence the actual net flow in the asset) or at least of actual upside/downside volume data. See the closely related ACD and OBV for alternate guesstimates.
Technicians use PVT to validate price trends. A divergence (the PVT turning down in an upward price trend, or the PVT turning up in a downward price trend) is considered a warning of an impending trend reversal. Conversely, a price trend reversal is looked upon with suspicion until it's confirmed by a PVT trend reversal.
Note that the absolute value of the PVT is arbitrary, since the PVT is a running sum which can start anywhere and at any level. It therefore makes no sense to look for (say) zero crossings in a PVT chart, like it might do in a chart of EFI (which is not cumulative). What matters in PVT charts is slope.
For a real life example, consider Apple (NASD:AAPL) from June 1, 2001 to December 31, 2001:

The top chart shows daily prices in standard candlestick form; the middle chart shows daily volume; the bottom chart shows PVT (black) and its 3 day EMA (solid blue). Compare the bottom chart with the corresponding EFI and OBV charts.
Example
Assuming standard US date format settings,
=pvt({{"1/1/1990", 98, 1000}, {"1/2/1990", 86, 858}})
returns {{32874, 0}, {32875, -105.061224489796}}. 32874 is the date code for 1/1/1990; 0 is the default start_pvt. 32875 is the date code for 1/2/1990; -105.06... = 858 * (86 - 98) / 98 is the PVT on that date.