bollinger_bands() is a generic S3 function that preserves
the input class: data.frame in, data.frame out; matrix in,
matrix out.
bollinger_bands() also accepts a double vector, in which case the indicator is calculated directly without column selection. When the result has a single column it is simplified to a double vector; otherwise the full n by k matrix is returned.
Handling of -values
Leading NAs are always produced for the initial lookback period
where insufficient data is available. If the input itself contains
NAs they are passed through to the underlying C routine, which
can cause the entire output to be filled with NAs. Set
na.ignore = TRUE to strip NAs before calculation and
re-insert them at their original positions in the output.
Usage
bollinger_bands(
x,
cols,
ma = SMA(n = 10),
sd = 2,
sd_down,
sd_up,
na.ignore = FALSE,
...
)Arguments
- x
An OHLC-V series coercible to data.frame. Alternatively,
xmay also be supplied as a double vector.- cols
(formula). An optional
1-variable formula selecting columns fromxvia model.frame. Defaults to~close.- ma
(list). The type of Moving Average (MA) used for the
MiddleBand. SMA by default.- sd
(double). Deviation multiplier for the upper and lower band.
- sd_down
(double). Optional. Deviation multiplier for lower band
- sd_up
(double). Optional. Deviation multiplier for upper band
- na.ignore
(logical). A logical of length 1. FALSE by default. If TRUE,
NAs in the input are stripped before calculation and re-inserted at their original positions in the output.- ...
Additional parameters passed into model.frame
See also
Other Overlap Study:
acceleration_bands(),
double_exponential_moving_average(),
exponential_moving_average(),
extended_parabolic_stop_and_reverse(),
kaufman_adaptive_moving_average(),
mesa_adaptive_moving_average(),
parabolic_stop_and_reverse(),
simple_moving_average(),
t3_exponential_moving_average(),
trendline(),
triangular_moving_average(),
triple_exponential_moving_average(),
weighted_moving_average()
Examples
## load Bitcoin (BTC)
## series
data(BTC, package = "talib")
## calculate the indicator
## for Bitcoin (BTC)
output <- talib::bollinger_bands(BTC)
## display the results
utils::tail(output)
#> UpperBand MiddleBand LowerBand
#> 2024-12-26 01:00:00 104478.35 98217.88 91957.42
#> 2024-12-27 01:00:00 100877.73 97020.16 93162.59
#> 2024-12-28 01:00:00 99886.22 96516.01 93145.81
#> 2024-12-29 01:00:00 99871.12 96134.41 92397.71
#> 2024-12-30 01:00:00 99713.92 95620.42 91526.92
#> 2024-12-31 01:00:00 99373.89 95236.42 91098.95
## visualize the indicator
## with talib::chart()
##
## see ?talib::chart or ?talib::indicator
## for more details
{
## chart OHLC-V
## series with talib::chart()
talib::chart(BTC)
## chart indicator
## with default values
talib::indicator(
talib::bollinger_bands
)
}
