Trading Articles

Modified Volume-Price Trend Indicator By David G. Hawkins

Looking for an edge? Use this indicator to detect what the insiders are doing while they are doing it. Using only price and volume data, technicians try to discern what the “smart money” is doing in a stock. Several technical analysis indicators are designed for this. Accumulation/distribution (AD) is one such, and in turn, AD is split into two different indicators, inter-day and intraday. Interday compares the closes and opens of different days, while intraday compares the close of each day to the open of the same day. In this article, we are dealing only with the interday form. In particular, there is one kind of behavior we’re seeking to model.

Here’s the scenario: A major player in a stock wants to buy a large stake or liquidate one. So as not to disrupt the price, the broker builds into (or plays out of) the position slowly. When acquiring a stake, the broker makes many small buys over a few days. Then as the price starts to move up, the broker lays off, allowing the price to drift down. Then the broker buys some more, then lays off again, keeping this up for weeks or months until the desired stake has been acquired. If done well, this can be accomplished during an overall down-trend. Similarly, if the player wants to liquidate a stake, the broker sells, then pauses, then sells and pauses some more until the whole stake is gone. This can happen during an up-trend. Acquiring a position this way is accumulation, while selling it is distribution.

There are many reasons for making such moves. For example, a group may be planning a takeover of a company and needs to build a 5% ownership position in the first part of its campaign. Or a major stakeholder, because of its other business activities, may know the company’s business out-look so well that it’s expecting a negative future for the company and wants out of its stake. These players, of course, don’t want to publicize what they’re doing. But if technicians could detect what they’re doing, while they’re doing it, this would be a strong leading indicator for the stock. And that’s our goal for interday accumulation/distribution analysis.


To detect this kind of AD, the cumulative volume indicator was introduced in the mid-1940s. In 1963, Joseph Granville popularized it Granville’s New Key To Stock Market Profits, renaming it  the on-balance volume (OBV). The deliberate actions of the broker during AD produce a distinctive disturbance to volume data. During accumulation, on the days the broker is buying, price will usually move up on significantly larger volume. When not buying, the price will drift lower on lower volume. The opposite happens if the investor is distributing.

The OBV attempts to reveal this disturbance to the volume. For the first price bar in the data series (daily bars), the OBV is defined to be the volume of that day. On the next bar, if the close is above the first day, then that day’s volume is added to the previous day, but it is subtracted if the close is lower (and there’s no change if the close is unchanged). For each succeeding day, the volume is added to or subtracted from the previous day’s OBV to get the current day’s value. So the formula for day i is:

OBVi = OBVi-1 + Vi*(Pi-Pi-1)/|Pi-Pi-1|

Where: V = Volume, P = Closing price

If there is no AD going on and the stock is in an uptrend, the average volume on up days is typically larger than on down days. Similarly, during a downtrend, the average volume on down days is larger than on up days. This is the normal behavior of a stock. In these cases, the OBV will tend to follow the stock’s trend. But when AD is ongoing, it disrupts this normal relationship. If accumulation is happening during a downtrend, there usually is larger volume on average during up days. And if distribution is in force during an uptrend, there will be higher average volume on down days, just the opposite of the normal behavior. The OBV will tend to move up during  accumulation and down during distribution, forming a divergence from price. It is this divergence between the price and the OBV that signals AD.


On each succeeding price bar, that bar’s entire volume is added to or subtracted from the previous value of the OBV, even if the price change were very small. This tends to make the OBv more volatile than the price. Such volatility could obscure an AD or imply one when there is none. Figure 1 is Ensco International (ESV), with the OBV plotted on the same pane as price but on a different scale (left side). I’ve put a scale factor onto the OBV so its numerical values are not large. Note the large day-to-day choppiness in the OBV, due to each day’s total volume added to or subtracted from the OBV. Look at the July to September 2008 period; is that a positive divergence indicating accumulation, or is it just the volatility of the OBV? Since the price subsequently continued to go down for many months, the OBV’s behavior was more likely just its volatility, but while it was happening, that was not at all clear.

Modified Volume-Price Trend Indicator 01

FIGURE 1: OBV INDICATOR, OVERLAID ON CHART OF ENSCO INTL. (ESV). Note the volatility of the OBV compared to the stock.


An improvement to the OBV, called the volume-price trend indicator (VPT), was introduced in 1972 by David L. Markstein. The basic idea behind VPT is, instead of adding/subtracting all of each day’s volume to the indicator, you add/subtract a fraction of the day’s volume proportional to the price change. Thus, the formula for day i is:

VPTi = VPTi-1 + Vi*(Pi-Pi-1)/Pi-1

