StockFetcher Forums · General Discussion · Volume Price Confirmation Indicator (VPCI)<< >>Post Follow-up
mystiq
650 posts
msg #71046
Ignore mystiq
1/29/2009 4:35:36 AM

TRADESTATION: Volume Price Confirmation Indicator (VPCI)
Buff Dormeier's article in this issue, "Between Price And Volume," describes calculation of the volume price confirmation indicator (VPCI) and suggests a strategy for trading with it.

The strategy consists of a moving average convergence-divergence (MACD) signal, which is confirmed based on readings of the VPCI. The article then compares the VPCI's value as a confirming indicator with on-balance volume (OBV) and average directional index (ADX). To perform this test, a strategy was created in EasyLanguage with "on-off" input switches, allowing the trader to select the desired confirming indicator.

Code for a VPCI indicator and strategy are given here. The indicator plots the raw and smoothed VPCI. The strategy uses Macd to generate trading signals, but it trades only if the selected confirming indicator agrees.

To download the code, go to the Support Center at TradeStation.com and search for the file "VPCI.Eld."

FIGURE 1: TRADESTATION, VPCI RADARSCREEN WINDOW AND STRATEGY. The left-hand window shows the VPCI statistics in RadarScreen. The right-hand window shows the VPCI strategy applied to a chart. Below the price chart is the VCPI indicator (yellow line).
TradeStation does not endorse or recommend any particular strategy.

Indicator: VPCI
inputs:
Price( Close ),
Length1( 5 ),
Length2( 20 ),
VPCIAvgLen( 20 ) ;
variables:
VolValue( 0 ),
VolumeSum1( 0 ),
VolumeSum2( 0 ),
VWMA1( 0 ),
VWMA2( 0 ),
VP( 0 ),
VPR( 0 ),
VM( 0 ),
VPCI( 0 ),
AvgVPCI( 0 ) ;
if BarType >= 2 then { not tick/minute data }
VolValue = Volume
else
VolValue = Ticks ;

VolumeSum1 = Summation( VolValue, Length1 ) ;
if VolumeSum1 > 0 then
VWMA1 = Summation( Price * VolValue , Length1 ) / VolumeSum1 ;
VolumeSum2 = Summation( VolValue, Length2 ) ;
if VolumeSum2 > 0 then
VWMA2 = Summation( Price * VolValue , Length2 ) / VolumeSum2 ;
VP = VWMA2 - Average( Price, Length2 ) ;
VPR = VWMA1 / Average( Low, Length1 ) ;
VM = Average( VolValue, Length1 ) / Average( VolValue, Length2 ) ;
VPCI = VP * VPR * VM ;
AvgVPCI = Average( VPCI, VPCIAvgLen ) ;
Plot1( VPCI, "VPCI" ) ;
Plot2( AvgVPCI, "VPCISmooth" ) ;
Plot3( 0, "Zero" ) ;
Strategy: VPCI
inputs:
Price( Close ),
Length1( 5 ),
Length2( 20 ),
VPCIAvgLen( 20 ),
MACD_FastLength( 12 ),
MACD_SlowLength( 26 ),
MACDLength( 9 ),
OBVAvgLength( 20 ),
ADX_Len( 7 ),
ADX_Threshold( 20 ),
UseVPCI( 1 ), { 1 means "use for confirmation",
0 means "don't use" }
UseADX ( 0 ),
UseOBV ( 0 ) ;
variables:
MACDValue( 0 ),
AvgMACD( 0 ),
ADXValue( 0 ),
OBVValue( 0 ),
AvgOBV( 0 ),
VolValue( 0 ),
VolumeSum1( 0 ),
VolumeSum2( 0 ),
VWMA1( 0 ),
VWMA2( 0 ),
VP( 0 ),
VPR( 0 ),
VM( 0 ),
VPCI( 0 ),
AvgVPCI( 0 ) ;
MACDValue = MACD( Close, MACD_FastLength, MACD_SlowLength ) ;
AvgMACD = Average( MACDValue, MACDLength ) ;
ADXValue = ADX( ADX_Len ) ;
OBVValue = OBV ;
AvgOBV = Average( OBVValue, OBVAvgLength ) ;
if BarType >= 2 then { not tick/minute data }
VolValue = Volume
else
VolValue = Ticks ;

