Volume Price Confirmation Indicator (VPCI) for ThinkorSwim

BenTen

Administrative
Staff member
Staff
VIP
VPCI or known as Volume Price Confirmation Indicator was developed by Buff Dormeier. It plots the relationship between the price trend and the volume.

hQFtFM4.png


You may find this excerpt interesting (full article):

> Fundamentally, the VPCI reveals the proportional imbalances between price trends and volume-adjusted price trends. An uptrend with increasing volume is a market characterized by greed supported by the fuel needed to grow. An uptrend without volume is complacent and reveals greed deprived of the fuel needed to sustain itself. Investors without the influx of other investors ( volume ) will eventually lose interest and the uptrend should eventually breakdown. A falling price trend reveals a market driven by fear. A falling price trend without volume reveals apathy, fear without increasing energy. Unlike greed, fear is self-sustaining, and may endure for long time periods without increasing fuel or energy. Adding energy to fear can be likened to adding fuel to a fire and is generally bearish until the VPCI reverses. In such cases, weak-minded investor's, overcome by fear, are becoming irrationally fearful until the selling climax reaches a state of maximum homogeneity. At this point, ownership held by weak investor’s has been purged, producing a type of heat death capitulation. These occurrences may be visualized by the VPCI falling below the lower standard deviation of a Bollinger Band of the VPCI, and then rising above the lower band, and forming a 'V' bottom.

thinkScript Code

Per author: the shortTerm/longTerm lengths need tuning for your instrument. The default 5/20 is not optimal
Rich (BB code):
#//
#// @author LazyBear
#//
#// If you use this code in its orignal/modified form, do drop me a note.
#//
#study("Volume Price Confirmation Indicator [LazyBear]", shorttitle="VPCI_LB" )
# Converted to TOS by Rigel 2018.
#
declare lower;
input shortTerm = 5;
input longTerm = 20;
def agg=aggregationPeriod.MIN;
input src = close;
input BBlength = 20; #, title="BB Length"
input mult = 2.5;
def vpc = vwap(period=longTerm*agg) - Average(src, longTerm);
def vpr = vwap(period=shortTerm*agg) / Average(src, shortTerm);
def vm = Average(volume, shortTerm) / Average(volume, longTerm);

plot vpci = vpc * vpr * vm;
vpci.setDefaultColor(color.green);
plot zero=0;
zero.setdefaultColor(color.cyan);

input lengthMA=8 ; #, "VPCI MA Length"
plot MA = Average(vpci, lengthMA);
MA.setdefaultColor(color.pink);

def bb_s = vpci;
plot basis = Average(bb_s, BBlength);
def dev = (mult * StDev(bb_s, BBlength));
plot upper = (basis + dev);
plot lower = (basis - dev);
basis.setdefaultColor(color.white);
basis.setPaintingStrategy(PaintingStrategy.line);
basis.setStyle(curve.SHORT_DASH);

Shareable Link

https://tos.mx/DbMSRi

This indicator was converted to ThinkorSwim by rigel from the TradingView version developed by LazyBear.
 
Last edited by a moderator:

netarchitech

Well-known member
Doesn't display for me. The code looks fine. No gripes from the compiler. Puzzling...

 
Last edited:

BenTen

Administrative
Staff member
Staff
VIP
@netarchitech You have to enable pre-market if you haven't aldready

 
Last edited:

Similar threads

Top