// Downloaded From https://www.WiseStockTrader.com _SECTION_BEGIN("Optimal Slow Tracking Filter"); Plot(C, "", colorBlack, styleCandle); price = ParamField("Price field", 3); Period1=Param("Period of Smoothing OTF",9,1,30,1); Period2=Param("Period of Slowing OTF",3,1,25,1); koef = Param( "koefsmoofs", 8, 2, 15, 1 ); koe = Param( "koesmoofs", 16, 3, 25, 1 ); SC=2/(Period1+1); MPr=(HHV(H,Period2)+LLV(L,Period2))/2; Val1 = AMA(MPr-Ref(MPr,-1), SC); Val2=AMA((HHV(H,Period2)-LLV(L,Period2))/2, SC); Lamb=IIf(Val2!=0,abs(Val1/Val2), 0); Alpha=(-Lamb*Lamb+Lamb*sqrt(Lamb*Lamb+koe))/koef;//koe Val3= AMA( price, Alpha); Plot(Val3,"Sm Slow OTF", ParamColor( "Sm Slow OTF", colorBlack ), ParamStyle("Style S", styleNoLabel|styleDots) ); /////////////////////// Fast ////////// pric = ParamField("Pric field", 3); Period=Param("Period OTF",9,1,30,1); koef1 = Param( "koefsmoof", 8, 2, 15, 1 ); koe1 = Param( "koesmoof", 16, 3, 25, 1 ); SC1=2/(Period+1); MPr1=(H+L)/2; Vl1 = AMA(MPr1-Ref(MPr1,-1), SC1); Vl2 = AMA((H-L)/2, SC1); Lmb=IIf(Vl2!=0,abs(Vl1/Vl2), 0); Alph=(-Lmb*Lmb+Lmb*sqrt(Lmb*Lmb+koe1))/koef1;//koe1 Vl3 = AMA(pric, Alph); Plot(Vl3,"Smoothing OTF", ParamColor( "Smoothing OTF", colorRed ), ParamStyle("Style", styleNoLabel|styleDots)); ///////////////////////////////////////////////////// _SECTION_END();