pub struct AverageTrueRange { /* private fields */ }
Expand description
Average true range (ATR).
A technical analysis volatility indicator, originally developed by J. Welles Wilder. The average true range is an N-day smoothed moving average of the true range values. This implementation uses exponential moving average.
§Formula
ATR(length)t = EMA(length) of TRt
Where:
- EMA(n) - exponential moving average with smoothing period length
- TRt - true range for period t
§Parameters
- length - smoothing period of EMA (integer greater than 0)
§Example
extern crate ta;
#[macro_use] extern crate assert_approx_eq;
use ta::{Next, DataItem};
use ta::indicators::AverageTrueRange;
fn main() {
let data = vec![
// open, high, low, close, atr
(9.7 , 10.0, 9.0, 9.5 , 1.0), // tr = high - low = 10.0 - 9.0 = 1.0
(9.9 , 10.4, 9.8, 10.2 , 0.95), // tr = high - prev_close = 10.4 - 9.5 = 0.9
(10.1 , 10.7, 9.4, 9.7 , 1.125), // tr = high - low = 10.7 - 9.4 = 1.3
(9.1 , 9.2 , 8.1, 8.4 , 1.3625), // tr = prev_close - low = 9.7 - 8.1 = 1.6
];
let mut indicator = AverageTrueRange::new(3).unwrap();
for (open, high, low, close, atr) in data {
let di = DataItem::builder()
.high(high)
.low(low)
.close(close)
.open(open)
.volume(1000.0)
.build().unwrap();
assert_approx_eq!(indicator.next(&di), atr);
}
}
Implementations§
Trait Implementations§
Source§impl Clone for AverageTrueRange
impl Clone for AverageTrueRange
Source§fn clone(&self) -> AverageTrueRange
fn clone(&self) -> AverageTrueRange
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 AverageTrueRange
impl Debug for AverageTrueRange
Source§impl Default for AverageTrueRange
impl Default for AverageTrueRange
Source§impl Display for AverageTrueRange
impl Display for AverageTrueRange
Auto Trait Implementations§
impl Freeze for AverageTrueRange
impl RefUnwindSafe for AverageTrueRange
impl Send for AverageTrueRange
impl Sync for AverageTrueRange
impl Unpin for AverageTrueRange
impl UnwindSafe for AverageTrueRange
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