VolumeSum1 = Summation( VolValue, Length1 ) ;
if VolumeSum1 > 0 then
VWMA1 = Summation( Price * VolValue , Length1 ) / VolumeSum1 ;
VolumeSum2 = Summation( VolValue, Length2 ) ;
if VolumeSum2 > 0 then
VWMA2 = Summation( Price * VolValue , Length2 ) / VolumeSum2 ;
VP = VWMA2 - Average( Price, Length2 ) ;
VPR = VWMA1 / Average( Low, Length1 ) ;
VM = Average( VolValue, Length1 ) / Average( VolValue, Length2 ) ;
VPCI = VP * VPR * VM ;
AvgVPCI = Average( VPCI, VPCIAvgLen ) ;
if MACDValue crosses over AvgMACD
and ( ( VPCI > AvgVPCI and UseVPCI = 1 ) or UseVPCI <> 1 )
and ( ( ADXValue < ADX_Threshold and UseADX = 1 ) or
UseADX <> 1 )
and ( ( OBVValue > AvgOBV and UseOBV = 1 ) or UseOBV <> 1 )
then
Buy next bar at market
else if MACDValue crosses under AvgMACD
and ( ( VPCI < AvgVPCI and UseVPCI = 1 ) or
UseVPCI <> 1 )
and ( ( ADXValue < ADX_Threshold and UseADX = 1 ) or
UseADX <> 1 )
and ( ( OBVValue < AvgOBV and UseOBV = 1 ) or
UseOBV <> 1 )
then
SellShort next bar at market ;

--Mark Mills
TradeStation Securities, Inc.
A wholly-owned subsidiary of TradeStation Group, Inc.
www.TradeStation.com
===============================> can anyone code this for StockFetcher?




mystiq
650 posts
msg #71047
Ignore mystiq
1/29/2009 4:39:42 AM

Between Price And Volume
by Buff Pelz Dormeier, CMT

--------------------------------------------------------------------------------

When securities change hands on a securities auction market, the volume of shares bought always matches the volume sold. When the price rises, the upward movement reflects that demand exceeds supply or buyers are in control. Likewise, when the price falls it implies that supply exceeds demand or that sellers are in control. Over time, these trends of supply and demand form accumulation and distribution patterns. What if there were a way to look deep inside price and volume trends to find out if current prices were supported by volume? This is the objective of the volume price confirmation indicator (VPCI), a methodology that measures the intrinsic relationship between price and volume.

VOLUME PRICE CONFIRMATION INDICATOR

The VPCI exposes the relationship between the prevailing price trend and volume, as either confirming or contradicting the price trend. This gives an indication of possible impending price movements. In this article I will discuss the derivation and components of the VPCI and explain how to use it. I will also review comprehensive testing of the VPCI and present further applications using the indicator.

In exchange markets, price results from an agreement between buyers and sellers despite their different appraisals of the exchanged item's value. One opinion may have legitimate fundamental grounds for evaluation, while the other may be pure nonsense. To the market, however, both are equal. Price represents the convictions, emotions, and volition of investors. It is not a constant, but rather changed and influenced over time by information, opinions, and emotions.

Market volume represents the number of shares traded over a given period. It is a measurement of the participation, enthusiasm, and interest in a given security. Think of volume as the force that drives the market. Volume substantiates, energizes, and empowers price. When volume increases, it confirms price direction; when volume decreases, it contradicts price direction. In theory, increases in volume generally precede significant price movements.

This tenet of technical analysis, that volume precedes price, has been repeated as a mantra since the days of Charles Dow. Within these two independently derived variables, price and volume, exists an intrinsic relationship. When examined together, price and volume give indications of supply and demand that neither could provide independently.








tomm1111
198 posts
msg #81707
Ignore tomm1111
modified
10/24/2009 11:18:01 PM

Here is the VPCI and a 5 period moving average. I used the periods (5 and 20 day) listed above. I found 2 other references to the VPCI on the forum. One is incorrect and this one appears to be correct with different periods. I zoomed out to 1 year to show the "V's" described in the article.

The indicator won an award in 2007. The link below explains it's use.

VPCI PDF

Enjoy.

Fetcher[
/* Volume Price Confirmation Indicator (VPCI) */
set{var,vma(20) - ma(20)}
set{var1,vma(5) / ma(5)}
set{var2,cma(volume,5) / cma(volume,20)}
set{var3,var * var1}
set{vpci,var2 * var3}

draw vpci
draw cma(vpci,5) on plot vpci

add column vpci

show stocks where close above 1
and volume above 100000
and chart-time is 1 year
]



StockFetcher Forums · General Discussion · Volume Price Confirmation Indicator (VPCI)<< >>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 2016 - 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