pub struct TSI { /* private fields */ }
Expand description
True Strength Index of specified short period
and long period
for timeseries of type ValueType
EMA(EMA(momentum_1, long_period), short_period)
TSI = ------------------------------------------------------
EMA(EMA(ABS(momentum_1), long_period), short_period)
Parameters
Tuple of (short_length
, long_length
) (PeriodType
, PeriodType
)
Input type
Input type is ValueType
Output type
Output type is ValueType
Examples
use yata::prelude::*;
use yata::methods::TSI;
// TSI with short length=3, long length=10
let mut tsi = TSI::new(3, 10, &3.0).unwrap();
tsi.next(&3.0);
tsi.next(&6.0);
println!("{}", tsi.next(&9.0));
println!("{}", tsi.next(&12.0));
Performance
O(1)
Implementations
sourceimpl TSI
impl TSI
sourcepub fn new(
short_period: PeriodType,
long_period: PeriodType,
value: &ValueType
) -> Result<Self, Error>
pub fn new(
short_period: PeriodType,
long_period: PeriodType,
value: &ValueType
) -> Result<Self, Error>
Creates new instance of TSI
Trait Implementations
sourceimpl<'de> Deserialize<'de> for TSI
impl<'de> Deserialize<'de> for TSI
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl Method for TSI
impl Method for TSI
type Params = (PeriodType, PeriodType)
type Params = (PeriodType, PeriodType)
Method parameters
sourcefn new(params: Self::Params, value: &Self::Input) -> Result<Self, Error>
fn new(params: Self::Params, value: &Self::Input) -> Result<Self, Error>
Static method for creating an instance of the method with given parameters
and initial value
(simply first input value)
sourcefn next(&mut self, value: &Self::Input) -> Self::Output
fn next(&mut self, value: &Self::Input) -> Self::Output
Generates next output value based on the given input value
sourcefn with_history(
parameters: Self::Params,
initial_value: &Self::Input
) -> Result<WithHistory<Self, Self::Output>, Error> where
Self: Sized,
Self::Output: Debug + Clone,
fn with_history(
parameters: Self::Params,
initial_value: &Self::Input
) -> Result<WithHistory<Self, Self::Output>, Error> where
Self: Sized,
Self::Output: Debug + Clone,
Creates an instance of the method with given parameters
and initial value
, wrapped by historical data holder
sourcefn with_last_value(
parameters: Self::Params,
initial_value: &Self::Input
) -> Result<WithLastValue<Self, Self::Output>, Error> where
Self: Sized,
Self::Output: Debug + Clone,
fn with_last_value(
parameters: Self::Params,
initial_value: &Self::Input
) -> Result<WithLastValue<Self, Self::Output>, Error> where
Self: Sized,
Self::Output: Debug + Clone,
Creates an instance of the method with given parameters
and initial value
, wrapped by last produced value holder
sourcefn memsize(&self) -> (usize, usize) where
Self: Sized,
fn memsize(&self) -> (usize, usize) where
Self: Sized,
Returns memory size of the method (size, align)
sourcefn over<S>(&mut self, inputs: S) -> Vec<Self::Output> where
S: Sequence<Self::Input>,
Self::Input: Sized,
Self: Sized,
fn over<S>(&mut self, inputs: S) -> Vec<Self::Output> where
S: Sequence<Self::Input>,
Self::Input: Sized,
Self: Sized,
Iterates the Method
over the given inputs
slice and returns Vec
of output values. Read more
sourcefn apply<T, S>(&mut self, sequence: &mut S) where
S: Sequence<T> + AsMut<[T]> + ?Sized,
Self: Method<Input = T, Output = T> + Sized,
fn apply<T, S>(&mut self, sequence: &mut S) where
S: Sequence<T> + AsMut<[T]> + ?Sized,
Self: Method<Input = T, Output = T> + Sized,
Applies method to the sequence in-place.
sourcefn new_over<S>(
parameters: Self::Params,
inputs: S
) -> Result<Vec<Self::Output>, Error> where
S: Sequence<Self::Input>,
Self::Input: Sized,
Self: Sized,
fn new_over<S>(
parameters: Self::Params,
inputs: S
) -> Result<Vec<Self::Output>, Error> where
S: Sequence<Self::Input>,
Self::Input: Sized,
Self: Sized,
Creates new Method
instance and iterates it over the given inputs
slice and returns Vec
of output values. Read more
sourcefn new_apply<T, S>(
parameters: Self::Params,
sequence: &mut S
) -> Result<(), Error> where
S: Sequence<T> + AsMut<[T]>,
Self: Method<Input = T, Output = T> + Sized,
fn new_apply<T, S>(
parameters: Self::Params,
sequence: &mut S
) -> Result<(), Error> where
S: Sequence<T> + AsMut<[T]>,
Self: Method<Input = T, Output = T> + Sized,
Creates new Method
instance and applies it to the sequence
.
impl Copy for TSI
Auto Trait Implementations
impl RefUnwindSafe for TSI
impl Send for TSI
impl Sync for TSI
impl Unpin for TSI
impl UnwindSafe for TSI
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more