Crates.io | cxmr-ta-core |
lib.rs | cxmr-ta-core |
version | 0.1.5 |
source | src |
created_at | 2020-01-01 04:29:26.432282 |
updated_at | 2020-01-01 04:29:26.432282 |
description | Technical analysis library. Implements number of indicators: EMA, SMA, RSI, MACD, Stochastic, etc. |
homepage | https://github.com/greyblake/ta-rs |
repository | https://github.com/greyblake/ta-rs |
max_upload_size | |
id | 194032 |
size | 87,259 |
Technical analysis library for Rust.
Add to you Cargo.toml
:
[dependencies]
ta = "0.1.5"
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.
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 valueReset
- to reset an indicatorDebug
Display
Default
Clone
So far there are the following indicators available.
cargo bench