Xác định mẫu hình nến tự động cho Amibrocker
Nhiều nhà đầu tư gặp khó khăn trong việc xác định các mẫu hình nến đúng cách. AFL sẽ tự động thông báo các mẫu hình nến cơ bản, điều này rất hữu ích cho những nhà đầu tư. AFL này có thể xác định các mẫu hình nến
-SECTION_BEGIN("Pattern_Recognition_with_Shading");
x = Cum(1);
per = Param("Percent",3,1,5,1);
s1=L;
s11=H;
pS = TroughBars( s1, per, 1 ) == 0;
endt= LastValue(ValueWhen( pS, x, 1 ));
startt=LastValue(ValueWhen( pS, x, 2 ));
endS = LastValue(ValueWhen( pS, s1, 1 ) );
startS = LastValue( ValueWhen( pS, s1, 2 ));
dtS =endt-startt;
aS = (endS-startS)/dtS;
bS = endS;
trendlineS = aS * ( x -endt ) + bS;
pR = PeakBars( s11, per, 1 ) == 0;
endt1= LastValue(ValueWhen( pR, x, 1 ));
startt1=LastValue(ValueWhen( pR, x, 2 ));
endR = LastValue(ValueWhen( pR, s11, 1 ) );
startR = LastValue( ValueWhen( pR, s11, 2 ));
DTR=ENDT1-STARTT1;
aR = (endR-startR)/dtR;
bR = endR;
trendlineR = aR * ( x -endt1 ) + bR;
BEGIN=Min(STARTT,STARTT1);
TRS = IIf(x>BEGIN-10,trendlineS,-1e10);
TRR = IIf(x>BEGIN-10,trendlineR,-1e10);
Condcolor=(Cross(C,trendlineR) AND X>ENDT1) OR (Cross(trendlineS,C) AND
X>ENDT);
BarColor=IIf(Condcolor,7,1);
Plot(C,"Close",BarColor,styleCandle);
Plot(TRS,"Support",colorYellow,styleLine);
Plot(TRR,"Resist",colorYellow,styleLine);
fill=Param("style",2,1,2,1);
style=IIf(fill==1,styleHistogram,IIf(fill==2,styleArea,Null));
x=IIf(trs > trr,trr,trs);
Plot(x,"",colorLightGrey,style);
Plot(trr,"",colorPink,style);
Lowline=Ends-starts;
Highline=endr-startr;
Wedge=IIf(Highline <0 AND Lowline > 0,1,0);
DecendingTriangle=IIf(Highline < 0 AND Lowline==0,1,0);
AscendingTriangle=IIf(Highline==0 AND Lowline > 0,1,0);
DownChannel=IIf(Highline<0 AND Lowline<0,1,0);
UpChannel=IIf(Highline>0 AND Lowline>0,1,0);
BroadeningWedge=IIf(Highline > 0 AND Lowline < 0,1,0);
BullishBreakout=Cross(C,trendlineR);
BearishBreakout=Cross(trendlineS,C);
Title=Name()+ WriteIf(wedge==1," Wedge","")+WriteIf(DecendingTriangle==1," Decending
Triangle","")+WriteIf(AscendingTriangle==1,"Ascending Triangle","")/*+WriteVal(Lowline)
*/+WriteIf(DownChannel==1," Downward Sloping Channel","")+WriteIf(UpChannel==1,"
Upward Sloping Channel","")+WriteIf(broadeningWedge==1," Broadening
Wedge","")+"\n"+EncodeColor(colorGreen)+WriteIf(bullishbreakout,"Bullish
Breakout",EncodeColor(colorRed)+WriteIf(bearishbreakout,"Bearish Breakout",""))/*
+WriteVal(highline)*/;
Filter=AscendingTriangle OR DecendingTriangle OR Wedge OR DownChannel OR
UpChannel OR BroadeningWedge OR Bullishbreakout OR bearishbreakout;
AddTextColumn(WriteIf(bullishbreakout,"bullish Breakout",""),"BullBreak");
AddTextColumn(WriteIf(bearishBreakout,"Bearish Breakout",""),"BearBreak");
AddTextColumn(WriteIf(ascendingtriangle,"Ascending Triangle",WriteIf
(decendingtriangle,"Decending Triangle",WriteIf(Wedge,"Wedge",WriteIf
(DownChannel,"Down Channel",WriteIf(UpChannel,"Up Channel",WriteIf
(BroadeningWedge,"Broadening Wedge","")))))),"Pattern");
AddColumn(C,"Close");
_SECTION_END();