{ Downloaded From https://www.WiseStockTrader.com }

{ATR/Bollinger composite bands v2.0

Copyright © 2004-2009 Jose Silva.
For personal use only.
All code remains the property of Jose Silva.
http://www.metastocktools.com }

{Inputs}
type:=Input("Type:  [1]ATR,  [2]BB,  [3]Composite1,  [4]Comp2",1,4,1);
pds:=Input("BB/ATR periods",1,252,21);
dv:=Input("BB/ATR deviations",0,10,2);

{Bollinger bands}
BBup:=BBandTop(C,pds,S,dv);
BBdw:=BBandBot(C,pds,S,dv);

{ATR bands - MetaStockTools.com version}
pds:=pds/2;
ATup:=Mov(C,pds,TRI)+Mov(ATR(1),pds,TRI)*dv;
ATdw:=Mov(C,pds,TRI)-Mov(ATR(1),pds,TRI)*dv;

{Composite bands 1:
  ATR/BB bands closest to price bars}
HiUp:=Max(ATup,BBup);
LoUp:=Min(ATup,BBup);
HiDw:=Max(ATdw,BBdw);
LoDw:=Min(ATdw,BBdw);
CompUp1:=LoUp;
CompDw1:=HiDw;

{Composite bands 2:
  ATR/BB bands closest to price bars,
  and not touching price bars where possible}
CompUp2:=If(LoUp<H,HiUp,LoUp);
CompDw2:=If(HiDw>L,LoDw,HiDw);

{Final bands}
up:=If(type=1,ATup,If(type=2,BBup,
 If(type=3,CompUp1,CompUp2)));
dw:=If(type=1,ATdw,If(type=2,BBdw,
 If(type=3,CompDw1,CompDw2)));

{Plot bands on price chart}
up;dw