Hi, Dick, I created a middle line, that I tested and it works. I have attached a chart image of the XAU Philadelpha Gold and Silver Index back in 2001 when It was going crazy.
I have also attached the modified BB code with the middle line plotted in blue.
title="DickHoiermanBBv";
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;
bbv=(but+blt)/2;
Plot( C, "Price", colorBlack, styleCandle );
Plot( but, "Upper band", colorRed );
Plot( bbv, "BBaverage", colorBlue );
Plot( blt, "Lower band", colorRed );
--------------------------------------------------------------------------------------------------- --- On Mon, 2/16/09, areehoi <areehoi@xxxxxxxxx> wrote:
What do I need to get a "middle Line"? Thanks
Dick H
--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <groups@xxx> wrote: > > 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: mohany1@xxx > To: amibroker@xxxxxxxxxxxxxxx > Cc: amibroker@xxxxxxxxxxxxxxx ; amibroker@xxxxxxxxxxxxxxx > 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(); >
------------------------------------
**** IMPORTANT PLEASE READ **** This group is for the discussion between users only. This is *NOT*
technical support channel.
TO GET TECHNICAL SUPPORT send an e-mail directly to SUPPORT {at} amibroker.com
TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at http://www.amibroker.com/feedback/ (submissions sent via other channels won't be considered)
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: http://www.amibroker.com/devlog/
Yahoo! Groups Links
<*> To visit your group on the web, go to: http://groups.yahoo.com/group/amibroker/
<*> Your email settings: Individual Email | Traditional
<*> To change settings online go to: http://groups.yahoo.com/group/amibroker/join (Yahoo! ID required)
<*> To change settings via email: mailto:amibroker-digest@xxxxxxxxxxxxxxx
mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> To unsubscribe from this group, send an email to: amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
|