Struct ux_indicators::indicators::TrueRange [−][src]
The range of a day’s trading is simply high - low. The true range extends it to yesterday’s closing price if it was outside of today’s range.
The true range is the largest of one the following:
- Most recent period’s high minus the most recent period’s low
- Absolute value of the most recent period’s high minus the previous close
- Absolute value of the most recent period’s low minus the previous close
Formula
TR = max[(high - low), abs(high - closeprev), abs(low - closeprev)]
Example
extern crate core; #[macro_use] extern crate assert_approx_eq; use core::{Next, DataItem}; use core::indicators::TrueRange; fn main() { let data = vec![ // open, high, low, close, tr (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.9), // tr = high - prev_close = 10.4 - 9.5 = 0.9 (10.1 , 10.7, 9.4, 9.7 , 1.3), // tr = high - low = 10.7 - 9.4 = 1.3 (9.1 , 9.2 , 8.1, 8.4 , 1.6), // tr = prev_close - low = 9.7 - 8.1 = 1.6 ]; let mut indicator = TrueRange::new(); for (open, high, low, close, tr) 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), tr); } }
Implementations
impl TrueRange
[src]
Trait Implementations
impl Clone for TrueRange
[src]
impl Debug for TrueRange
[src]
impl Default for TrueRange
[src]
impl Display for TrueRange
[src]
impl<'a, T: High + Low + Close> Next<&'a T> for TrueRange
[src]
impl Next<f64> for TrueRange
[src]
impl Reset for TrueRange
[src]
Auto Trait Implementations
impl RefUnwindSafe for TrueRange
impl Send for TrueRange
impl Sync for TrueRange
impl Unpin for TrueRange
impl UnwindSafe for TrueRange
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,