Skip to main content

RciEngine

Struct RciEngine 

Source
pub struct RciEngine { /* private fields */ }
Expand description

Rank Correlation Index: how closely the order of the last len prices follows the order of time.

Prices in the window are ranked, time is ranked by position, and the two rank series are correlated; the result is scaled by 100. A window whose prices rise monotonically gives +100, one that falls monotonically -100, and a shuffled one something in between.

Ties get the average of the ranks they share. Two equal prices are not one before the other, and pretending otherwise would invent an ordering the market did not produce. The correlation is then computed over the rank series directly rather than through the 1 - 6*sum(d^2)/(n^3-n) shortcut, which is only valid when no rank is shared.

Unit: an index in -100..=100, not a percentage of anything.

A window without price variance — every price equal — has no ordering at all. There is no correlation to compute, and the documented convention is 0: no direction, rather than a trend strength conjured from nothing.

First output: with the len-th bar. len must be at least 2, since a single price has no order. A window that holds a non-finite price produces no output at all — there is no ordering to compute. Indicator::reset clears the window.

Implementations§

Source§

impl RciEngine

Source

pub fn new(len: usize) -> Self

Source

pub fn with_defaults() -> Self

Trait Implementations§

Source§

impl Clone for RciEngine

Source§

fn clone(&self) -> RciEngine

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RciEngine

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Indicator for RciEngine

Source§

fn name(&self) -> &str

Source§

fn warmup_period(&self) -> usize

Source§

fn on_bar(&mut self, bar: &Bar) -> Option<IndicatorOutput>

Source§

fn reset(&mut self)

Source§

fn on_checked_bar( &mut self, bar: &Bar, ) -> Result<Option<IndicatorOutput>, BarValidationError>

Validates a bar before forwarding it to Indicator::on_bar.
Source§

fn alerts(&self) -> Vec<IndicatorAlert>

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.