This indicator attempts to capture the ratio of rising price volume to falling price volume. The display is an average of up bar volume divided by down bar volume. The mid line is the 50/50 ratio. A divergence between price and the indicator can signal non-confirmation of the trend. (Note: Initial positing of the code had some lines missing)
# UPDOWNVOLUMERATIO
# (c) 2009 http://www.thinkscripter.com
# thinkscripter@gmail.com
# Last Update 19 Jan 2009
declare lower;
input period = 10;
input smoothingPeriod = 3;
input priceChangeWeighted = NO;
def delta = absValue(close-close[1]);
def multiplier = if(priceChangeWeighted, delta,1);
plot maxLine = 80.0;
plot minLine = 20.0;
maxLine.setDefaultColor(color.BLUE);
maxLine.setLineWeight(2);
minLine.setDefaultColor(color.BLUE);
minLine.setLineWeight(2);
plot midLine = 50.0;
midLine.setDefaultColor(color.WHITE);
midLine.setLineWeight(2);
DEF up = if(close>close[1], volume*multiplier, 0);
DEF down = if(close<close[1], volume*multiplier, 0);
DEF upvol = sum(up, period);
DEF downvol = sum(down, period);
DEF ratio = (100.0*(upvol/(downvol+upvol)));
DEF UPDVR = HullMovingAvg(ratio,smoothingPeriod);
DEF lineColor = if(UPDVR>=80.0, 6, if(UPDVR<20.0,5,1));
DEF plotData = UPDVR;
plot VolumeRatio = UPDVR;
VolumeRatio.AssignValueColor(getColor(linecolor));
VolumeRatio.setLineWeight(3);
VolumeRatio.setPaintingStrategy(paintingStrategy.HISTOGRAM);
plot VolumeRatioLine = UPDVR;
VolumeRatioLine.AssignValueColor(getColor(if(linecolor != 1, linecolor, 9)));
VolumeRatioLine.setLineWeight(2);





I´m trying to understand this indicator. “is an average of up bar volume divided by down bar volume”. an average of what? how many bars?
thanx
If a bar is green its volume is added to a running sum of “Up Volume” and vice versa. The input parameter “period” is the number of bars the sum is carrying. The ratio is then just the Up/Down for that period.
Eric