Where: V = Volume , P = Close

Each day’s change in the VPT is proportional to both the day’s volume and the fractional price change. Figure 2 shows the VPT instead of the OBV. Note that the day-to-day choppiness of the OBV is gone. Looking at the July to September 2008 period, there’s no divergence from the price curve, meaning there was no AD there.

Modified Volume-Price Trend Indicator 02

FIGURE 2: VPT INDICATOR, OVERLAID ON ESV. Note the reduced volatility of the indicator, and the absence of a false positive divergence.


Although the VPT is a significant improvement over the OBV, it still doesn’t closely follow price in the absence of an AD. The closer we can make it follow the price bars, the more sensitive it will be at detecting an AD when one occurs. Let’s try using some intermediate value of each bar’s prices instead of the close. Figure 3 is Figure 2 modified by using the typical price, (O + H + L + C)/4 (the mean would have produced a similar curve). Clearly, this is an improvement.

Modified Volume-Price Trend Indicator 03

FIGURE 3: CALCULATING VPT. The VPT is calculated with the typical price instead of the close. It lies even closer to the stock price trace.


Before going on to another improvement to the VPT, let’s look at an example of the VPT’s power in detecting an AD, one that made me a lot of money. From mid- 1996 into late 1997, I had a position in ILC Technology (ILCT). In Figure 4, superimposed on the chart of the daily bars of ILCT, are the OBV (blue) and the VPT (orange), both calculated with mean prices instead of closes. In July 1996, ILCT was moving into a downtrend. Yet the VPT turned flat, moving sideways as the price sharply declined, and then after a few months, moving strongly upward as the price continued downtrend. This is a significant divergence from the price. The OBV also showed a divergence, but not definitively until about September.

Modified Volume-Price Trend Indicator 04

FIGURE 4: VPT (ORANGE) AND OBV (BLUE) OVERLAID ON CHART OF ILCT. Note the positive divergence the VPT formed in early July 1996.

My stop-loss discipline would have taken me out of the stock in July, but because the VPT’s divergence was so strong, I stayed with it. A similar situation occurred in February 1997, and again I decided to stay with it. Then, one day in late 1997, the news broke that an investor group was proposing a buyout of ILC Technology at a price significantly above where it was trading. In the text of the company’s press release, they revealed that they had started accumulating their 5% position in July 1996! So the modified VPT identified the beginning of an accumulation campaign, while the OBV’s behavior was not at all clear at that time. I sold after I read the press release, making a good profit.


Modified Volume-Price Trend Indicator 05

FIGURE 5: LOG PLOTTING. Here the VPT, now called MVPT, is overlaid on the log-scale chart of the stock, while the MVPT scale is linear. This is a very close fit.

Here’s the final improvement to the VPT. In Figure 5, there’s only one change from Figure 4 — the price plot is on a log-scale while keeping the VPT’s plot linear. This is good! The VPT’s plot is now so close to the price that had there been any AD present, it would have shown up as a divergence. From here on, the VPT is being called MVPT, for modified volume price trend. (The code for the MVPT can be seen in the below.)


Level:=Input(“Level”,-1000,10000,0); Scale:=Input(“Scale”,.00001,100000,1); rV:=V/50000;


Suggested Books and Courses About Trading With Indicators

Of course, one example does not a rule make. Choosing log-scale for price and linear for the MVPT may seem like an ad hoc thing to do. However, for almost all examples I’ve seen over many years, this does work. To investigate the validity of this, in Figure 6, a chart of AOL during its bubble uptrend from April 1998 to July 1999, I’ve replaced each volume datum with “1.” Both traces are on linear scales. Since variations due to volume fluctuations are gone, you would expect that the chart of the MVPT will be exactly on the price plot.

Modified Volume-Price Trend Indicator 06

FIGURE 6: PLOTTING ON A LINEAR SCALE. The MVPT with no volume data is overlaid on the chart of AOL, both on linear scales. Even though the highs and lows are matched, the curves are very far apart.

However, as you can see, the MVPT is far from the price almost everywhere. Now look at what happens in Figure 7, when the only change is that the price scale is now logarithmic. This is a virtually perfect match. There is a mathematical proof of why these two are so similar, which I’m not giving here, and this chart is simply an illustration of it:

Summary of the MVPT methodology

  1. In the formula for the VPT, use the typical price instead of the close.
  2. Plot the price on a log-scale and overlay the plot of the MVPT on a linear scale.
  3. Adjust the level and scale of the MVPT plot so it coincides with the price plot as much as possible.
  4. Look for divergences between the two plots.
  5. The direction of the MVPT during a divergence is the leading indicator of the price.
