// Downloaded From https://www.WiseStockTrader.com // Trendlines AFL code by Edward Pottasch, Mar 2013 xx=BarIndex();x=xx;Lx=LastValue(x); nbar=Param("N Pivot Bars",5,2,50,1); npiv=Param("number of pivots",2,1,5,1); tf=Param("Time Frame (min)",1,1,10080,1);tfrm=in1Minute*tf; CleanPivots=ParamToggle("Filter Pivots","No|Yes",1); PivotSymmetry=ParamToggle("Symmetric Pivots","No|Yes",0); TimeFrameSet(tfrm); if(PivotSymmetry) { fc=1; pk=H>Ref(HHV(H,nbar*fc),-1) AND Ref(HHV(H,nbar),nbar)<=H; tr=L=L; } else { fc=2; pk=H>Ref(HHV(H,nbar*fc),-1) AND Ref(HHV(H,nbar),nbar)<=H; tr=L=L; } px0=ValueWhen(pk,x,0); tx0=ValueWhen(tr,x,0); px1=ValueWhen(pk,x,1); tx1=ValueWhen(tr,x,1); px2=ValueWhen(pk,x,2); tx2=ValueWhen(tr,x,2); ph0=ValueWhen(pk,H,0); tl0=ValueWhen(tr,L,0); ph1=ValueWhen(pk,H,1); tl1=ValueWhen(tr,L,1); ph2=ValueWhen(pk,H,2); tl2=ValueWhen(tr,L,2); if(CleanPivots) { pk=IIf((ph0>=ph1 AND tx0>px0 AND px0!=px1) OR (ph1tx1) OR (ph0>=ph1 AND tx0tx0 AND tx0!=tx1) OR (tl1>tl2 AND tx2>px1) OR (tl0<=tl1 AND px01) { pk=TimeFrameExpand(pk,tfrm,expandFirst); pkh=TimeFrameExpand(pkh,tfrm,expandFirst); pkhs=IIf(!IsEmpty(pkh),1,0);pkhs=pkhs-Ref(pkhs,-1); pk=pk AND H==pkh; cond1=Sum(pk,BarsSince(pkhs==1)+1)==1 AND pk; pk=pk AND cond1; tr=TimeFrameExpand(tr,tfrm,expandFirst); trl=TimeFrameExpand(trl,tfrm,expandFirst); trls=IIf(!IsEmpty(trl),1,0);trls=trls-Ref(trls,-1); tr=tr AND L==trl; cond1=Sum(tr,BarsSince(trls==1)+1)==1 AND tr; tr=tr AND cond1; } SetChartOptions(0,chartShowDates); SetBarFillColor(IIf(C>O,colorBrightGreen,IIf(C<=O,colorRed,colorLightGrey))); Plot(C,"\nPrice",IIf(C>O,ColorRGB(0,255,0),IIf(C<=O,ColorRGB(255,0,0),colorLightGrey)),64,0,0,0,0); PlotShapes(shapeSmallCircle*tr,colorGreen,0,L,-10); PlotShapes(shapeSmallCircle*pk,colorRed,0,H,10); for (i=1;i<=npiv;i++) { y0=ValueWhen(tr,L,i-1); y1=ValueWhen(tr,L,i); x0=ValueWhen(tr,xx,i-1); x1=ValueWhen(tr,xx,i); aa=(y0-y1)/(x0-x1); ls1=aa*(xx-x1)+y1; dls1=ls1-Ref(ls1,-1); ls1=IIf(dls1<0,Null,ls1); if(i==1) Plot(ls1,"",colorBrightGreen,styleLine|styleNoRescale,0,0,0,1); if(i>1) { ls1=IIf(tr,Null,ls1); Plot(ls1,"",colorDarkGreen,styleNoLine|styleDots|styleThick|styleNoRescale,0,0,0,1); } y0=ValueWhen(pk,H,i-1); y1=ValueWhen(pk,H,i); x0=ValueWhen(pk,xx,i-1); x1=ValueWhen(pk,xx,i); aa=(y0-y1)/(x0-x1); hs1=aa*(xx-x1)+y1; dhs1=hs1-Ref(hs1,-1); hs1=IIf(dhs1>0,Null,hs1); if(i==1) Plot(hs1,"",colorRed,styleLine|styleNoRescale,0,0,0,1); if(i>1) { hs1=IIf(pk,Null,hs1); Plot(hs1,"",colorOrange,styleNoLine|styleDots|styleThick|styleNoRescale,0,0,0,1); } }