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:

Vervroot sometimes uses this with his modified %B oscillator (

List of my other indicators:
- Chart:
- GDoc:
Keluarkan daripada Skrip Pilihan Tambah kepada Skrip Pilihan
// @author LazyBear 
// List of all my indicators: 
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) =>

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)
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)
On shorter time frame (4h) or longer (weekly) seems to be annoying and needs to be used with extra tools for confirmation of reversals. While price is running into upper band (127%) and SVAPO displays oversold and a timid divergence- price continues the move up to 162%. So, one would be tempted to sell at the 127% because everything is pointing to a reversal and missing the last part of the impulse move. With some MAs (emas) this could be filtered or other indicators.
Very nice tool LB- as usual great work. I gave it a test drive and seems to me that it showing more than expected. It looks very sensitive and one should analyse it also as a A/D tool too.

Now an image with the LazyBear COG a bit changed by me:) showing it is working also visually much better with it. The price making a and the second top is below the red band also looking at the SVAPO position being in oversold teritory could lead to the conclusion that a distribution is coming. The AAPL price at the moment shows a bullish moment but the SVAPO shows a weakening of the recent impulse move. I would have liked the COG to have possibility of offsetting the bands 2-4 levels up and down.
sublimares2 sublimares2
Not sure why images are not displaying
LazyBear sublimares2
Very interesting. Thanks for sharing, sublimares.
+2 Balas
Much appreciated, LB!
LazyBear accidentje
YW :)
+1 Balas

Rate of Change does make a difference in future price action with this indicator
+1 Balas
LazyBear QuantitativeExhaustion
+1 Balas
Looks like we can also see a band squeeze too
Laman Utama Penyaring Saham Penyaring Forex Penyaring Kripto Kalendar Ekonomi Rancangan Bagaimana ia berfungsi Ciri-ciri Carta Harga Peraturan Dalaman Moderator Laman web dan Penyelesaian Broker Widget Penyelesaian Pencartaan Perpustakaan Pencartaan yang Ringan Pusat Bantuan Rujuk rakan Permintaan Ciri Blog & Berita Soalan Lazim Wiki Twitter
Profil Tetapan Profil Akaun dan Pengebilan Rujuk rakan Tiket Sokongan Saya Pusat Bantuan Idea yang diterbitkan Pengikut Mengikut Mesej Peribadi Sembang Daftar Keluar