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:
오픈 소스 스크립트

진정한 TradingView의 정신에 따라, 이 스크립트의 작성자는 스크립트를 오픈소스로 게시했기에 거래자들이 이해하고 확인할 수 있습니다. 작가님께 건배! 스크립트를 무료로 사용할 수 있지만, 게시물에서 이 코드를 재사용하는 것은 하우스룰을 따릅니다. 당신은 스크립트를 차트에 사용하기 위해 그것을 즐겨찾기 할 수 있습니다.

차트에 이 스크립트를 사용하시겠습니까?
// @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)
List of my free indicators:
List of my indicators at Appstore:


Rate of Change does make a difference in future price action with this indicator
+3 응답
LazyBear QuantitativeExhaustion
+1 응답
Looks like we can also see a band squeeze too
LazyBear QuantitativeExhaustion
+1 응답
Brilliant! Yet another go-to indicator. Thanks LB.
+2 응답
grahvity grahvity
+1 응답
Good example
+1 응답
You back testing this new indicator ?
+1 응답
LazyBear grahvity
Thx Grahvity.
홈으로 스탁 스크리너 포렉스 스크리너 크립토 스크리너 이코노믹 캘린더 정보 차트 특징 프라이싱 프렌드 리퍼하기 하우스룰(내부규정) 헬프 센터 웹사이트 & 브로커 솔루션 위젯 차팅 솔루션 라이트웨이트 차팅 라이브러리 블로그 & 뉴스 트위터