Module main

Source
Expand description

§Moving Averages Module

This module provides a unified interface for calculating multiple moving averages along with a MACD indicator. It includes:

  • SMA (Simple Moving Average): Calculated for short, medium, and long periods.
  • EMA (Exponential Moving Average): Calculated for short, medium, and long periods.
  • MACD (Moving Average Convergence Divergence):

§Example

use indexes_rs::v1::ma::main::{MovingAverages, MovingAverageResults};

// Create a new moving averages calculator with default parameters.
let mut ma = MovingAverages::default();

// Or supply custom parameters:
// SMA: 10, 30, 100; EMA: 10, 30, 100; MACD: fast=8, slow=17, signal=9
// let mut ma = MovingAverages::with_params(
//     Some(10), Some(30), Some(100),
//     Some(10), Some(30), Some(100),
//     Some(8), Some(17), Some(9)
// ).unwrap();

// Simulate a stream of prices.
let prices = vec![10.0, 10.5, 11.0, 10.8, 11.2, 11.5, 11.3];

for price in prices {
    let results = ma.calculate(price);
    println!("SMA: {:?}, EMA: {:?}, MACD: {:?}", results.sma, results.ema, results.macd);
}

Structs§

EMAPeriods
Holds EMA indicators for different periods.
EMAValues
EMA values for different periods.
MovingAverageResults
The consolidated results for moving averages.
MovingAverages
A container for the different moving average indicators.
SMAPeriods
Holds SMA indicators for different periods.
SMAValues
SMA values for different periods.