Skip to main content

ADX PDI MDI + ADX Ribbon for Amibroker (AFL)

rattanasak over 12 years ago Amibroker (AFL)

  • Rating:
    4 / 5 (Votes 10)
  • Tags:
    oscillator, amibroker, ribbon

I have customized by the ADX Standard Day, Week, Month Label from the side and below the Ribbon added to the strength of the trend is likely to occur.

Screenshots

Indicator / Formula

Copy & Paste Friendly
_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)


;

2 comments

1. kitika
over 12 years ago
Rattanasak Sir, Hello, as u have tried to make such gud afl but formula is not correct according to market trend so if u want to correct it plz give ur mail address so that i send u correct modify formula according to market trend…..kindly post ur mail id

so that i cant contact u……urgently reply

Kitika

over 12 years ago

@kitika

Why don’t u post here. Why you just want to share with him only?

Posting here will benefit lots of peoples and may be some one may come our with more good idea.

Just a thought. I don’t need though

Leave Comment

Please login here to leave a comment.