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: 7740
Joined: 29 Aug 2006
Location: Global Citizen
Has thanked: 1033 times
Been thanked: 2221 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: 2180
Joined: 21 Jul 2007
Has thanked: 227 times
Been thanked: 429 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: 646
Joined: 03 Mar 2007
Has thanked: 106 times
Been thanked: 84 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: 646
Joined: 03 Mar 2007
Has thanked: 106 times
Been thanked: 84 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”