TradingView
LazyBear
Jul 21, 2014 2:11 AM

Indicator: Weis Wave Volume [LazyBear] 

Bitcoin / DollarBitfinex

Description

This indicator takes market volume and organizes it into wave charts, clearly highlighting inflection points and regions of supply/demand.

Try tuning this for your instrument (Forex not supported) by adjusting the "Trend Detection Length". This "clubs together" minor waves. If you like an oscillator-kind-of display, enable "ShowDistributionBelowZero" option.

Note: This indicator is a port of a clone of WeisVolumePlugin available for another platform. I don't know how close this is to the original Weis, if any has access to it, do let me know how this compares. Thanks.

More info:
weisonwyckoff.com/weis-wave/

Complete list of my indicators:
tradingview.com/v/4IneGo8h/
Comments
Coinmarketcap9393
@wjsharples1, do you still play like this? Would you suggest only WWV_LB (5) is good for daily chart or are there other good lengths you discovered?

Thanks
Alecto
@wjsharples1, how can find it?
modhelius
@girolamoaloe, you can find an implementation that make use of a zig zag-line here tradingview.com/script/QrCFs0K2-Weis-Wave-Volume/.
girolamoaloe
@modhelius, Thank you very much for your work :) . Your work was great in the making of this tool.

I don't use the Weis Wave. I was just testing the tool. I am sharing your indicators with my trading students, in the case, someone of them wants to use it.
RajeevNaik
Thank you LazyBear. Is there a formula or method to set/choose the optimum trend detection length for each script/stock?
umur.ozkul
//@version=3
study("Weis Wave Volume [LazyBear]", shorttitle="WWV_LB")
// Umur Ozkul: This version is suitable for the security function. So that it can be used in multi time frame strategies

trendDetectionLength=input(2)
showDistributionBelowZero=input(false, type=bool)

weissWave(trendDetectionLength, showDistributionBelowZero, cls, vlm) =>
mov = cls>cls[1] ? 1 : cls<cls[1] ? -1 : 0
trend = 0
trend := (mov != 0) and (mov != mov[1]) ? mov : nz(trend[1])
isTrending = rising(cls, trendDetectionLength) or falling(cls, trendDetectionLength) //abs(cls-cls[1]) >= dif
wave = 0
wave := (trend != nz(wave[1])) and isTrending ? trend : nz(wave[1])
vol = vlm
vol := wave==wave[1] ? (nz(vol[1])+vlm) : vlm
up=wave == 1 ? vol : 0
dn=showDistributionBelowZero ? (wave == 1 ? 0 : wave == -1 ? -vol : vol) : (wave == 1 ? 0 : vol)
[wave,vol,up,dn]

weissWaveWave(trendDetectionLength, showDistributionBelowZero, cls, vlm) =>
[wave,vol,up,dn] = weissWave(trendDetectionLength, showDistributionBelowZero, cls, vlm)
wave
weissWaveVol(trendDetectionLength, showDistributionBelowZero, cls, vlm) =>
[wave,vol,up,dn] = weissWave(trendDetectionLength, showDistributionBelowZero, cls, vlm)
vol
weissWaveUp(trendDetectionLength, showDistributionBelowZero, cls, vlm) =>
[wave,vol,up,dn] = weissWave(trendDetectionLength, showDistributionBelowZero, cls, vlm)
up
weissWaveDn(trendDetectionLength, showDistributionBelowZero, cls, vlm) =>
[wave,vol,up,dn] = weissWave(trendDetectionLength, showDistributionBelowZero, cls, vlm)
dn

wave = weissWaveWave(trendDetectionLength, showDistributionBelowZero, close, volume)
vol = weissWaveVol(trendDetectionLength, showDistributionBelowZero, close, volume)
up = weissWaveUp(trendDetectionLength, showDistributionBelowZero, close, volume)
dn = weissWaveDn(trendDetectionLength, showDistributionBelowZero, close, volume)

plot(up, color=green, style=histogram)
plot(dn, color=red, style=histogram)
umur.ozkul
@umur.ozkul, Sorry, posting as a comment removed the tabs.
ora89
Hello! Thanks for sharing this.

Does this indicator repaint? Also what would you recommend the trend detection length should be for using this on the 5m chart for day trading? The default setup is 2, and I noticed on the description that it says it should be modified to best fit your trading.

Thanks a lot and happy trading!
More