Modified Volume-Price Trend Indicator 07

FIGURE 7: A PERFECT MATCH? This is the same as Figure 6, except that the stock data is plotted on a log scale, which results in an almost perfect match.

Figure 8 is the South African gold mining company, DRDGOLD Ltd. (DROOY), from February 2008 through March 2009. The curves are matched from late February through early May 2008. The period from mid-September through late November 2008 is distinctive. The price plot takes on an appearance different from what it was before and, most important, the MVPT is showing a definitive upward divergence. But the OBV is not showing any divergence. In late November, a gap up started a major uptrend. Had you been following this stock, the MVPT’s divergence would have been clear to you by mid-November, and the gap up breakout would have been your entry signal.

Modified Volume-Price Trend Indicator 08

FIGURE 8: MVPT VS. PRICE. The MVPT showed a significant upward divergence from the price plot in the autumn of 2008, foretelling the major new uptrend.

There was no significant company news during this divergence, and no subsequent takeover announcement or similar news. But MVPT’s behavior from September through November tells us that one or more entities were accumulating the stock. We don’t know who they were, what they knew, or why they were doing what they were doing. Obviously, they knew something that the rest of us didn’t. The MVPT is sensitive enough to have detected this accumulation, whereas the OBV completely missed it.

Modified Volume-Price Trend Indicator 09

FIGURE 9: AN EARLY INDICATION. In early 2009, the MVPT showed a huge upward divergence from the price of BCON, just before the start of a new uptrend.

Figure 9 shows the small-cap alternative energy company, Beacon Power (BCON), from October 2008 through July 2009. The upward divergence of the MVPT in the first quarter of 2009 is striking, foretelling the new uptrend in the stock that started in March, whereas again the OBV showed no divergence.


Since the MVPT is proportional to volume and price change, a day with a large price gap on huge volume will put an enormous jump into the chart of the MVPT. Thereafter, the MVPT’s trace usually proceeds in a relatively smooth fashion. It’s as if someone had imposed large-scale changes onto the chart of this indicator. Some technicians may be tempted to smooth out these spikes, but any effort to do so would wash out the indicator’s sensitivity to divergences. It would be more useful to understand these days as discontinuities in the indicator and not attempt to read the indicator across such a discontinuity. You should fit the MVPT to the price in a region between two discontinuities and only look for divergences within such a region. Moving beyond a discontinuity will require new level and scale factors to fit the indicator to the next region.

Modified Volume-Price Trend Indicator 10

FIGURE 10: DISCONTINUITIES. The MVPT level and scale were adjusted to match the price chart of MCK prior to the first discontinuity.

Figures 10 and 11 are both of the same ticker (MCK) in the same time period. The vertical red dotted lines mark three discontinuities, dividing the chart into three regions, plus the beginning of a fourth. The MVPT can only be fit to the price curve within a region. The first chart fits to the first region and the second to the second. Different level and scale factors would be needed to fit to the third or fourth regions.

Modified Volume-Price Trend Indicator 11

FIGURE 11: PRICE CURVE-FITTING WITHIN A REGION. The MVPT level and scale were adjusted to match the price chart of MCK between the first and second discontinuities.


I’ve been using this indicator for years and have many examples of divergences as far back as the mid- 1990s. In preparing this article, I wanted to use recent examples but was surprised to find that there are very few good ones in the last two years. Of course, these recent times in the market have been extraordinary, as we experienced a crash of multigenerational proportions. What may be happening is that the force of the overall market is swamping individual variations between stocks, making most AD divergences hard to see. Either that, or the market’s behavior is scaring off most people who would normally be executing ADs. But this too shall pass. The market won’t stay in permanent turmoil. Eventually, groups will start initiating ADs again, and individual stock variations will become more visible. Technicians will be glad they have the MVPT to detect the AD divergences when they do finally happen.

David Hawkins holds two degrees in physics. He has worked in teaching, engineering, and sales & marketing. He is a long-time trader in and a student of the markets, and is now an individual investor, living in Newton, MA.


About Editorial Team

The dedicated editorial team at Sacred Traders has a passion for educating traders of all levels. With decades of combined experience trading stocks, forex, commodities, futures, and options, they provide insightful analysis and actionable advice to help readers succeed in the financial markets. The editorial team includes experts in technical and fundamental analysis. They consistently monitor economic reports, earnings announcements, political developments, and other factors that can impact asset prices. By synthesizing this information into trading alerts, educational resources, and market commentary, the Sacred Traders team provides traders with the essential knowledge needed to thrive across asset classes.

Leave a Reply

Your email address will not be published. Required fields are marked *