Bollenger Bands with exponential moving average mid line

Studies that have been contributed to the community by other users. If you’ve got something useful to share, that’s great!
kelly simon
Posts: 45
Joined: 31 Jan 2008

Bollenger Bands with exponential moving average mid line

Postby kelly simon » 29 Jul 2008

I was wondering if the Bollenger Band plot is based on an exponential moving average or a simple moving average. The mid line seems to plot on a simple moving average, by comparisson - but what about the actual bands - are they based on an ema or sma? Or is it that BB's are always based on an ema, by formula?

Thanks,
Simon

User avatar
TJ
Posts: 6518
Joined: 29 Aug 2006
Location: Global Citizen
Has thanked: 957 times
Been thanked: 1883 times

Postby TJ » 29 Jul 2008

According to John Bollinger in his book, Bollinger on Bollinger Bands. it is best to use SMA for BB.

bowlesj3
Posts: 1975
Joined: 21 Jul 2007
Has thanked: 153 times
Been thanked: 395 times

He is correct.

Postby bowlesj3 » 30 Jul 2008

I use the Simple. It works fine.

kelly simon
Posts: 45
Joined: 31 Jan 2008

Postby kelly simon » 30 Jul 2008

OK, thank you all. Still, it sure would be nice to be able to compare - even if just for the sake of comparison. Anyone have the skills to write out the code for an ema based BB - and willing to share..!

Simon

SUPER
Posts: 622
Joined: 03 Mar 2007
Has thanked: 99 times
Been thanked: 80 times

Postby SUPER » 30 Jul 2008

OK, thank you all. Still, it sure would be nice to be able to compare - even if just for the sake of comparison. Anyone have the skills to write out the code for an ema based BB - and willing to share..!

Simon


Replace simple moving average with exponential in your code.

Here's BollingerBandxAvg function to get you started:


Inputs: Price(NumericSeries), Length(NumericSimple), StandardDev(NumericSimple);

BollingerBand.XAvg = Xaverage(Price, Length) + (StandardDev * StdDev(Price, Length));

SUPER
Posts: 622
Joined: 03 Mar 2007
Has thanked: 99 times
Been thanked: 80 times

Postby SUPER » 31 Jul 2008

Here's the indicator you are looking for hope it helps.

Code: Select all

inputs:
   BollingerPrice( Close ),
   TestPriceUBand( Close ),
   TestPriceLBand( Close ),
   Length( 20 ),
   NumDevsUp( 2 ),
   NumDevsDn( -2 ),
   Displace( 0 ) ;

variables:
   var0( 0 ),
   var1( 0 ),
var2( 0 ),
   var3( 0 ) ;

var0 = XAverage( BollingerPrice, Length ) ;
var1 = StandardDev( BollingerPrice, Length, 1 ) ;
var3 = var0 + NumDevsUp * var1 ;
var2 = var0 + NumDevsDn * var1 ;

condition1 = Displace >= 0 or CurrentBar > AbsValue( Displace ) ;
if condition1 then
   begin
   Plot1[Displace]( var3, "UpperBand" ) ;
   Plot2[Displace]( var2, "LowerBand" ) ;
   Plot3[Displace]( var0, "MidLine" ) ;

                    
   if Displace <= 0 then
      begin
      condition1 = TestPriceLBand crosses over var2 ;
      if condition1 then
         Alert( "Price crossing over lower price band" )
      else
      begin
      condition1 = TestPriceUBand crosses under var3 ;
      if condition1 then
         Alert( "Price crossing under upper price band" ) ;
      end;
      end ;
   end ;

kelly simon
Posts: 45
Joined: 31 Jan 2008

Postby kelly simon » 31 Jul 2008

Super, that is super!
Thanks,
Simon


Return to “User Contributed Studies and Indicator Library”