Construct (optionally further smoothed and centered ) volatility bands around prices

Description

John Bollinger's famous adaptive volatility bands most often use the typical price of an HLC series, or may be calculated on a univariate price series (see BBands).

Usage

1
2
PBands(prices, n = 20, maType = "SMA", sd = 2, ..., fastn = 2,
  centered = FALSE, lavg = FALSE)

Arguments

prices

A univariate series of prices.

n

Number of periods to average over.

maType

A function or a string naming the function to be called.

sd

The number of standard deviations to use.

fastn

Number of periods to use for smoothing higher-frequency 'noise'.

centered

Whether to center the bands around a series adjusted for high frequency noise, default FALSE.

lavg

Whether to use a longer (n*2) smoothing period for centering, default FALSE.

...

any other pass-thru parameters, usually for function named by maType.

Details

This function applies a second moving average denoted by fastn to filter out higher-frequency noise, making the bands somewhat more stable to temporary fluctuations and spikes.

If centered is TRUE, the function also further smoothes and centers the bands around a centerline adjusted to remove this higher frequency noise. If lavg is also TRUE, the smoothing applied for the middle band (but not the volatility bands) is doubled to further smooth the price-response function.

If you have multiple different price series in prices, and want to use this function, call this functions using lapply(prices,PBands,...).

Value

A object of the same class as prices or a matrix (if try.xts fails) containing the columns:

dn

The lower price volatility Band.

center

The smoothed centerline (see details).

up

The upper price volatility Band.

Author(s)

Brian G. Peterson

See Also

BBands

Examples

1
2
data(ttrc)
  pbands.close <- PBands( ttrc[,"Close"] )

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.