Skip to main content

ADX MTF Exploration for Amibroker (AFL)

hit2010 almost 14 years ago Amibroker (AFL)

  • Rating:
    3 / 5 (Votes 6)
  • Tags:
    amibroker, exploration

Here is the ADX with MTF exploration…..

1. It displays ADX in selected (current) TF
2. It displays MTF status in the title bar
3. It explores ADX Status in MTF (While exploring, select Hourly TF)

Indicator / Formula

Copy & Paste Friendly
/////////// Current TF

_SECTION_BEGIN("ADX Trend Indicator Signal");
// ADX Trend Indicator Signal
// PARAMETERS
	ADX_Parm	=	Param( "ADX Period", 10, 5, 50,1);
// FORMULA
	ADXwk		=	ADX(ADX_Parm) < 25;
	ADXst		=	ADX(ADX_Parm) > 25 AND ADX(ADX_Parm) < 50 ;
	ADXvs		=	ADX(ADX_Parm) > 50 AND ADX(ADX_Parm) < 75 ;
	ADXex		=	ADX(ADX_Parm) > 75;

	ADXchoppy         =	ADX(ADX_Parm) < PDI(ADX_Parm) AND ADX(ADX_Parm) < MDI(ADX_Parm);
// VARIABLES
	ADXc_Status	=	WriteIf(ADXwk,"Weak",
						WriteIf(ADXst,"Good",
						WriteIf(ADXvs,"Strong",
						WriteIf(ADXex,"EXCELENT",
						WriteIf(ADXchoppy,"Choppy","Neutral")))));
	ADXc_Color		=	IIf(ADXwk,colorRed,
						IIf(ADXst,colorDarkGreen,
						IIf(ADXvs,colorBrightGreen,
						IIf(ADXex,colorLime,
						colorLightGrey))));

//						IIf(ADXchoppy,colorGold,colorLightGrey)))));

	Color2		=	IIf(ADXchoppy,colorGold,colorBlack);


Plot(ADX(ADX_Parm),"ADX"+ADX_Parm,ADXc_Color,styleLine);
emaADX=EMA(ADX(ADX_Parm),9);
Plot(emaAdX,"ema ADX",colorWhite,styleLine);

Plot(25,"",color2,styleLine);
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Current TF ADX Over xxxxxxxxxxxxxxxxxxxxxxxxxx//


TimeFrameSet( inHourly ); // switch Time Frame
	ADX_Parmh	=	10;
	ADXwkh		=	ADX(ADX_Parmh) < 25;
	ADXsth		=	ADX(ADX_Parmh) > 25 AND ADX(ADX_Parmh) < 50 ;
	ADXvsh		=	ADX(ADX_Parmh) > 50 AND ADX(ADX_Parmh) < 75 ;
	ADXexh		=	ADX(ADX_Parmh) > 75;

	ADXchoppyh         =	ADX(ADX_Parmh) < PDI(ADX_Parmh) AND ADX(ADX_Parmh) < MDI(ADX_Parmh);
// VARIABLES
	ADXc_Statush	=	WriteIf(ADXwkh,"Weak",
						WriteIf(ADXsth,"Good",
						WriteIf(ADXvsh,"Strong",
						WriteIf(ADXexh,"EXCELENT",
						WriteIf(ADXchoppyh,"Choppy","Neutral")))));
	ADXc_Colorh		=	IIf(ADXwkh,colorRed,
						IIf(ADXsth,colorDarkGreen,
						IIf(ADXvsh,colorBrightGreen,
						IIf(ADXexh,colorLime,
						colorLightGrey))));

//						IIf(ADXchoppy,colorGold,colorLightGrey)))));

	Color2h		=	IIf(ADXchoppyh,colorGold,colorBlack);

myArrayh=ADX(ADX_Parmh);

TimeFrameRestore(); // restore time frame to original

