LazyBear

Short-term Volume And Price Oscillator [LazyBear]

Short-term Volume and Price Oscillator (SVAPO), developed by Sylvian Vervroot, combines both Price and Volume to construct an oscillator. In essence, when the price is trending up and volume is increasing, volume is added into the oscillator calculation. Conversely, when price is trending down and volume is increasing, volume will be subtracted from the oscillator. During consolidation phases when price and volume diverge, volume is not used to calculate the oscillator.

Some notes from his book:
- A buy is indicated when the oscillator is below the green line but greater than yesterday’s value.
A sell is indicated when the oscillator is above the red line but less than yesterday’s value.
- The start of a short term up move is signaled by SVAPO when it turns up from below the lower standard
deviation boundary. The same is valid for a short term down move when SVAPO turns down from above the
upper standard deviation boundary.
- Medium term turning points in an up or downtrend are mostly announced with a divergence between price and
SVAPO. In a medium term uptrend, SVAPO will generally continue to move above the 0-reference line.

More info:
stocata.org/ta_en/proprietary.html
stocata.org/youtube/video_003.html

Vervroot sometimes uses this with his modified %B oscillator (www.tradingview.com/v/sDPe1PDd/).

List of my other indicators:
- Chart: - GDoc: docs.google.com...ByMEvm5MLo/edit?usp=sharin...

List of my free indicators: bit.ly/1LQaPK8
List of my indicators at Appstore: blog.tradingview.com/?p=970
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?
//
// @author LazyBear 
// List of all my indicators: 
// https://docs.google.com/document/d/15AGCufJZ8CIUvwFJ9W-IKns88gkWOKBCvByMEvm5MLo/edit?usp=sharing
//
study("Short-term Volume And Price Oscillator [LazyBear]", shorttitle="SVAPO_LB")
length=input(8, title="SVAPO Period", minval=2, maxval=20)
cutoff=input(1, title="Minimum %o price change", maxval=10, minval=0)
devH=input(1.5, title="Stdev High", maxval=5, minval=0.1)
devL=input(1.3, title="Stdev Low", maxval=5, minval=0.1)
stdevper=input(100, title="Stdev Period", maxval=200, minval=1)

calc_tema(s, length) =>
    ema1 = ema(s, length)
    ema2 = ema(ema1, length)
    ema3 = ema(ema2, length)
    3 * (ema1 - ema2) + ema3

calc_linregslope(C, tp) =>
    ((tp*(sum(cum(1)*C,tp)))-(sum(cum(1),tp)*(sum(C,tp))))/((tp*sum(pow(cum(1),2),tp))-pow(sum(cum(1),tp),2))

calc_OR2(x) => 
    y=x // To force expr evaluation
    (y == true) or (y[1] == true)

haOpen=(ohlc4[1] + nz(haOpen[1]))/2
haCl=(ohlc4+haOpen+max(high, haOpen)+min(low, haOpen))/4
haC=calc_tema(haCl, round(length/1.6))
vma=sma(volume, length*5)
vave=vma[1]
vmax=2*vave
vc=iff(volume<vmax, volume, vmax)
vtr=calc_tema(calc_linregslope(volume, length), length)
svapo=calc_tema(sum(iff(haC>(nz(haC[1])*(1+cutoff/1000)) and  calc_OR2((vtr>=nz(vtr[1]))), vc, iff(haC<(nz(haC[1])*(1-cutoff/1000)) and calc_OR2((vtr>nz(vtr[1]))),-vc,0)), length)/(vave+1),length)
plot(devH*stdev(svapo,stdevper), color=red, style=3)
plot(-devL*stdev(svapo,stdevper), color=green, style=3)
plot(0, color=gray, style=3)
plot(svapo, color=maroon, linewidth=2)