YaTa implements most common technical analysis methods and indicators.
It also provides you an interface to create your own indicators.
[dependencies]
yata = "0.6"
And many others. See all
use yata::prelude::*;
use yata::methods::EMA;
// EMA of length=3
let mut ema = EMA::new(3, &3.0).unwrap();
ema.next(&3.0);
ema.next(&6.0);
assert_eq!(ema.next(&9.0), 6.75);
assert_eq!(ema.next(&12.0), 9.375);
use yata::helpers::{RandomCandles, MA};
use yata::indicators::MACD;
use yata::prelude::*;
let mut candles = RandomCandles::new();
let mut macd = MACD::default();
macd.method1 = "sma-4".parse().unwrap(); // one way of defining methods inside indicators
macd.signal = MA::TEMA(5); // another way of defining methods inside indicators
let mut macd = macd.init(&candles.first()).unwrap();
for candle in candles.take(10) {
let result = macd.next(&candle);
println!("{:?}", result);
}
length=10length=100test bench_adi_w10 ... bench: 7 ns/iter (+/- 0)
test bench_adi_w100 ... bench: 7 ns/iter (+/- 0)
test bench_cci_w10 ... bench: 16 ns/iter (+/- 0)
test bench_cci_w100 ... bench: 133 ns/iter (+/- 8)
test bench_conv_w10 ... bench: 23 ns/iter (+/- 2)
test bench_conv_w100 ... bench: 197 ns/iter (+/- 0)
test bench_cross ... bench: 5 ns/iter (+/- 0)
test bench_cross_above ... bench: 3 ns/iter (+/- 0)
test bench_cross_under ... bench: 3 ns/iter (+/- 0)
test bench_dema_w10 ... bench: 7 ns/iter (+/- 0)
test bench_dema_w100 ... bench: 6 ns/iter (+/- 0)
test bench_derivative_w10 ... bench: 4 ns/iter (+/- 0)
test bench_derivative_w100 ... bench: 3 ns/iter (+/- 0)
test bench_dma_w10 ... bench: 5 ns/iter (+/- 0)
test bench_dma_w100 ... bench: 5 ns/iter (+/- 0)
test bench_ema_w10 ... bench: 5 ns/iter (+/- 0)
test bench_ema_w100 ... bench: 5 ns/iter (+/- 0)
test bench_heikin_ashi ... bench: 4 ns/iter (+/- 0)
test bench_highest_index_w10 ... bench: 6 ns/iter (+/- 0)
test bench_highest_index_w100 ... bench: 6 ns/iter (+/- 0)
test bench_highest_lowest_delta_w10 ... bench: 10 ns/iter (+/- 0)
test bench_highest_lowest_delta_w100 ... bench: 10 ns/iter (+/- 0)
test bench_highest_w10 ... bench: 6 ns/iter (+/- 0)
test bench_highest_w100 ... bench: 7 ns/iter (+/- 0)
test bench_hma_w10 ... bench: 14 ns/iter (+/- 0)
test bench_hma_w100 ... bench: 15 ns/iter (+/- 0)
test bench_integral_w10 ... bench: 7 ns/iter (+/- 0)
test bench_integral_w100 ... bench: 7 ns/iter (+/- 0)
test bench_lin_reg_w10 ... bench: 8 ns/iter (+/- 1)
test bench_lin_reg_w100 ... bench: 8 ns/iter (+/- 0)
test bench_linear_volatility_w10 ... bench: 4 ns/iter (+/- 0)
test bench_linear_volatility_w100 ... bench: 4 ns/iter (+/- 0)
test bench_lowest_index_w10 ... bench: 6 ns/iter (+/- 0)
test bench_lowest_index_w100 ... bench: 7 ns/iter (+/- 0)
test bench_lowest_w10 ... bench: 6 ns/iter (+/- 0)
test bench_lowest_w100 ... bench: 6 ns/iter (+/- 0)
test bench_mean_abs_dev_w10 ... bench: 11 ns/iter (+/- 0)
test bench_mean_abs_dev_w100 ... bench: 123 ns/iter (+/- 4)
test bench_median_abs_dev_w10 ... bench: 31 ns/iter (+/- 7)
test bench_median_abs_dev_w100 ... bench: 190 ns/iter (+/- 8)
test bench_momentum_w10 ... bench: 3 ns/iter (+/- 0)
test bench_momentum_w100 ... bench: 3 ns/iter (+/- 0)
test bench_past_w10 ... bench: 3 ns/iter (+/- 0)
test bench_past_w100 ... bench: 3 ns/iter (+/- 0)
test bench_rate_of_change_w10 ... bench: 3 ns/iter (+/- 0)
test bench_rate_of_change_w100 ... bench: 3 ns/iter (+/- 0)
test bench_reverse_high_w10 ... bench: 5 ns/iter (+/- 0)
test bench_reverse_high_w100 ... bench: 5 ns/iter (+/- 0)
test bench_reverse_low_w10 ... bench: 5 ns/iter (+/- 0)
test bench_reverse_low_w100 ... bench: 5 ns/iter (+/- 0)
test bench_reverse_signal_w10 ... bench: 9 ns/iter (+/- 0)
test bench_reverse_signal_w100 ... bench: 9 ns/iter (+/- 0)
test bench_rma_w10 ... bench: 4 ns/iter (+/- 0)
test bench_rma_w100 ... bench: 4 ns/iter (+/- 0)
test bench_sma_w10 ... bench: 3 ns/iter (+/- 0)
test bench_sma_w100 ... bench: 3 ns/iter (+/- 0)
test bench_smm_w10 ... bench: 17 ns/iter (+/- 1)
test bench_smm_w100 ... bench: 35 ns/iter (+/- 2)
test bench_st_dev_w10 ... bench: 7 ns/iter (+/- 0)
test bench_st_dev_w100 ... bench: 7 ns/iter (+/- 0)
test bench_swma_w10 ... bench: 8 ns/iter (+/- 0)
test bench_swma_w100 ... bench: 8 ns/iter (+/- 0)
test bench_tema_w10 ... bench: 8 ns/iter (+/- 0)
test bench_tema_w100 ... bench: 7 ns/iter (+/- 0)
test bench_tma_w10 ... bench: 5 ns/iter (+/- 0)
test bench_tma_w100 ... bench: 5 ns/iter (+/- 1)
test bench_trima_w10 ... bench: 5 ns/iter (+/- 0)
test bench_trima_w100 ... bench: 5 ns/iter (+/- 1)
test bench_tsi_w10 ... bench: 9 ns/iter (+/- 0)
test bench_tsi_w100 ... bench: 10 ns/iter (+/- 0)
test bench_vidya_w10 ... bench: 8 ns/iter (+/- 1)
test bench_vidya_w100 ... bench: 8 ns/iter (+/- 0)
test bench_vwma_w10 ... bench: 5 ns/iter (+/- 0)
test bench_vwma_w100 ... bench: 5 ns/iter (+/- 0)
test bench_wma_w10 ... bench: 6 ns/iter (+/- 1)
test bench_wma_w100 ... bench: 6 ns/iter (+/- 0)
``` test bench_awesome_oscillator ... bench: 36 ns/iter (+/- 0) test bench_bollinger_bands ... bench: 53 ns/iter (+/- 2) test bench_chaikin_money_flow ... bench: 22 ns/iter (+/- 0) test bench_chaikin_oscillator .