Struct yata::methods::ADI [−][src]
pub struct ADI { /* fields omitted */ }
Expand description
Accumulation Distribution Index of specified length
for timeseries of OHLCV
CLV
ranges from -1.0
when the close is the low of the day, to +1.0
when it’s the high.
For instance if the close is 3/4
the way up the range then CLV
is +0.5
.
The accumulation/distribution index adds up volume multiplied by the CLV
factor, i.e.
The name accumulation/distribution comes from the idea that during accumulation buyers are in control and the price will be bid up through the day, or will make a recovery if sold down, in either case more often finishing near the day’s high than the low. The opposite applies during distribution.
The accumulation/distribution index is similar to on balance volume, but acc/dist is based on the close within the day’s range, instead of the close-to-close up or down that the latter uses.
Can be used by a shortcut ADI
Used in indicators: Chaikin Money Flow
, Chaikin Oscillator
Parameters
Has a single parameter length
: PeriodType
When length == 0
, ADI
becomes windowless. That means full ADI
value accumulation over time.
When length > 0
, ADI
will be calculated over the last length
values.
Input type
Input type is reference to OHLCV
Output type
Output type is ValueType
Examples
use yata::prelude::*; use yata::methods::ADI; use yata::helpers::RandomCandles; let mut candles = RandomCandles::default(); let mut windowless = ADI::new(0, &candles.first()).unwrap(); let mut windowed = ADI::new(3, &candles.first()).unwrap(); // <----- Window size 3 let candle = candles.next().unwrap(); assert_ne!(windowless.next(&candle), windowed.next(&candle)); let candle = candles.next().unwrap(); assert_ne!(windowless.next(&candle), windowed.next(&candle)); let candle = candles.next().unwrap(); assert!((windowless.next(&candle)-windowed.next(&candle)).abs() < 1e-5); // Must be equal here
Performance
O(1)
See also
Implementations
Trait Implementations
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
type Params = PeriodType
type Params = PeriodType
Method parameters
Static method for creating an instance of the method with given parameters
and initial value
(simply first input value)
Generates next output value based on the given input value
Returns memory size of the method (size, align)
Iterates the Method
over the given inputs
slice and returns Vec
of output values. Read more
Applies method to the sequence in-place.
Creates new Method
instance and iterates it over the given inputs
slice and returns Vec
of output values. Read more
Creates new Method
instance and applies it to the sequence
.
Creates a function from the Method
instance
Auto Trait Implementations
impl RefUnwindSafe for ADI
impl UnwindSafe for ADI
Blanket Implementations
Mutably borrows from an owned value. Read more