// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("ADX Indicator");
//Trend Following Systems DO NOT work when ADX is Below 20 - Tech Analysis A-Z; page 120
P1 = Param("Period",14,0,100,1);
MyPDI= PDI(P1);//Positive ectional Indicator
MyMDI= MDI(P1);//Negative ectional Indicator (Minus)
MyADX= ADX(P1);//Average ectional Movement Index
//Green ADX Line=Rising; Red ADX Line=Falling
col = IIf( MyADX > Ref( MyADX, -1 ), colorYellow, colorCustom12 );
Plot( MyPDI,"+DI",colorBrightGreen, styleThick);
Plot( MyMDI,"-DI",colorRed, styleThick);
Plot( MyADX,"ADX",col, styleThick);
Plot(20,"",colorWhite,styleDashed+styleThick);
Plot(45,"",colorWhite,styleDashed+styleThick);
range = Param("Periods", 14, 2, 200, 1 );
Strong = Param("Strong ADX Above", 25, 2, 200, 1 );
Weak = Param("Weak ADX Below", 16, 2, 200, 1 );

LongCond = Cross(ADX(range), Strong) OR Buy2 = Cross (ADX(range), Weak) OR Buy3 = Cross(Weak, ADX(range)) ;
ShortCond = Cross(Strong,ADX(range)) OR Buy2 = Cross (Weak,ADX(range)) OR Buy3 = Cross(ADX(range), Weak) ;
MyColor= WriteIf ( (ADX(range) > Strong) AND (PDI(range) > MDI(range)), EncodeColor(colorBrightGreen), 
WriteIf ( (ADX(range) > Weak) AND (PDI(range) > MDI(range)), EncodeColor(colorGreen), 
WriteIf ( (ADX(range) > Strong) AND (MDI(range) > PDI(range)), EncodeColor(colorRed), 
WriteIf ( (ADX(range) > Weak) AND (MDI(range) > PDI(range)), EncodeColor(colorOrange), 
EncodeColor(colorWhite) ))));
ADXStatus = WriteIf (ADX(range) > Strong, "Strong ADX TrenD", WriteIf (ADX(range) > Weak, "Weak ADX TrenD", "Relax" ));
Trend = WriteIf (PDI(range) > MDI(range), EncodeColor(colorBrightGreen) +"UP TrenD", EncodeColor(colorRed)+"DOWN TrenD");Title=Name()+ " @"+ " Price: " + C + EncodeColor(colorGreen) +" ADX" + WriteVal( MyADX )+ EncodeColor(colorWhite) + " +DMI" + WriteVal( MyPDI )+ EncodeColor(colorRed) + " -DMI" + WriteVal( MyMDI ) 
+ EncodeColor(colorWhite) + "\nADX @ " +MyColor + ADXStatus
+ EncodeColor(colorWhite) + "\nTrend @ " + Trend;
_SECTION_END();