//xxxxxxxxxxxxxxxxxxxxxxxxxxx Daily xxxxxxxxxxxxxxxxxx///////////
TimeFrameSet( inDaily ); // switch Time Frame
	ADX_Parmd	=	10;
	ADXwkd		=	ADX(ADX_Parmd) < 25;
	ADXstd		=	ADX(ADX_Parmd) > 25 AND ADX(ADX_Parmd) < 50 ;
	ADXvsd		=	ADX(ADX_Parmd) > 50 AND ADX(ADX_Parmd) < 75 ;
	ADXexd		=	ADX(ADX_Parmd) > 75;

	ADXchoppyd         =	ADX(ADX_Parmd) < PDI(ADX_Parmd) AND ADX(ADX_Parmd) < MDI(ADX_Parmd);
// VARIABLES
	ADXc_Statusd	=	WriteIf(ADXwkd,"Weak",
						WriteIf(ADXstd,"Good",
						WriteIf(ADXvsd,"Strong",
						WriteIf(ADXexd,"EXCELENT",
						WriteIf(ADXchoppyd,"Choppy","Neutral")))));
	ADXc_Colord		=	IIf(ADXwkd,colorRed,
						IIf(ADXstd,colorDarkGreen,
						IIf(ADXvsd,colorBrightGreen,
						IIf(ADXexd,colorLime,
						colorLightGrey))));

//						IIf(ADXchoppy,colorGold,colorLightGrey)))));

	Color2d		=	IIf(ADXchoppyd,colorGold,colorBlack);

myArrayd=ADX(ADX_Parmd);

TimeFrameRestore(); // restore time frame to original
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Daily over xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx//

//xxxxxxxxxxxxxxxxxxxxxxxxxxx Wekly xxxxxxxxxxxxxxxxxx///////////
TimeFrameSet( inWeekly ); // switch Time Frame
	ADX_Parmw	=	10;
	ADXwkw		=	ADX(ADX_Parmw) < 25;
	ADXstw		=	ADX(ADX_Parmw) > 25 AND ADX(ADX_Parmw) < 50 ;
	ADXvsw		=	ADX(ADX_Parmw) > 50 AND ADX(ADX_Parmw) < 75 ;
	ADXexw		=	ADX(ADX_Parmw) > 75;

	ADXchoppyw         =	ADX(ADX_Parmw) < PDI(ADX_Parmw) AND ADX(ADX_Parmw) < MDI(ADX_Parmw);
// VARIABLES
	ADXc_Statusw	=	WriteIf(ADXwkw,"Weak",
						WriteIf(ADXstw,"Good",
						WriteIf(ADXvsw,"Strong",
						WriteIf(ADXexw,"EXCELENT",
						WriteIf(ADXchoppyw,"Choppy","Neutral")))));
	ADXc_Colorw 	=	IIf(ADXwkw,colorRed,
						IIf(ADXstw,colorDarkGreen,
						IIf(ADXvsw,colorBrightGreen,
						IIf(ADXexw,colorLime,
						colorLightGrey))));

//						IIf(ADXchoppy,colorGold,colorLightGrey)))));

	Color2w		=	IIf(ADXchoppyw,colorGold,colorBlack);

myArrayw=ADX(ADX_Parmw);

TimeFrameRestore(); // restore time frame to original
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Weekly over xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx//


//xxxxxxxxxxxxxxxxxxxxxxxxxxx Monthly xxxxxxxxxxxxxxxxxx///////////
TimeFrameSet( inMonthly ); // switch Time Frame
	ADX_Parmm	=	10;
	ADXwkm		=	ADX(ADX_Parmm) < 25;
	ADXstm		=	ADX(ADX_Parmm) > 25 AND ADX(ADX_Parmm) < 50 ;
	ADXvsm		=	ADX(ADX_Parmm) > 50 AND ADX(ADX_Parmm) < 75 ;
	ADXexm		=	ADX(ADX_Parmm) > 75;

	ADXchoppym         =	ADX(ADX_Parmm) < PDI(ADX_Parmm) AND ADX(ADX_Parmm) < MDI(ADX_Parmm);
