+91-0000000000

}

Monday – Friday : 9:00 AM – 6:30 PM

Efficient Stocks

Efficient Stocks in Amibroker could represent a method or indicator identifying stocks exhibiting efficiency in their price movements. Using the Amibroker data feed, this tool helps traders spot stocks showing smoother and more predictable price trends.

/_SECTION_BEGIN("efficient stocks");
// Mark Keitel 12-05
// Van K Tharp Efficient Stocks



ATRD180 = ATR(180);
ATRD90 = ATR(90);
ATRD45 = ATR(45);
ATRD20 = ATR(20);
ATRD5 = ATR(5);

DifferenceD180 = Close - Ref(Close,-180);
DifferenceD90 = Close - Ref(Close,-90);
DifferenceD45 = Close - Ref(Close,-45);
DifferenceD20 = Close - Ref(Close,-20);
DifferenceD5 = Close - Ref(Close,-5);

EfficiencyD180 = IIf(ATRD180!=0,DifferenceD180/ATRD180,1);
EfficiencyD90 = IIf(ATRD90!=0,DifferenceD90/ATRD90,1);
EfficiencyD45 = IIf(ATRD45!=0,DifferenceD45/ATRD45,1);
EfficiencyD20 = IIf(ATRD20!=0,DifferenceD20/ATRD20,1);
EfficiencyD5 = IIf(ATRD5!=0,DifferenceD5/ATRD5,1);

Averageeff = (EfficiencyD180 + EfficiencyD90 + EfficiencyD45 +
EfficiencyD20 ) / 4;

Plot( averageeff, "AvgEff", colorLightBlue, styleLine );


x = Param ( "Add Results to a Watchlist? Yes = 1, No = 2" , 2 , 1 , 2 , 1 ) ;   // select whether to add results to watchlist or not
y = Param("Set Watchlist Number", 25, 2, 60,1);     // sets the watchlist number, but reserves the first 2 and last 4 watchlists


//  --------  Parameter Variables for Exploration  --------------------------------
TCH = Param("High close value ", 20, 5, 300, 0.5);
TCL	= Param("Low close value " , 5, 1, 10, 0.25);
AVP = Param("Period for Avg Vol " , 21, 10, 240, 1);
SV = Param("Stock minimum Avg Vol " , 125000, 50000, 1000000, 500000);
My_Conditions = Close >= tcl AND Close <= tch AND MA( Volume, avp ) > sv /*AND Cross( EMA(Close, 5), MA( Close, 8 ) )*/
;

ER = Param("Efficiency Rating", 8, -10, 20, 0.5); 



Filter = My_Conditions + Averageeff > ER; 
Buy = Filter;
Add = IIf( x==1, Filter , 0 ) ;
if( LastValue( Add ) )
{  CategoryAddSymbol( "", categoryWatchlist, y ); }




//  --------------  Organize the exploration results ------------------------------------



P = Param("Period for Price Delta Comparisons", 1, 1, 120, 1);
P1 = Param("Period for Other Delta Comparisons", 3, 1, 120, 1);
PATR = Param("Period for ATR", 5,1,21,1); 
PADX = Param("Period for ADX", 14, 3, 34,1);
PRSI = Param("Period for RSI", 13, 3, 34,1);

AddTextColumn(IndustryID(1) ,"     Industry Sector      ", 25.0, colorWhite, colorLightBlue);

AddColumn(Averageeff, " Efficiency", 3.2, colorGold, colorPlum);

AddColumn(C, "Close", 2.2,  colorDarkGreen, colorLightGrey);
// Volume Info
AddColumn(V, "VOLUME",8.0, colorGold, colorDarkGreen);
AddColumn(Ref(MA(V,21),-1), "21d Avg VOL", 8.0, colorWhite, colorLightBlue);
AddColumn( (V/Ref(MA(V,21),-1))*100,"V % of 21 dMA" ,3.0, colorGold, colorDarkGrey);

