Closed

Add indicator (filter) to buy sell condition in Amibroker AFL

This project was awarded to edakad for ₹1500 INR.

Get free quotes for a project like this
Employer working
Awarded to:
Skills Required
Project Budget
₹600 - ₹1500 INR
Total Bids
4
Project Description

I have a Amibroker AFL I want to add indicator as filter to the signal to reduce whipsaws, Indicator is ready and when added is not giving signal at required place, Coder need to modify condition to get signals at proper place

Filter indicator : Plot buy only if price closes in blue ribbon and plot sell only if price closes in red ribbon

main system afl and indicator code

_SECTION_BEGIN("EASY FINAL HEIN");

HACLOSE=(O+H+L+C)/4;
HaOpen = AMA( Ref( HaClose, -1 ), 0.5 );
HaHigh = Max( H, HaOpen );
HaLow = Min( L, HaOpen );


_SECTION_BEGIN("SmmA");
per=Param("Major MA",5,5,200,10);

mmaH=EMA(H,per);
smmaH=EMA(mmaH,per);


mmaL=EMA(L,per);
smmaL=EMA(mmaL,per);

mycEH=IIf(HaClose>smmaH,colorBlue,
IIf(HaCLose<smmaL,colorRed,//31));
IIf(HaClose<smmaH AND HaCLose>smmaL ,colorYellow,31)));

_SECTION_END();

_SECTION_BEGIN("Trend Reversal");

TDO = Open; // current open
TDH = High; // current high
TDL = Low; // current low
TDC = Close; // current close
PDO = Ref(Open,-1); // last candle Open
PDH = Ref(High,-1); // last candle high
PDL = Ref(Low,-1); // last candle low
PDC = Ref(Close,-1); // last candle close

slow = LLV(Low, 21);
shigh = HHV(High, 21);
Plot(shigh,"",colorYellow,styleLine);
Plot(slow,"",colorYellow,styleLine);

bull=((H-L)/2)+L;
bear=H-((H-L)/2);

BRev = TDL == LLV(Low, 11);
SRev = TDH == HHV(High, 11);

BTR = PDL == LLV(Low, 11);
STR = PDH == HHV(High, 11);

BB = Ref(Low,-1) == LLV(Low, 11);
SS = Ref(High,-1) == HHV(High, 11);

BuyX= BRev AND PDL>TDL AND TDC>PDC AND TDC>TDO AND C>bull;
ShortX= SRev AND PDH<TDH AND TDC<PDC AND TDC<TDO AND C<bear;

BuyY= BTR AND TDO>PDC AND TDC>TDO AND TDL>PDC AND C>bull;
ShortY= STR AND TDO<PDC AND TDC<TDO AND TDL<PDC AND C<bear;

BuyZ=(BB AND Ref(L,-1)<Ref(L,-2) AND Ref(L,-1)<L AND C>Ref(H,-1)) OR (BTR AND Ref(L,-1)<Ref(L,-2) AND Ref(L,-1)<L AND C>Ref(H,-1));
ShortZ=(SS AND Ref(H,-1)>Ref(H,-2) AND Ref(H,-1)>H AND C<Ref(L,-1)) OR (STR AND Ref(H,-1)>Ref(H,-2) AND Ref(H,-1)>H AND C<Ref(L,-1));


Buy= (BuyX OR BuyY OR BuyZ) AND HaClose>smmaH;
Sell=L < Ref(LLV(L, 11), -1);
Short= (ShortX OR ShortY OR ShortZ) AND HaCLose<smmaL;
Cover=H > Ref(HHV(H, 11), -1);


Buy=ExRem(Buy,Sell);
Short=ExRem(Short,Cover);
Sell=ExRem(Sell,Buy);
Cover=ExRem(Cover,Short);

PlotShapes(Buy* shapeSquare,colorSkyblue, 0, L, Offset=-40);
PlotShapes(Buy* shapeSquare,colorSkyblue, 0,L, Offset=-50);
PlotShapes(Buy* shapeUpArrow,colorBlue, 0,L, Offset=-45);
PlotShapes(Short* shapeSquare,colorPink, 0, H, Offset=40);
PlotShapes(Short* shapeSquare,colorPink, 0,H, Offset=50);
PlotShapes(Short* shapeDownArrow,colorRed, 0,H, Offset=-45);

PlotShapes(Sell*shapeHollowDownArrow,colorPink,0,L,-45);
PlotShapes(Cover*shapeHollowUpArrow,colorSkyblue,0,H,-45);



_SECTION_END();

_SECTION_BEGIN( "Price" );
SetChartOptions( 0, chartShowDates | chartShowArrows | chartLogarithmic | chartWrapTitle );
_N( Title = StrFormat( "{{NAME}} - " + SectorID( 1 ) + " - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) Vol " + WriteVal( V, 1.0 ) + " {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ) );
Plot( C, "Close", colorRose, styleCandle | styleNoTitle | ParamStyle( "Style" ) | GetPriceStyle() );
_SECTION_END();

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online