// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("ADX");
GraphXSpace=20;
range = Param("Periods", 13, 2, 200, 1 );
Color = IIf(ROC(ADX(range),1) > 0, colorYellow,colorWhite);
Plot( ADX(range), _DEFAULT_NAME(), Color , ParamStyle("ADX style", styleThick ) );
Plot( PDI(range), "+DI", ParamColor( "+DI color", colorBrightGreen), styleLine );
Plot( MDI(range), "-DI", ParamColor( "-DI color", colorRed ), styleLine  );

uptrend=ROC(ADX(13),1)> 0 AND ADX(13) > 20 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrend=ROC(ADX(13),1) > 0 AND ADX(13) > 20 AND PDI(13) < MDI(13) AND Signal()>MACD();
sideway = ROC(ADX(13),1) <=0;

Plot( 4, /* defines the height of the ribbon in percent of pane width
*/"ribbon",
IIf( uptrend, colorGreen, IIf( downtrend, colorRed, IIf(sideway,colorLightGrey,colorDefault ))),styleOwnScale|styleArea|styleNoLabel, -0.5, 100 );

//Magfied Market Price 
GfxSetTextAlign( 6 );// center alignment
fse=Param("Font Sizee",18,11,100,1);
GfxSelectFont("Times New Roman", fse, 700, True ); 
GfxSetBkMode( colorGold );  
GfxSetTextColor( ParamColor("Color",colorGold) ); 
Hora=Param("Horizontal Positiona",420,1,2000,1);
Vera=Param("Vertical Positiona",1,1,1000,1); 

MyADX = ROC(ADX(range),1,1.2);
MyMDI = ROC(MDI(range),1,1.2);

bi = BarIndex();
ii = SelectedValue( bi ) - bi[ 0 ]; 

if(MyADX[ii]>10){
	GfxTextOut("("+Prec(MyADX,2) +"%)  ("+Prec(MyMDI,2)+"%)", Hora , Vera+45 );
}

GfxSetTextAlign( 6 );// center alignment
_SECTION_END();

_SECTION_BEGIN("Trending MACD+PDI Ribbon");
Plot( 60, "60", colorPaleBlue,styleDashed );
Plot( 40, "40", colorPaleBlue,styleDashed );
Plot( 30, "30", colorGreen,styleDashed );
Plot( 20, "20", colorPaleBlue,styleDashed );

//START Multi Time Frame ***********************************************************************************************************************************************

TimeFrameSet( inDaily ); 
uptrendmDaily  = ROC(ADX(13),1)> 1 AND Ref(ROC(ADX(13),1),-1) > 1 AND ADX(13) > 20 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrendmDaily= ROC(ADX(13),1)> 1 AND Ref(ROC(ADX(13),1),-1) > 1 AND ADX(13) > 20 AND PDI(13) < MDI(13) AND Signal() > MACD();
sidewaymDaily  = ROC(ADX(13),1) <=0;
ADXmDaily = ADX(13);
ROCADXmDaily = ROC(ADX(13),1);
TimeFrameRestore(); // restore time frame to original ***********************************************************************************************************************************************


TimeFrameSet( inWeekly ); 
uptrendmWeekly  = ROC(ADX(13),1)> 1 AND Ref(ROC(ADX(13),1),-1) > 1 AND ADX(13) > 20 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrendmWeekly= ROC(ADX(13),1)> 1 AND Ref(ROC(ADX(13),1),-1) > 1 AND ADX(13) > 20 AND PDI(13) < MDI(13) AND Signal() > MACD();
sidewaymWeekly  = ROC(ADX(13),1) <=0;
ADXmWeekly = ADX(13);
ROCADXmWeekly = ROC(ADX(13),1);
TimeFrameRestore(); // restore time frame to original ***********************************************************************************************************************************************


TimeFrameSet( inMonthly ); 
uptrendmMonthly  = ROC(ADX(13),1)> 1 AND Ref(ROC(ADX(13),1),-1) > 1 AND ADX(13) > 20 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrendmMonthly= ROC(ADX(13),1)> 1 AND Ref(ROC(ADX(13),1),-1) > 1 AND ADX(13) > 20 AND PDI(13) < MDI(13) AND Signal() > MACD();
sidewaymMonthly  = ROC(ADX(13),1) <=0;
ADXmMonthly = ADX(13);
ROCADXmMonthly = ROC(ADX(13),1);
TimeFrameRestore(); // restore time frame to original ***********************************************************************************************************************************************



