pub struct PercentagePriceOscillator { /* private fields */ }
Expand description
Percentage Price Oscillator (PPO).
The PPO indicator (or “oscillator”) is a collection of three time series calculated from historical price data, most often the closing price. These three series are:
- The PPO series proper
- The “signal” or “average” series
- The “divergence” series which is the difference between the two
The PPO series is the difference between a “fast” (short period) exponential moving average (EMA), and a “slow” (longer period) EMA of the price series. The average series is an EMA of the PPO series itself.
§Formula
§Parameters
- fast_period - period for the fast EMA. Default is 12.
- slow_period - period for the slow EMA. Default is 26.
- signal_period - period for the signal EMA. Default is 9.
§Example
use ta::indicators::PercentagePriceOscillator as Ppo;
use ta::Next;
let mut ppo = Ppo::new(3, 6, 4).unwrap();
assert_eq!(round(ppo.next(2.0).into()), (0.0, 0.0, 0.0));
assert_eq!(round(ppo.next(3.0).into()), (9.38, 3.75, 5.63));
assert_eq!(round(ppo.next(4.2).into()), (18.26, 9.56, 8.71));
assert_eq!(round(ppo.next(7.0).into()), (28.62, 17.18, 11.44));
assert_eq!(round(ppo.next(6.7).into()), (24.01, 19.91, 4.09));
assert_eq!(round(ppo.next(6.5).into()), (17.84, 19.08, -1.24));
fn round(nums: (f64, f64, f64)) -> (f64, f64, f64) {
let n0 = (nums.0 * 100.0).round() / 100.0;
let n1 = (nums.1 * 100.0).round() / 100.0;
let n2 = (nums.2 * 100.0).round() / 100.0;
(n0, n1, n2)
}
Implementations§
Trait Implementations§
Source§impl Clone for PercentagePriceOscillator
impl Clone for PercentagePriceOscillator
Source§fn clone(&self) -> PercentagePriceOscillator
fn clone(&self) -> PercentagePriceOscillator
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for PercentagePriceOscillator
impl Debug for PercentagePriceOscillator
Source§impl Default for PercentagePriceOscillator
impl Default for PercentagePriceOscillator
Source§impl Display for PercentagePriceOscillator
impl Display for PercentagePriceOscillator
Source§impl Next<f64> for PercentagePriceOscillator
impl Next<f64> for PercentagePriceOscillator
Auto Trait Implementations§
impl Freeze for PercentagePriceOscillator
impl RefUnwindSafe for PercentagePriceOscillator
impl Send for PercentagePriceOscillator
impl Sync for PercentagePriceOscillator
impl Unpin for PercentagePriceOscillator
impl UnwindSafe for PercentagePriceOscillator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more