The Jurik Volatility Bands can be used for entries for trends by using the Zero line crosses whilst counter-trend trades can be made once the oscillator line is close to the outer bands.
It works in range-bound and trending markets. In fact it based upon a Jurik filter that act as upper and lower bands.
It is an all-in-one indicator for Scalping, Counter-trend trading, Trend trading and gauging the market’s movements.
Note from the author: When counter-trend scalping on the smaller timeframes this indicator can sometimes cause new traders to jump in too early. Rest assured, it’s a highly effective trading tool so if you do open a position early you’ll find that price will eventually correct and you’ll be able to close at break even or in profit.
Other description found on internet: “Jurik Volatility Bands is a volatility indicator, displaying price in the channel. Exit from the channel is impossible, while reversal from the borders is the signal for entering the market. The indicator is equipped with arrows for convenience. It is applicable for scalping and intraday trading. Arrows may appear earlier at scalping, so you need to wait for candlestick is closed.”
Translated from MQL4 version following a request made in the indicator’s English forum.
//PRC_Jurik Volatility Bands | indicator
//31.08.2020
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
//converted from MT4
//https://www.prorealcode.com/topic/jurik-volatility-bands/
//// --- settings
Length = 14
Shift = 0
ShowMiddle = 1
ZeroBind = 1
Normalize = 0
// --- end of settings
Price = customclose
if barindex>Length then
vprice = average[1](Price)[shift]
cprice = average[1](Price)
hprice = highest[length](vprice)
lprice = lowest[length](vprice)
len1 = Max(Log(Sqrt(0.5*(length-1)))/Log(2.0)+2.0,0)
pow1 = Max(len1-2.0,0.5)
del1 = hprice - bsmax[1]
del2 = lprice - bsmin[1]
volty = 0
if(Abs(del1) > Abs(del2)) then
volty = Abs(del1)
endif
if(Abs(del1) < Abs(del2)) then
volty = Abs(del2)
endif
vsum = vsum[1] + 0.1*(volty-volty[10])
avg = vsum
avgLen=65
for k=1 to avgLen-1 do
avg = avg+vsum[k]
next
avg = avg/k
avolty = avg
if avolty > 0 then
dVolty = volty/avolty
else
dVolty = 0
endif
if dVolty>exp((1/pow1)*log(len1)) then
dVolty=exp((1/pow1)*log(len1))
endif
if (dVolty < 1) then
dVolty = 1.0
endif
pow2 = exp(pow1*log(dVolty))
len2 = Sqrt(0.5*(length-1))*len1
Kv = exp(sqrt(pow2)*log(len2/(len2+1)))
if (del1 > 0) then
bsmax = hprice
else
bsmax = hprice - Kv*del1
endif
if (del2 < 0) then
bsmin = lprice
else
bsmin = lprice - Kv*del2
endif
dnValue = bsmin
upValue = bsmax
miValue = (upValue+dnValue)/2.0
////
if (ZeroBind) then
if (Normalize) then
upValues = 1
dnValues = -1
diff = (upValue-miValue)
if (diff <> 0) then
price = (cprice-miValue)/diff
else
price = 0
endif
else
upValues = upValue-miValue
dnValues = dnValue-miValue
price = (cprice-miValue)
endif
else
upValues = upValue
dnValues = dnValue
price = cprice
endif
if (ShowMiddle) then
if (ZeroBind) then
miValues = 0
else
miValues = miValue
endif
endif
endif
return upValues coloured(0,191,255) as "up value", dnValues coloured(219,112,147) as "dn value", miValues coloured(105,105,105) style(dottedline) as "mi value", price coloured(0,191,255) style(line,2) as "price"