Title = EncodeColor(colorRed) + "== ADX-PDI-MDI & Ribbon Indicator == : "+ EncodeColor(colorBrightGreen) +  Name() + " " 
/*
+ EncodeColor(colorGreen)  + "+DI=" +EncodeColor(colorWhite) + WriteVal(PDI(range),1.0) + " " 
+ EncodeColor(colorGreen) + "%G=" +EncodeColor(colorWhite) + WriteVal(ROC(PDI(range),1,1.2)) + " " 
+ EncodeColor(colorRed) +"-DI=" +EncodeColor(colorWhite) + WriteVal(MDI(range),1.0) + " " 
+ EncodeColor(colorRed) + "%G=" +EncodeColor(colorWhite) + WriteVal(ROC(MDI(range),1,1.2))+ " " 
+ EncodeColor(colorYellow) + "ADX(13)=" +EncodeColor(colorWhite) + WriteVal(ADX(13),1.0) + " " 
+ EncodeColor(colorYellow) + "%G=" +EncodeColor(colorWhite) + WriteVal(ROC(ADX(range),1,1.2))+ " " 
*/

+ EncodeColor(colorYellow) + "\n Power of ADX Trend Daily       : " + EncodeColor(colorGreen) +WriteIf(uptrendmDaily  ," UpTrend" ," ")+ EncodeColor(colorRed) + WriteIf(downtrendmDaily," Down Trend" ," " )+ EncodeColor(colorPink)
   +WriteIf(sidewaymDaily ,"Side Way" ," " ) + EncodeColor(colorYellow) + "   ADX :"  + EncodeColor(colorWhite)+ WriteIf(ADXmDaily>20,EncodeColor(colorBrightGreen),EncodeColor(colorLightGrey)) + WriteVal(ADXmDaily,1.0) 
	+ EncodeColor(colorYellow)+" %G ="+ WriteIf(ROCADXmDaily>0,EncodeColor(colorBrightGreen),EncodeColor(colorLightGrey))+ WriteVal(ROCADXmDaily,1.0)

+ EncodeColor(colorYellow) + "\n Power of ADX Trend Weekly   : " + EncodeColor(colorGreen) +WriteIf(uptrendmWeekly  ," UpTrend" ," ")+ EncodeColor(colorRed) + WriteIf(downtrendmWeekly," Down Trend" ," " )+ EncodeColor(colorPink)
   +WriteIf(sidewaymWeekly ,"Side Way" ," " ) + EncodeColor(colorYellow) + "   ADX :"  + EncodeColor(colorWhite)+ WriteIf(ADXmWeekly>20,EncodeColor(colorBrightGreen),EncodeColor(colorLightGrey)) + WriteVal(ADXmWeekly,1.0) 
	+ EncodeColor(colorYellow)+" %G ="+ WriteIf(ROCADXmWeekly>0,EncodeColor(colorBrightGreen),EncodeColor(colorLightGrey))+ WriteVal(ROCADXmWeekly,1.0)

+ EncodeColor(colorYellow) + "\n Power of ADX Trend Monthly  : " + EncodeColor(colorGreen) +WriteIf(uptrendmMonthly  ," UpTrend" ," ")+ EncodeColor(colorRed) + WriteIf(downtrendmMonthly," Down Trend" ," " )+ EncodeColor(colorPink)
   +WriteIf(sidewaymMonthly ,"Side Way" ," " ) + EncodeColor(colorYellow) + "   ADX :"  + EncodeColor(colorWhite)+ WriteIf(ADXmMonthly>20,EncodeColor(colorBrightGreen),EncodeColor(colorLightGrey)) + WriteVal(ADXmMonthly,1.0) 
	+ EncodeColor(colorYellow)+" %G ="+ WriteIf(ROCADXmMonthly>0,EncodeColor(colorBrightGreen),EncodeColor(colorLightGrey))+ WriteVal(ROCADXmMonthly,1.0)


;