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
Bollenger Bands with exponential moving average mid line
-
- Posts: 45
- Joined: 31 Jan 2008
- TJ
- Posts: 7742
- Joined: 29 Aug 2006
- Location: Global Citizen
- Has thanked: 1033 times
- Been thanked: 2222 times
-
- Posts: 45
- Joined: 31 Jan 2008
Replace simple moving average with exponential in your code.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
Here's BollingerBandxAvg function to get you started:
Inputs: Price(NumericSeries), Length(NumericSimple), StandardDev(NumericSimple);
BollingerBand.XAvg = Xaverage(Price, Length) + (StandardDev * StdDev(Price, Length));
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 ;