pub struct Renko { /* private fields */ }
Expand description

Converts timeseries to Renko timeseries

Renko is very different from a simple timeseries. On each step it may generate any amount of blocks or not generate it at all. That’s why it needs to be implemented throw three different structures:

When call Method::next on Renko, it always returns RenkoOutput.

It implements an Iterator trait for generating RenkoBlocks after each step of calling Method::next on Renko. RenkoOutput may produce any amount of RenkoBlocks or may not produce it at all.

It has open and close values which are similar to corresponding OHLCV’s values.

So the final workflow is like that:

  1. Call Renko’s Method::next on some ValueType and get RenkoOutput.
  2. Iterate over taken RenkoOutput to get some (or none) RenkoBlocks.
  3. Use produced RenkoBlocks on your own.

Parameters

Has a tuple of 2 parameters (size: ValueType, source: Source)

  • size: ValueType. Represents relative block size.

size must be in range (0.0; 1.0)

  • source: Source. Represents which value of input’s OHLCV it will use.
use yata::prelude::*;
use yata::core::Source;
use yata::methods::Renko;
let first_timeseries_value = Candle { close: 123.456, ..Candle::default() };
let renko = Renko::new((0.01, Source::Close), &first_timeseries_value); // creates a Renko method with relative block size of 1%.

Input type

Input type is reference to OHLCV

Output type

Input type is RenkoOutput

Examples

use yata::prelude::*;
use yata::core::Source;
use yata::methods::Renko;

// Here we just creating a `Vec` of `OHLCV`s with only `close` value inside  
let inputs = (&[100.0, 100.5, 101.506, 105.0, 102.0, 101.4, 100.0])
    .iter()
    .map(|&v| Candle {
        close: v,
        ..Candle::default()
    })
    .collect::<Vec<_>>();
let mut renko = Renko::new((0.01, Source::Close), &inputs[0]).unwrap(); // renko with relative block size of 1%

assert!(renko.next(&inputs[0]).is_empty());
assert!(renko.next(&inputs[1]).is_empty());
assert_eq!(renko.next(&inputs[2]).len(), 1);
let blocks = renko.next(&inputs[3]);
assert_eq!(blocks.len(), 3);
blocks.for_each(|block| { println!("{:?}", &block); });
assert_eq!(renko.next(&inputs[4]).len(), 1);
assert_eq!(renko.next(&inputs[5]).len(), 1);
assert_eq!(renko.next(&inputs[6]).len(), 1);

Performance

O(1)

See also

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Deserialize this value from the given Serde deserializer. Read more

Method parameters

Input value type

Output value type

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

Creates an instance of the method with given parameters and initial value, wrapped by historical data holder

Creates an instance of the method with given parameters and initial value, wrapped by last produced value holder

Returns a name of the method

👎 Deprecated

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

Creates new function based on the method

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.