Another SuperTrend version, which uses the ATR distance from price to calculate its own levels, but this time combined with CCI condition to turn bullish or bearish.
You can modify the CCI period into the setting and also at which level the Supertrend can switch from bullish trend to bearish trend and vice-versa.
Indicator translated from MT5 version, following a request into the Indicator’s forum:
https://www.prorealcode.com/topic/conversion-indicateur-supertrend-mt5/
//PRC_Supertrend+CCI | indicator
//06.01.2021
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
//converted from MT5 version
// --- settings
CCIPeriod=50 // CCI indicator period
ATRPeriod=5 // ATR indicator period
Level=0 // CCI activation level
// --- end of settings
icci = CCI[CCIPeriod](typicalPrice)
iatr = AverageTrueRange[ATRPeriod](close)
TrendUp=0.0
TrendDown=0.0
SignUp=0.0
SignDown=0.0
if(iCCI>=Level and iCCI[1]<Level) then
TrendUp=TrendDown[1]
endif
if(iCCI<=Level and iCCI[1]>Level) then
TrendDown=TrendUp[1]
endif
if(iCCI>Level) then
TrendUp=low-iATR
r=0
g=255
if(TrendUp<TrendUp[1] and iCCI[1]>=Level) then
TrendUp=TrendUp[1]
endif
endif
if(iCCI<Level) then
TrendDown=high+iATR
r=255
g=0
if(TrendDown>TrendDown[1] and iCCI[1]<=Level) then
TrendDown=TrendDown[1]
endif
endif
if(TrendDown[1]<>0.0 and TrendUp<>0.0) then
SignUp=TrendUp
drawtext("●",barindex,signup,dialog,bold,20) coloured(72,209,204)
endif
if(TrendUp[1]<>0.0 and TrendDown<>0.0) then
SignDown=TrendDown
drawtext("●",barindex,signdown,dialog,bold,20) coloured(255,140,0)
endif
st = max(trendup,trenddown)
return st coloured(r[1],g[1],0) style(line,2) as "Supertrend+CCI"