This indicator is actually composition of 3 indicator to one common one
it based on super trend , OBV and volatility % range
obv act as our source for the super trend to make it more sensitive
you can control it as a regular super trend + the addition of volatility % range ( volatility factor)
so 1 is volatility range , can be from 0.1 to 5 depend on your liking.
i set it here in this example of btc 4 hour chart to be 0.5 which is 1/2 of the volatility % range since it fitted better this particular asset . for stock i prefer 1 as my factor
this indicator as i normally do have alert and signal inside.
the aim of this indicator is to maximize trend on one hand and other to keep sensitivity high
one of the problem with regular super trend that as we keep the we increase the trend to be longer it lose sensitivity .
by this method that i show here i try to minimize that bad effect and make it both sensitive and more responsive. this is one of the reason i use a modified version of OBV as a source to it .
for each asset that you use try to find the best fit so this model can work properly
(description of original author: RafaelZioni)
//PRC_SuperTrend Volatility | indicator
//09.05.2022
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
//converted from pinescript
// --- settings
//stmult = 2 //Trend Multiplier minval = 0, maxval = 100, step = 0.01
//stperiod = 10 //Trend Period
//factor = 0.5 //Volatility Factor minval=0.1, maxval=5
// --- end of settings
if barindex>28 then
hilow = max(pointsize,((high - low)*100))
openclose = ((close - open)*100)
if volume<>volume[1] then
if close>close[1] then
myobv=myobv+volume
elsif close 0 then
out = high + shadow
else
out = low + shadow
endif
// CALCULATIONS //
uplev =out - (stmult * averagetruerange[stperiod])
dnlev = out + (stmult * averagetruerange[stperiod])
//
iVolatility = 100 * summation[1](100 * averagetruerange[1] / low) / 100
perc = (iVolatility*0.01) *factor
c=barindex
n = dnlev
x =uplev
once lb = n
once hb = x
once l1 = out
once hl = out
if c = 0 then
if x >= hb[1] then
hb = x
hl = out
trend = 1
else
lb = n
l1 = out
trend = -1
endif
endif
if c > 1 then
if trend[1] > 0 then
hl = max(hl[1], out)
if x >= hb[1] then
hb = x
else
if n < hb[1] - hb[1] * perc then
lb = n
l1 = out
trend = -1
endif
endif
else
l1 = min(l1[1], out )
if n <= lb[1] then
lb = n
else
if x > lb[1] + lb[1] * perc then
hb = x
hl = out
trend = 1
endif
endif
endif
endif
if trend = 1 then
v = hb
r=0
g=200
elsif trend = -1 then
v = lb
r=255
g=0
endif
endif
return v style(line,2) coloured(r,g,0)