Bollinger Bands®
Created by John Bollinger, Bollinger Bands price channels depict volatility as standard deviation boundary line range from a moving average of price. Bollinger Bands® is a registered trademark of John A. Bollinger. [Discuss] 💬
// C# usage syntax
IEnumerable<BollingerBandsResult> results =
quotes.GetBollingerBands(lookbackPeriods, standardDeviations);
Parameters
lookbackPeriods
int
- Number of periods (N
) for the center line moving average. Must be greater than 1 to calculate; however we suggest a larger period for statistically appropriate sample size. Default is 20.
standardDeviations
double
- Width of bands. Standard deviations (D
) from the moving average. Must be greater than 0. Default is 2.
Historical quotes requirements
You must have at least N
periods of quotes
to cover the warmup periods.
quotes
is a collection of generic TQuote
historical price quotes. It should have a consistent frequency (day, hour, minute, etc). See the Guide for more information.
Response
IEnumerable<BollingerBandsResult>
- This method returns a time series of all available indicator values for the
quotes
provided. - It always returns the same number of elements as there are in the historical quotes.
- It does not return a single incremental indicator value.
- The first
N-1
periods will havenull
values since there’s not enough data to calculate.
BollingerBandsResult
Date
DateTime
- Date from evaluated TQuote
Sma
double
- Simple moving average (SMA) of price (center line)
UpperBand
double
- Upper line is D
standard deviations above the SMA
LowerBand
double
- Lower line is D
standard deviations below the SMA
PercentB
double
- %B
is the location within the bands. (Price-LowerBand)/(UpperBand-LowerBand)
ZScore
double
- Z-Score of current price (number of standard deviations from mean)
Width
double
- Width as percent of SMA price. (UpperBand-LowerBand)/Sma
Utilities
See Utilities and helpers for more information.
Chaining
This indicator may be generated from any chain-enabled indicator or method.
// example
var results = quotes
.Use(CandlePart.HL2)
.GetBollingerBands(..);
Results can be further processed on PercentB
with additional chain-enabled indicators.
// example
var results = quotes
.GetBollingerBands(..)
.GetRsi(..);