#TrueStrengthIndex_levels
#True Strength Index Upper Lower Lines
#Corgy Dec 6
#I was wondering if any one has script for True Strength Indiex with upper (red) and lower (green) lines or shaded ares for the upper indicator at 42 and the lower indicator at -42
# TrueStrengthIndex
declare lower;
def na = double.nan;
input upper_level = 42;
input lower_level = -42;
plot upperline = upper_level;
upperline.SetDefaultColor(color.red);
plot lowerline = lower_level;
lowerline.SetDefaultColor(color.green);
input longLength = 25;
input shortLength = 13;
input signalLength = 8;
input averageType = AverageType.EXPONENTIAL;
def diff = close - close[1];
def doubleSmoothedAbsDiff = MovingAverage(averageType, MovingAverage(averageType, AbsValue(diff), longLength), shortLength);
plot TSI;
TSI = if doubleSmoothedAbsDiff == 0 then 0
else 100 * (MovingAverage(averageType, MovingAverage(averageType, diff, longLength), shortLength)) / doubleSmoothedAbsDiff;
#TSI.SetDefaultColor(GetColor(1));
tsi.AssignValueColor(if tsi > upper_level then color.red else if tsi < lower_level then color.green else getcolor(1));
plot Signal;
Signal = MovingAverage(averageType, TSI, signalLength);
Signal.SetDefaultColor(GetColor(8));
Signal.hide();
plot ZeroLine = 0;
ZeroLine.SetDefaultColor(GetColor(5));
def clduppertop = if tsi >= upper_level then tsi else na;
def cldlowerbot = if tsi <= lower_level then tsi else na;
addcloud(clduppertop, upper_level, color.red);
addcloud(lower_level, cldlowerbot, color.green);
#