// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("TMA");
HalfLength      = Param("HalfLength", 61, 1, 999);
ATRPeriod       = Param("ATRPeriod", 110,1,1000);

ATRMultiplier1   = Param("ATR Multiplier 1", 1.8);
ATRMultiplier2   = Param("ATR Multiplier 2", 2.2);
ATRMultiplier3   = Param("ATR Multiplier 3", 2.6);

ATRMultiplier4   = Param("ATR Multiplier 4", 3.0);
ATRMultiplier5   = Param("ATR Multiplier 5", 3.4);
ATRMultiplier6   = Param("ATR Multiplier 6", 3.8);

ATRMultiplier7   = Param("ATR Multiplier 7", 4.2);
ATRMultiplier8   = Param("ATR Multiplier 8", 4.6);
ATRMultiplier9   = Param("ATR Multiplier 9", 5.0);


cMidB = ParamColor("Mid Band", colorGreen);
cUprB = ParamColor("Upper Band", colorRed);
cLwrB = ParamColor("Lower Band", ColorRGB(30,144,255));

HalfLength=Max(HalfLength,1);

midBand = Null;

 p = Close;
 sma = MA(P, 1);
 iatr= ATR(ATRPeriod);

 iLmt = BarCount-1 - (HalfLength);
  
 for (i=0; i<BarCount; i++)
 {
 
    dSum = (HalfLength+1)* sma[i];
    sumw = (HalfLength+1);
         
    for(j=1, k=HalfLength; j<=HalfLength; j++, k--)
    {
        if(i+j>=BarCount) break;

        dSum  += k* sma[i+j];
        sumw += k;

        if (j<=i)
        {
          dSum  += k*sma[i-j];
          sumw += k;
        }
    }

    MidBand[i] = dSum/sumw;
          
 }

 UprBand1 = MidBand+iATR*ATRMultiplier1;
 LwrBand1 = MidBand-iATR*ATRMultiplier1;

 UprBand2 = MidBand+iATR*ATRMultiplier2;
 LwrBand2 = MidBand-iATR*ATRMultiplier2;

 UprBand3 = MidBand+iATR*ATRMultiplier3;
 LwrBand3 = MidBand-iATR*ATRMultiplier3;


 UprBand4 = MidBand+iATR*ATRMultiplier4;
 LwrBand4 = MidBand-iATR*ATRMultiplier4;

 UprBand5 = MidBand+iATR*ATRMultiplier5;
 LwrBand5 = MidBand-iATR*ATRMultiplier5;

 UprBand6 = MidBand+iATR*ATRMultiplier6;
 LwrBand6 = MidBand-iATR*ATRMultiplier6;


 UprBand7 = MidBand+iATR*ATRMultiplier7;
 LwrBand7 = MidBand-iATR*ATRMultiplier7;

 UprBand8 = MidBand+iATR*ATRMultiplier8;
 LwrBand8 = MidBand-iATR*ATRMultiplier8;

 UprBand9 = MidBand+iATR*ATRMultiplier9;
 LwrBand9 = MidBand-iATR*ATRMultiplier9;

Plot(MidBand, "MidBand",  cMidB, styleNoLabel|styleNoTitle);

Plot(UprBand1, "UprBand1", cUprB, styleNoLabel|styleNoTitle);
Plot(LwrBand1, "LwrBand1", cLwrB, styleNoLabel|styleNoTitle);

Plot(UprBand2, "UprBand2", cUprB, styleNoLabel|styleNoTitle|styleBar);

Plot(LwrBand2, "LwrBand2", cLwrB, styleNoLabel|styleNoTitle|styleBar);

Plot(UprBand3, "UprBand3", cUprB, styleNoLabel|styleNoTitle|styleBar);
Plot(LwrBand3, "LwrBand3", cLwrB, styleNoLabel|styleNoTitle|styleBar);


Plot(UprBand4, "UprBand4", cUprB, styleNoLabel|styleNoTitle|styleBar);
Plot(LwrBand4, "LwrBand4", cLwrB, styleNoLabel|styleNoTitle|styleBar);


Plot(UprBand5, "UprBand5", cUprB, styleNoLabel|styleNoTitle|styleBar);
Plot(LwrBand5, "LwrBand5", cLwrB, styleNoLabel|styleNoTitle|styleBar);


Plot(UprBand6, "UprBand6", cUprB, styleNoLabel|styleNoTitle|styleBar);
Plot(LwrBand6, "LwrBand6", cLwrB, styleNoLabel|styleNoTitle|styleBar);


Plot(UprBand7, "UprBand7", cUprB, styleNoLabel|styleNoTitle);
Plot(LwrBand7, "LwrBand7", cLwrB, styleNoLabel|styleNoTitle);

Plot(UprBand8, "UprBand8", cUprB, styleNoLabel|styleNoTitle|styleThick);
Plot(LwrBand8, "LwrBand8", cLwrB, styleNoLabel|styleNoTitle|styleThick);

Plot(UprBand9, "UprBand9", cUprB, styleNoLabel|styleNoTitle|styleThick);
Plot(LwrBand9, "LwrBand9", cLwrB, styleNoLabel|styleNoTitle|styleThick);
_SECTION_END();

/*Plot Ribbon */
Ribbon1=IIf( EMA( Close , 7 )>EMA( Close , 21 ) ,colorGreen, IIf(EMA( Close , 34 )>EMA( Close , 8 ), colorRed,colorYellow));
Plot(6, "Ribbon", Ribbon1, styleOwnScale| styleArea| styleNoLabel,-0.5,100);
_SECTION_END();