Skip to contents

The absolute_price_oscillator() is a generic S3 function that builds upon 'type-safe'-esque workflows limited to classes in in base R, and the package-wide dependencies. Ie. class in, class out. Each method is a soft wrapper of model.frame and therefore the OHLC-V series must be coercible to a data.frame.

absolute_price_oscillator() also accepts a double vector in which case the indicator is calculated 'as-is' without passing through model.frame. absolute_price_oscillator() returns an n by k matrix computed in C by default. When k = 1, the result is simplified to a double vector; for k > 1, the full n by k matrix is returned.

Usage

absolute_price_oscillator(x, cols, fast = 7, slow = 14, ma = SMA(n = 10), ...)

Arguments

x

An OHLC-V series that is coercible to data.frame. Alternatively, x may also be supplied as a double vector.

cols

(formula). An optional 1 variable formula passed into model.frame. Internally uses ~close by default.

fast

(integer). Period for the fast Moving Average (MA).

slow

(integer). Period for the slow Moving Average (MA).

ma

(list). The type of Moving Average (MA) used for the fast and slow MA. SMA by default.

...

Additional parameters passed into model.frame

Value

An object of same class and length of x:

APO

double

Author

Serkan Korkmaz

Examples

## load Bitcoin (BTC)
## series
data(BTC, package = "talib")

## calculate the indicator
## for Bitcoin (BTC)
output <- talib::absolute_price_oscillator(BTC)

## display the results
utils::tail(output)
#>                           APO
#> 2024-12-26 01:00:00 -2755.553
#> 2024-12-27 01:00:00 -2750.388
#> 2024-12-28 01:00:00 -2603.309
#> 2024-12-29 01:00:00 -2045.121
#> 2024-12-30 01:00:00 -1389.731
#> 2024-12-31 01:00:00 -1221.554

## 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::absolute_price_oscillator
 )
}