Bollinger Bands® (BB)
Bollinger Bands Technical Indicator (BB) is similar to Envelopes. The only difference is that the bands of Envelopes are plotted a fixed distance (%) away from the moving average,
while the Bollinger Bands are plotted a certain number of standard
deviations away from it. Standard deviation is a measure of volatility,
therefore Bollinger Bands adjust themselves to the market conditions.
When the markets become more volatile, the bands widen and they
contract during less volatile periods. Bollinger Bands are usually plotted on
the price chart, but they can be also added to the indicator chart
(Custom Indicators). Just like in case of the Envelopes,
the interpretation of the Bollinger Bands is based on the fact that the
prices tend to remain in between the top and the bottom line of the
bands. A distinctive feature of the Bollinger Band indicator is its
variable width due to the volatility of prices. In periods of
considerable price changes (i.e. of high volatility) the bands widen
leaving a lot of room to the prices to move in. During standstill
periods, or the periods of low volatility the band contracts keeping
the prices within their limits.
The following traits are particular to the Bollinger Band:

abrupt changes in prices tend to happen after the band has contracted due to decrease of volatility.

if prices break through the upper band, a continuation of the current trend is to be expected.

if the pikes and hollows outside the band are followed by pikes and hollows inside the band, a reverse of trend may occur.

the price movement that has started from one of the
band’s lines usually reaches the opposite one. The last observation is
useful for forecasting price guideposts.
Calculation:
Bollinger bands are formed by three lines. The middle line (ML) is a usual Moving Average. ML = SUM [CLOSE, N]/N
The top line, TL, is the same as the middle line a certain number of standard deviations (D) higher than the ML. TL = ML + (D*StdDev)
The bottom line (BL) is the middle line shifted down by the same number of standard deviations. BL = ML — (D*StdDev)
Where: N — is the number of periods used in calculation; SMA — Simple Moving Average;
StdDev — means Standard Deviation.
StdDev = SQRT(SUM[(CLOSE — SMA(CLOSE, N))^2, N]/N)
It is recommended to use 20period Simple Moving Average
as the middle line, and plot top and bottom lines two standard
deviations away from it. Besides, moving averages of less than 10
periods are of little effect.
Source Code
Full MQL4 source of Bollinger Bands is available in the Code Base: Bollinger Bands
