Skip to main content

ADX BUY SELL FOR AMI 5.3 for Amibroker (AFL)

Shailendra-0 about 13 years ago Amibroker (AFL)

  • Rating:
    4 / 5 (Votes 3)
  • Tags:
    oscillator, trading system, amibroker

THIS INDICATOR IS MODIFIED FOR AMI 5.3 {ORIGINAL POST BY HAMAN} INDICATOR NAME IS “best adx signal amajeed for Amibroker (AFL)”

I ADDED 1 MORE FUNCTION WHICH REMOVES EXTRA BUY SELL SIGNALS

Indicator / Formula

Copy & Paste Friendly
_SECTION_BEGIN("ADX");
Range             = Param(" +DI - D range", 10, 5, 30,1 );
Plot(PDI(Range),"",8,4);
Plot(MDI(Range),"",4,4);
Plot(MDI(Range),"",4,10);
Plot(ADX(Range),"",6,styleThick);
Plot(ADX(Range),"",6,4);

Buy             = Cross(PDI(Range), MDI(Range)) OR Cross (PDI(Range), ADX(Range))OR Cross (ADX(Range), MDI(Range));
Sell            = Cross(MDI(Range), PDI(Range))OR Cross (MDI(Range), ADX(Range))OR Cross (ADX(Range), PDI (Range)) OR  (PDI(Range)>=(40) );
TradeDisplay = ParamToggle("Remove Extra Trades?", "No|Yes");

if(TradeDisplay != 0){
	Buy = ExRem(Buy, Sell);
  	Sell = ExRem(Sell, Buy); // THIS WILL REMOVE EXESS SIGNALS ON A CHART OR IN AN EXPLORATION 
}

Filter = Buy OR Sell;
Action = WriteIf(Buy, "BUY", WriteIf(Sell, "SELL", "   "));

shape = Buy * shapeUpArrow + Sell * shapeDownArrow;
 
PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorGreen);
PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorRed);

bars=SelectedValue(Min( BarsSince( Cross(PDI(Range) , MDI(Range) )), BarsSince( Cross( MDI(Range), PDI(Range))) ));
prevclose=Ref(Close,-bars);
Com=EncodeColor(colorTan)+("\n\nCurrently the +DMI ("+Range+") is "+
WriteIf(PDI(Range) > MDI(Range),"bullish","bearish")+", and it crossed "+
WriteIf(PDI(Range) > MDI(Range),"above","below")+" -DMI ("+Range+") ."+"\n"+EncodeColor(colorAqua)+
WriteVal( Min( BarsSince( Cross( PDI(Range), MDI(Range) )), BarsSince( Cross( MDI(Range), PDI(Range)))), 0.0)+
" period(s) ago.")+EncodeColor(colorTan)+
Com=("\n\nSince the +DMI crossed -DMI, "+Name()+ "'s price has  : ")+EncodeColor(colorGold)+"\n"+
WriteIf(Close>prevclose,"increased %","decreased %")+WriteVal(100*(Close-prevclose)/prevclose)+
EncodeColor(colorTan)+Com=("\n\nAnd has ranged from a high of "+
WriteVal(HHV(High,bars+1),6.2)+" to a low of "+WriteVal(LLV(Low,bars+1),6.2));
Title = EncodeColor(colorWhite)+ "ABS3" + " - " +  Name()  + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) +
"  - " + Date() +"  -  "+"\n" +EncodeColor(colorBlue) +"Op-"+O+"  "+"Hi-"+H+"  "+"Lo-"+L+"  "+
"Cl-"+C+"  "+ "Vol= "+ WriteVal(V)+ Com;
Plot(40,"",colorDarkGrey,styleDashed|styleNoLabel);
Plot(20,"",colorDarkGrey,styleDashed|styleNoLabel);
_SECTION_END();

1 comments

1. haman
about 13 years ago

IAM WITH U BUT
WHY I PUT DIFERENT SIGNALS?
BECOSE IF ADX CROSS PDI OR MDI THIS WILL GIVE A LONG TREND
AND THE OPPOSITE ,CROSSING ANY OF (PDI OR MDI )ADX THIS MEANS LONG TREND OF THEM
THANKS SER ,ALL OF THEM ARE TRUE

Leave Comment

Please login here to leave a comment.