StockFetcher Forums · Filter Exchange · The Volume Positive-Negative (VPN) Indicator<< >>Post Follow-up
V1ct0rChan
1 posts
msg #156697
Ignore V1ct0rChan
modified
4/27/2021 11:17:07 PM

The idea and calculations for the Volume Positive Negative (VPN) indicator were created by Markos Katsanos. Markos wrote about the indicator in the article Detecting High-Volume Breakouts, published in Technical Analysis of Stocks & Commodities April, 2021 (Vol. 39, Issue 5).

The goal of the VPN indicator is to detect breakouts using only volume. The basic idea is to compare volume on up days versus volume on down days. The indicator can oscillate between the range of -100 and 100. Values between 0 and 20 are generally considered bullish, negative are bearish.

When the plotted VPN crosses over what Markos refers to as the critical value, that may indicate a high volume breakout. The critical value can be adjusted between 0 to 20, 10 is the default,

Volume Positive Negative Calculation (VPN)
VPN = (VP - VN) / MAV / Period * 100

VP - sum of positive volume
VN - sum of negative volume
MAV - moving average of volume

Volume is considered positive when the average price is higher than the previous day's price by more than .1 of the ATR (average true range). It is the same for negative volume.

Drawing the Indicator on a watchlist:

Stock
Fetcher[Set{DirVol, Volume * Sign(Day Change)} // Separating positive and negative volumes
Set{FilVol, DirVol * Count(ABS(PP - PP one day ago) > ATR(30)/10, 1)} // Filtering out moves smaller than 1/10 of the Average True Range
Set{VolPN, CMA(FilVol,30) / CMA(Volume,30)} // Dividing the sum by the average volume
Draw CEMA(VolPN,3) // Taking 3-day EMA
Do not draw VolPN
Draw VolPN line at 0.1
Draw VolPN line at -0.1
Chart-time is 1 year
Apply to symlist(PYPL, CRWD, FND, DE) // Sample list
]



Practical filtering example:

Stock
Fetcher[Set{DirVol, Volume * Sign(Day Change)} // Separating positive and negative volumes
Set{FilVol, DirVol * Count(ABS(PP - PP one day ago) > ATR(30)/10, 1)} // Filtering out moves smaller than 1/10 of the Average True Range
Set{VolPN, CMA(FilVol,30) / CMA(Volume,30)} // Dividing the sum by the average volume
CEMA(VolPN,3) crossed above 0.1 in last 5 days // Taking 3-day EMA and seeking any crossing above 0.1
Do not draw VolPN
Draw VolPN line at -0.1
Chart-time is 1 year
]



Cheese
1,374 posts
msg #156698
Ignore Cheese
4/28/2021 9:55:48 AM

@ V1ct0rChan
Thank you, and welcome to Stockfetcher !

miketranz
922 posts
msg #156704
Ignore miketranz
modified
4/28/2021 8:03:02 PM

Fetcher[CLOSE between .10 and 40
VOLUME ABOVE 2000000 HIGH REACHED NEW 20 DAY HIGH
VOLUME 100 PERCENT ABOVE VOLUME 1 DAY AGO
and draw ema (30) draw ma (20) draw ma (10)
]

Try this one...

snappyfrog
501 posts
msg #156705
Ignore snappyfrog
modified
4/28/2021 9:28:13 PM

Fixed "dram ma(20)"

Fetcher[
CLOSE between .10 and 40
VOLUME ABOVE 2000000 HIGH REACHED NEW 20 DAY HIGH
VOLUME 100 PERCENT ABOVE VOLUME 1 DAY AGO
and draw ema (30) draw ma (20) draw ma (10)
]



miketranz
922 posts
msg #156706
Ignore miketranz
4/28/2021 9:44:55 PM

Thanks...

snappyfrog
501 posts
msg #156708
Ignore snappyfrog
4/29/2021 8:54:26 AM

This tends to look a lot like the PVI indicator, just put into a range oscillator.

Here is a version using a 10 day moving average of the PVI indicator.

Fetcher[
Set{DirVol, Volume * Sign(Day Change)} // Separating positive and negative volumes
Set{FilVol, DirVol * Count(ABS(PP - PP one day ago) > ATR(30)/10, 1)} // Filtering out moves smaller than 1/10 of the Average True Range
Set{VolPN, CMA(FilVol,30) / CMA(Volume,30)} // Dividing the sum by the average volume
CEMA(VolPN,3) crossed above 0.1 in last 5 days // Taking 3-day EMA and seeking any crossing above 0.1
Do not draw VolPN
Draw VolPN line at -0.1
Chart-time is 1 year
draw cma (pvi,10)
do not draw pvi
]



StockFetcher Forums · Filter Exchange · The Volume Positive-Negative (VPN) Indicator<< >>Post Follow-up

*** Disclaimer *** StockFetcher.com does not endorse or suggest any of the securities which are returned in any of the searches or filters. They are provided purely for informational and research purposes. StockFetcher.com does not recommend particular securities. StockFetcher.com, Vestyl Software, L.L.C. and involved content providers shall not be liable for any errors or delays in the content, or for any actions taken based on the content.


Copyright 2022 - Vestyl Software L.L.C.Terms of Service | License | Questions or comments? Contact Us
EOD Data sources: DDFPlus & CSI Data Quotes delayed during active market hours. Delay times are at least 15 mins for NASDAQ, 20 mins for NYSE and Amex. Delayed intraday data provided by DDFPlus


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.