#TMASlopeOscillator
#Coverted by @SuryaKiranC
#Convered on 01/05/2022
#Requested by @tophatkelly
#Requested at https://usethinkscript.com/threads/triangular-moving-average-tma-slope-indicator-for-thinkorswim.9465
#Original Source https://www.tradingview.com/script/CHfAkivN-The-TMA-Slope-TMSlope-Oscillator/
declare lower;
DefineGlobalColor("gadblUp1",CreateColor(0,128,0));
DefineGlobalColor("gadblUp2",CreateColor(0,255,0));
DefineGlobalColor("gadblDn1",CreateColor(178,34,34));
DefineGlobalColor("gadblDn2",CreateColor(255,0,0));
DefineGlobalColor("gadblMid1",CreateColor(221,166,237));
DefineGlobalColor("gadblMid2",CreateColor(166,237,211));
input x = close;
input eintPeriod = 20;
input edblHigh1 = 0.04;
input edblLow1 = -0.04;
input atrPeriod = 100;
def calcAtr = atr(atrPeriod);
def dblTma = SimpleMovingAvg(SimpleMovingAvg(x, eintPeriod), eintPeriod);
def dblPrev = dblTma[1];
def gadblSlope = ( dblTma - dblPrev ) / calcAtr;
plot gadblUp1 = if(gadblSlope[0] > edblHigh1) and (gadblSlope[0] < gadblSlope[1]) then gadblSlope[0] else 0.0;
plot gadblUp2 = if(gadblSlope[0] > edblHigh1) and (gadblSlope[0] > gadblSlope[1]) then gadblSlope[0] else 0.0;
plot gadblDn1 = if(gadblSlope[0] < edblLow1) and (gadblSlope[0] > gadblSlope[1]) then gadblSlope[0] else 0.0;
plot gadblDn2 = if(gadblSlope[0] < edblLow1) and (gadblSlope[0] < gadblSlope[1]) then gadblSlope[0] else 0.0;
plot gadblMid1 = if(gadblSlope[0] > gadblSlope[1]) then gadblSlope[0] else 0.0;
plot gadblMid2 = if(gadblSlope[0] < gadblSlope[1]) then gadblSlope[0] else 0.0;
gadblUp1.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
gadblUp1.SetDefaultColor(GlobalColor("gadblUp1"));
gadblUp1.SetLineWeight(4);
gadblUp2.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
gadblUp2.SetDefaultColor(GlobalColor("gadblUp2"));
gadblUp2.SetLineWeight(4);
gadblDn1.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
gadblDn1.SetDefaultColor(GlobalColor("gadblDn1"));
gadblDn1.SetLineWeight(4);
gadblDn2.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
gadblDn2.SetDefaultColor(GlobalColor("gadblDn2"));
gadblDn2.SetLineWeight(4);
gadblMid1.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
gadblMid1.SetDefaultColor(GlobalColor("gadblMid1"));
gadblMid1.SetLineWeight(4);
gadblMid2.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
gadblMid2.SetDefaultColor(GlobalColor("gadblMid2"));
gadblMid2.SetLineWeight(4);
#End