// VARIABLES
	ADXc_Statusm	=	WriteIf(ADXwkm,"Weak",
						WriteIf(ADXstm,"Good",
						WriteIf(ADXvsm,"Strong",
						WriteIf(ADXexm,"EXCELENT",
						WriteIf(ADXchoppym,"Choppy","Neutral")))));
	ADXc_Colorm 	=	IIf(ADXwkm,colorRed,
						IIf(ADXstm,colorDarkGreen,
						IIf(ADXvsm,colorBrightGreen,
						IIf(ADXexm,colorLime,
						colorLightGrey))));

//						IIf(ADXchoppy,colorGold,colorLightGrey)))));

	Color2m		=	IIf(ADXchoppym,colorGold,colorBlack);

myArraym=ADX(ADX_Parmm);

TimeFrameRestore(); // restore time frame to original
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Monthly over xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx//


//xxxxxxxxxxxxxxxxxxxxxxxxxxx Quarterly xxxxxxxxxxxxxxxxxx///////////
TimeFrameSet( inQuarterly ); // switch Time Frame
	ADX_Parmq	=	10;
	ADXwkq		=	ADX(ADX_Parmq) < 25;
	ADXstq		=	ADX(ADX_Parmq) > 25 AND ADX(ADX_Parmq) < 50 ;
	ADXvsq		=	ADX(ADX_Parmq) > 50 AND ADX(ADX_Parmq) < 75 ;
	ADXexq		=	ADX(ADX_Parmq) > 75;

	ADXchoppyq         =	ADX(ADX_Parmq) < PDI(ADX_Parmq) AND ADX(ADX_Parmq) < MDI(ADX_Parmq);
// VARIABLES
	ADXc_Statusq	=	WriteIf(ADXwkq,"Weak",
						WriteIf(ADXstq,"Good",
						WriteIf(ADXvsq,"Strong",
						WriteIf(ADXexq,"EXCELENT",
						WriteIf(ADXchoppyq,"Choppy","Neutral")))));
	ADXc_Colorq 	=	IIf(ADXwkq,colorRed,
						IIf(ADXstq,colorDarkGreen,
						IIf(ADXvsq,colorBrightGreen,
						IIf(ADXexq,colorLime,
						colorLightGrey))));


	Color2q		=	IIf(ADXchoppyq,colorGold,colorBlack);

myArrayq=ADX(ADX_Parmq);

TimeFrameRestore(); // restore time frame to original
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Quarterly over xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx//


//xxxxxxxxxxxxxxxxxxxxxxxxxxx Yearly xxxxxxxxxxxxxxxxxx///////////
TimeFrameSet( inYearly ); // switch Time Frame
	ADX_Parmy	=	10;
	ADXwky		=	ADX(ADX_Parmy) < 25;
	ADXsty		=	ADX(ADX_Parmy) > 25 AND ADX(ADX_Parmy) < 50 ;
	ADXvsy		=	ADX(ADX_Parmy) > 50 AND ADX(ADX_Parmy) < 75 ;
	ADXexy		=	ADX(ADX_Parmy) > 75;

	ADXchoppyy         =	ADX(ADX_Parmy) < PDI(ADX_Parmy) AND ADX(ADX_Parmy) < MDI(ADX_Parmy);
// VARIABLES
	ADXc_Statusy	=	WriteIf(ADXwky,"Weak",
						WriteIf(ADXsty,"Good",
						WriteIf(ADXvsy,"Strong",
						WriteIf(ADXexy,"EXCELENT",
						WriteIf(ADXchoppyy,"Choppy","Neutral")))));
	ADXc_Colory 	=	IIf(ADXwky,colorRed,
						IIf(ADXsty,colorDarkGreen,
						IIf(ADXvsy,colorBrightGreen,
						IIf(ADXexy,colorLime,
						colorLightGrey))));


	Color2y		=	IIf(ADXchoppyy,colorGold,colorBlack);

myArrayy=ADX(ADX_Parmy);

TimeFrameRestore(); // restore time frame to original
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Quarterly over xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx//

