//Pattern Recognition graph
//with shading
/*TRENDLINES BREAKOUT*/
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);
/////////////////////////////////////
// Shading //
////////////////////////////////////
fill=Param("style",2,1,2,1);
>IIf(fill==1,styleHistogram,IIf(fill==2,styleArea,Null));
x=IIf(trs >
trr,trr,trs);
Plot(x,"",colorLightGrey,style);
Plot(trr,"",colorPink,style);
////////////////////////////////////////////
// Pattern Recognition in title bar //
///////////////////////////////////////////
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);
///////////////////////////////////
// Bullish or Bearish breakout //
//////////////////////////////////
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)*/;
/////////////////////////////////////
// Automatic Analysis //
////////////////////////////////////
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");