The percentage_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.
percentage_price_oscillator() also accepts a double vector in which case the indicator is calculated 'as-is' without passing through model.frame. percentage_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
percentage_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,
xmay also be supplied as a double vector.- cols
(formula). An optional
1variable formula passed into model.frame. Internally uses~closeby 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
fastandslowMA. SMA by default.- ...
Additional parameters passed into model.frame
See also
Other Momentum Indicator:
absolute_price_oscillator(),
aroon(),
aroon_oscillator(),
average_directional_movement_index(),
average_directional_movement_index_rating(),
balance_of_power(),
chande_momentum_oscillator(),
commodity_channel_index(),
directional_movement_index(),
extended_moving_average_convergence_divergence(),
fast_stochastic(),
fixed_moving_average_convergence_divergence(),
intraday_movement_index(),
minus_directional_indicator(),
minus_directional_movement(),
momentum(),
money_flow_index(),
moving_average_convergence_divergence(),
plus_directional_indicator(),
plus_directional_movement(),
rate_of_change(),
ratio_of_change(),
relative_strength_index(),
stochastic(),
stochastic_relative_strength_index(),
triple_exponential_average(),
ultimate_oscillator(),
williams_oscillator()
Examples
## load Bitcoin (BTC)
## series
data(BTC, package = "talib")
## calculate the indicator
## for Bitcoin (BTC)
output <- talib::percentage_price_oscillator(BTC)
## display the results
utils::tail(output)
#> PPO
#> 2024-12-26 01:00:00 -2.764318
#> 2024-12-27 01:00:00 -2.773590
#> 2024-12-28 01:00:00 -2.637198
#> 2024-12-29 01:00:00 -2.088181
#> 2024-12-30 01:00:00 -1.433072
#> 2024-12-31 01:00:00 -1.271595
## 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::percentage_price_oscillator
)
}
