So what makes these better bollinger bands better than standard? They look "tighter" to me, but I have not done any comparative studies. Anyone?
_____ From: [email protected] [mailto:[email protected]] On Behalf Of Tomasz Janeczko Sent: Sunday, February 15, 2009 3:53 AM To: [email protected] Subject: Re: [amibroker] Better Bollinger Bands Hello, Replace lines like that: mt = alpha*C+(1-alpha)*(if(Cum(1)<pds,C,PREV)); with AFL equivalent (simpler): mt = AMA( C, alpha ); Any other statement involving PREV the same way. Final result: pds=Param("Periods",20,2,200); sd=Param("Standard Deviations",2, 0.01,10); alpha=2/(pds+1); mt=AMA( C, alpha ); ut=AMA( mt, alpha ); dt=((2-alpha)*mt-ut)/(1-alpha); mt2=AMA(abs(C-dt), alpha ); ut2=AMA(mt2,alpha ); dt2=((2-alpha)*mt2-ut2)/(1-alpha); but=dt+sd*dt2; blt=dt-sd*dt2; Plot( C, "Price", colorBlack, styleCandle ); Plot( but, "Upper band", colorRed ); Plot( blt, "Lower band", colorRed ); Best regards, Tomasz Janeczko amibroker.com ----- Original Message ----- From: [email protected] To: [email protected] Cc: [email protected] ; [email protected] Sent: Sunday, February 15, 2009 3:37 AM Subject: [amibroker] Better Bollinger Bands Someone was asking for this afl. I got around to translating. Enjoy. Now, if only someone can teach me , really how to make money !!! /* Better Bollinger Bands I pds:=Input("Periods",2,200,20); sd:=Input("Standard Deviations",.01,10,2); alpha:=2/(pds+1); mt:=alpha*C+(1-alpha)*(if(Cum(1)<pds,C,PREV)); ut:=alpha*mt+(1-alpha)*(if(Cum(1)<pds,C,PREV)); dt:=((2-alpha)*mt-ut)/(1-alpha); mt2:=alpha*abs(C-dt)+(1-alpha)*PREV; ut2:=alpha*mt2+(1-alpha)*PREV; dt2:=((2-alpha)*mt2-ut2)/(1-alpha); but:=dt+sd*dt2; blt:=dt-sd*dt2; dt; but; blt //------------ easy language ----------- inputs: lookback(20), mult(2); vars: alpha(0), mt(0), ut(0), dt(0), mt2(0), ut2(0), dt2(0), but(0), blt(0); alpha = 2 / (lookback + 1); mt = alpha * close + (1 - alpha) * mt; ut = alpha * mt + (1 - alpha) * ut; dt = ((2 - alpha) * mt - ut) / (1 - alpha); mt2 = alpha * absvalue(close - dt) + (1 - alpha) * mt2; ut2 = alpha * mt2 + (1 - alpha) * ut2; dt2 = ((2 - alpha) * mt2 - ut2) / (1 - alpha); but = dt + mult * dt2; blt = dt - mult * dt2; plot1(dt,"CenterB"); plot2(but,"UpperB"); plot3(blt,"LowerB"); */ _SECTION_BEGIN("Better Bollinger Bands"); pds = Param("Periods",2,1,200,1); SD = Param("sd",3,0.01,5,0.01); ALPHA = 2/(PDS+1); mt = AMA(C, alpha); ut = AMA(mt, alpha); dt = ((2 - alpha) * mt - ut) / (1 - alpha); //mt2 = alpha * absvalue(Close - dt) + (1 - alpha) * mt2; mt2 = AMA(abs(C - dt), alpha); ut2 = AMA( mt2 , alpha) ; dt2 = ((2 - alpha) * mt2 - ut2) / (1 - alpha); but = dt + sd * dt2; blt = dt - sd * dt2; Plot(but,"Upper Band", colorRed, styleLine); Plot(dt,"Cente Band", colorBlue, styleLine); Plot(blt,"Lower Band", colorBrightGreen, styleLine); _SECTION_END();