//~~~~~~~~~~~~~~~~~~~~~~~~~~`Variable Expand ~~~~~~~~~~~~~~~~~~~~~~~~~~`//

MyArrayh = TimeFrameExpand(MyArrayh, inHourly);
MyArrayd = TimeFrameExpand(MyArrayd, inDaily);
MyArrayw = TimeFrameExpand(MyArrayw, inWeekly);
MyArraym = TimeFrameExpand(MyArraym, inMonthly);
MyArrayq = TimeFrameExpand(MyArrayq, inQuarterly);
MyArrayy = TimeFrameExpand(MyArrayy, inYearly);


// EXPLORER
Filter = 1;
AddColumn(myArrayh,"Hourly" , 1.2 , colorDefault , colorDefault , 65);
AddTextColumn(ADXc_Statush,"Hrly",1,colorWhite,ADXc_Colorh);

AddColumn(myArrayd,"Daily" , 1.2 , colorDefault , colorDefault , 65);
AddTextColumn(ADXc_Statusd,"Daily",1,colorWhite,ADXc_Colord);


AddColumn(myArrayw,"Weekly" , 1.2 , colorDefault , colorDefault , 65);
AddTextColumn(ADXc_Statusw,"Weekly",1,colorWhite,ADXc_Colorw);


AddColumn(myArraym,"Motnhly" , 1.2 , colorDefault , colorDefault , 65);
AddTextColumn(ADXc_Statusm,"Monthly",1,colorWhite,ADXc_Colorm);


AddColumn(myArrayq,"Qtrly" , 1.2 , colorDefault , colorDefault , 65);
AddTextColumn(ADXc_Statusq,"Qtly",1,colorWhite,ADXc_Colorq);


AddColumn(myArrayy,"Yearly" , 1.2 , colorDefault , colorDefault , 65);
AddTextColumn(ADXc_Statusy,"Yearly",1,colorWhite,ADXc_Colory);


_SECTION_END();


///////////// Title //////////////////
Change=C-Ref(C,-1);
ROCVal = ROC(C,1);
Title =  "ADX: " + NumToStr(ADX(ADX_Parm),1.2) + ",  Status:" + ADXc_Status
+EncodeColor(colorWhite) +" | "
+EncodeColor(colorBlue) 

+ " Hrly :" +EncodeColor(colorBlack) 
+  NumToStr(ADX(ADX_Parmh),1.2)+";"+ ADXc_Statush

+EncodeColor(colorWhite) +" | "
+EncodeColor(colorBlue) 


+ " Dly :" +EncodeColor(colorBlack) 
+  NumToStr(ADX(ADX_Parmd),1.2)+";"+ ADXc_Statusd

+EncodeColor(colorWhite) +" | "
+EncodeColor(colorBlue) 


+ " Wkly :" +EncodeColor(colorBlack)  
+  NumToStr(ADX(ADX_Parmw),1.2)+";"+ ADXc_Statusw

+EncodeColor(colorWhite) +" | "
+EncodeColor(colorBlue) 

+ " Mthly :" +EncodeColor(colorBlack)  

+  NumToStr(ADX(ADX_Parmm),1.2)+";"+ ADXc_Statusm
+EncodeColor(colorWhite) +" | "
+EncodeColor(colorBlue) 



+ " Qtrly :" +EncodeColor(colorBlack) 
+  NumToStr(ADX(ADX_Parmq),1.2)+";"+ ADXc_Statusq

+EncodeColor(colorWhite) +" | "
+EncodeColor(colorBlue) 


+ " Yrly :"  +EncodeColor(colorBlack) 
+  NumToStr(ADX(ADX_Parmy),1.2)+";"+ ADXc_Statusy;

