ta

Crates.iota
lib.rsta
version0.5.0
sourcesrc
created_at2017-09-29 22:18:20.423836
updated_at2021-06-26 22:28:52.679579
descriptionTechnical analysis library. Implements number of indicators: EMA, SMA, RSI, MACD, Stochastic, etc.
homepagehttps://github.com/greyblake/ta-rs
repositoryhttps://github.com/greyblake/ta-rs
max_upload_size
id33945
size131,462
Serhii Potapov (greyblake)

documentation

https://docs.rs/ta

README

Technical Analysis for Rust (ta)

Build Status Crates.io Docs.rs License

Technical analysis library for Rust.

Getting started

Add to you Cargo.toml:

[dependencies]
ta = "0.4.0"

Example:

use ta::indicators::ExponentialMovingAverage;
use ta::Next;

// it can return an error, when an invalid length is passed (e.g. 0)
let mut ema = ExponentialMovingAverage::new(3).unwrap();

assert_eq!(ema.next(2.0), 2.0);
assert_eq!(ema.next(5.0), 3.5);
assert_eq!(ema.next(1.0), 2.25);
assert_eq!(ema.next(6.25), 4.25);

See more in the examples here. Check also the documentation.

Basic ideas

A data item which represent a stock quote may implement the following traits:

  • Open
  • High
  • Low
  • Close
  • Volume

It's not necessary to implement all of them, but it must be enough to fulfill requirements for a particular indicator. You probably should prefer using DataItem unless you have reasons to implement your own structure.

Indicators typically implement the following traits:

  • Next<T> (often Next<f64> and Next<&DataItem>) - to feed and get the next value
  • Reset - to reset an indicator
  • Debug
  • Display
  • Default
  • Clone

List of indicators

So far there are the following indicators available.

  • Trend
    • Exponential Moving Average (EMA)
    • Simple Moving Average (SMA)
  • Oscillators
    • Relative Strength Index (RSI)
    • Fast Stochastic
    • Slow Stochastic
    • Moving Average Convergence Divergence (MACD)
    • Percentage Price Oscillator (PPO)
    • Commodity Channel Index (CCI)
    • Money Flow Index (MFI)
  • Other
    • Minimum

    • Maximum

    • True Range

    • Standard Deviation (SD)

    • Mean Absolute Deviation (MAD)

    • Average True Range (AR)

    • Efficiency Ratio (ER)

    • Bollinger Bands (BB)

    • Chandelier Exit (CE)

    • Keltner Channel (KC)

    • Rate of Change (ROC)

    • On Balance Volume (OBV)

Features

  • serde - allows to serialize and deserialize indicators. NOTE: the backward compatibility of serialized data with the future versions of ta is not guaranteed because internal implementation of the indicators is a subject to change.

Running benchmarks

cargo bench

License

MIT © Sergey Potapov

Contributors

Commit count: 208

cargo fmt