//  Price  Deltas
AddColumn(C-Ref(C,-P),"Net Delta from "+WriteVal(-P,1) , 3.2, colorRed, colorLightGrey  );
AddColumn( ( (C-Ref(C,-P))/Ref(C,-P))*100,"% Delta from "+WriteVal(-P,1) , 3.2, colorGold,colorGreen);
AddColumn(C-O, "Delta from Open ", 3.2, colorBlack,colorGold);
AddColumn( ((C-Ref(C,-1))/Ref(C,-1))*100, "% Delta" ,3.1, colorWhite,colorDarkGreen); 

// ATR Info 
AddColumn(ATR(PATR),"ATR (" +WriteVal(patr,2)+")",1.2, colorLightBlue,colorRed );
AddColumn( (ATR(5)/((O+C)/2))*100,"ATR % of C", 3.1, colorDarkOliveGreen, colorLightBlue);

// ADX Info
AddColumn(ADX(PADX) ,"ADX (" +WriteVal(PADX, 2.0)+")", 3.0, colorLightBlue, colorGold);
AddTextColumn(WriteIf(PDI(PADX)>MDI(PADX),"UP","Down"),"DI TREND", 6.0,colorGold,colorDarkGrey);

AddColumn( IIf( PDI()>MDI() , BarsSince(Cross( PDI(),MDI() ) ) ,  -BarsSince(Cross( MDI(),PDI() ) )   ), " Days PDI vs MDI", 3.0, colorWhite, IIf(PDI()>MDI(),colorDarkGreen,colorRed)  ) ;

AddColumn( PDI(PADX)-MDI(PADX), "DI Delta ", 2.1,  colorLightBlue, colorWhite); 
//  AddColumn( ( (ADX(PADX) -Ref(ADX(PADX),-P1))/Ref(ADX(PADX) ,-P1))*100,"% ADX Delta from "+WriteVal(-P1,1) , 3.2, colorGold,colorGreen);


// RSI Info
AddColumn(RSI(PRSI) , "RSI ("+ WriteVal(PRSI,2)+")", 3.0, colorLightBlue, colorGold);
AddTextColumn(WriteIf(RSI(PRSI) > Ref(HHV(RSI(PRSI),P1),-1), "UP", WriteIf( RSI(PRSI)< Ref(HHV(RSI(PRSI),P1),-1),"DOWN","~~") ), "RSI TREND", 6.0, colorDarkOliveGreen, colorLightBlue);
AddColumn( ( (RSI(PRSI) -Ref(RSI(PRSI) ,-P1))/Ref(RSI(PRSI),-P1))*100,"% RSI Delta from "+WriteVal(-P1,1) , 3.2, colorGold,colorGreen);
AddColumn(  100*((C-LLV(RSI(PRSI),21  ))/(HHV(RSI(PRSI),21)-LLV(RSI(PRSI),21)))   ,"% of 21d RSI range", 3.0, colorLightBlue,colorRed );


//  Other Info
AddColumn(H-L,"range",2.2, colorWhite,colorDarkGreen );
AddColumn( HHV(H,21)-LLV(L,21), "21d Range", 2.2, colorDarkGreen,colorGold);
AddColumn(  100*((RSI(prsi)-LLV(RSI(PRSI),21  ))/(HHV(RSI(PRSI),21)-LLV(RSI(PRSI),21)))   ,"% of 21d RSI range", 3.0, colorLightBlue,colorRed );

//  AddColumn(V*C, "Vol X Close", 12.0, colorlightBlue,colorGold); 

AddColumn( MA(V,5)/Ref(MA(V,21),-5) *( ( (1- ( C-Ref(C,-5) ) / Ref(C,-5) )   ) *100), "Relative Vol X % Close" ,3.2 ,colorGold,colorBlack);
ADR = ( (H-L) + Ref(H-L,-1) +  Ref(H-L,-2) +  Ref(H-L,-3) +  Ref(H-L,-4)  )/5;

AddColumn((adr/C)*100, "ADR % of C", 2.2, colorDarkGreen, colorGold); 
AddColumn( ADR, "Avg Daily Range (5)", 2.2, colorWhite,colorLightBlue);

AddColumn( C, "Close", 3.2, colorLightBlue, colorGold);

AddTextColumn(Name(), "SYMBOL", 6.0);
 
_SECTION_END();

Open chat
1
Hi, how can I help you?