/*
 + ", L:" +L+ ", C:"+ C +"  ("+NumToStr(Change,1.2)+" )" +"  ("+NumToStr(ROCVal,1.2)+" %%)")
+ WriteIf(IDNR7, EncodeColor(colorBrightGreen) + WriteIf(idm7 > 1, StrLeft(NumToStr(idm7), 4), "") + " IDNR7 ", "")
+ WriteIf(IDNR4, EncodeColor(colorLightOrange) + WriteIf(idm4 > 1, StrLeft(NumToStr(idm4), 4), "") + " IDNR4 ", "") 
+ WriteIf(NR7 AND NOT ID, EncodeColor(colorBrightGreen) + WriteIf(m7 > 1, StrLeft(NumToStr(m7), 4), "") + " NR7 ", "")
+ WriteIf(NR4 AND NOT ID, EncodeColor(colorLightOrange) + WriteIf(m4 > 1, StrLeft(NumToStr(m4), 4), "") + " NR4 ", "")
+ WriteIf(ID AND NOT NR7 AND NOT NR4, EncodeColor(colorTurquoise) + WriteIf(idm > 1, StrLeft(NumToStr(idm), 4), "") + " Inside Day ", "")
+ ", Range=" + Prec(R + 0.00001, 2) + "," +EncodeColor(colorBlack) +"  Vol : "+NumToStr(V,1.2) + "," 
 +EncodeColor(colorYellow) 
+ "  LSMA 25: " +NumToStr(LSMA25,1.2) 
+"\n"+EncodeColor(41)+"HrlyTrend: " +WriteIf(hup,EncodeColor(colorBrightGreen)+"Up ", WriteIf(hdN,EncodeColor(colorRed)+"Down", WriteIf(hflat,EncodeColor(colorWhite)+"Flat ","")))

+"\n"+EncodeColor(41)+"DailyTrend: " +WriteIf(dup,EncodeColor(colorBrightGreen)+"Up ", WriteIf(ddN,EncodeColor(colorRed)+"Down", WriteIf(dflat,EncodeColor(colorWhite)+"Flat ","")))
+EncodeColor(colorWhite) 

+"\n"+EncodeColor(41)+"WeeklyTrend: " +WriteIf(wup,EncodeColor(colorBrightGreen)+"Up ", WriteIf(wdN,EncodeColor(colorRed)+"Down", WriteIf(wflat,EncodeColor(colorWhite)+"Flat ","")))
+EncodeColor(colorWhite) 

+"\n"+EncodeColor(41)+"MonthlyTrend: " +WriteIf(mup,EncodeColor(colorBrightGreen)+"Up ", WriteIf(mdN,EncodeColor(colorRed)+"Down", WriteIf(mflat,EncodeColor(colorWhite)+"Flat ","")))
+EncodeColor(colorWhite)
 +EncodeColor(colorBlue) 

4 comments

almost 14 years ago

Hi,

This code does not contain standard setting.

One may use following code.

ADX  : < 10     Range bound
     : 15 to 30    starting of new trend
     : 30 to 50    strong Trend
     : > 50        excellent

_SECTION_BEGIN("ABC ADX H");
range =14;
TimeFrameSet(inHourly);
adxValh = ADX(range);

//Plot(adxValh,"", colorBlue,styleLine);

pdiValh = PDI(range);
mdiValh = MDI(range);
TimeFrameRestore();
_SECTION_END();

_SECTION_BEGIN("ABC ADX D");

range =14;
TimeFrameSet(inDaily);
adxVald = ADX(range);
Plot(adxVald,"", colorRed,styleLine);
pdiVald = PDI(range);
mdiVald = MDI(range);
TimeFrameRestore();

_SECTION_BEGIN("ABC ADX W");
range =14;
TimeFrameSet(inWeekly);
adxValw = ADX(range);
pdiValw = PDI(range);
mdiValw = MDI(range);
TimeFrameRestore();
_SECTION_END();
over 10 years ago

Is there an option to sort the Exploration by the strongest to the weakest? Currently this is sorted by Ticker and Timeframe. Would like to have it sorted by Strongest to Weakest.

4. vijayss
over 10 years ago

Hi,

While the exploration looks good, the values it shows for ADX in exploration seem to be wrong bcoz when I open a particular chart it shows different ADx values.

Is there something I am doing wrong?

Thanks
Vijay

Leave Comment

Please login here to leave a comment.