moving_average

Function moving_average 

Source
pub fn moving_average(
    prices: &[f64],
    moving_average_type: MovingAverageType,
) -> Result<f64>
Expand description

Calculates the Moving Average

§Arguments

§Returns

The calculated indicator value

§Errors

Returns TechnicalIndicatorError::EmptyData if prices.is_empty() Returns TechnicalIndicatorError::UnsupportedType for unsupported moving average types

§Examples

let prices = vec![100.0, 102.0, 103.0, 101.0, 100.0];

let simple_moving_average =
    centaur_technical_indicators::moving_average::single::moving_average(
        &prices,
        centaur_technical_indicators::MovingAverageType::Simple
    ).unwrap();
assert_eq!(101.2, simple_moving_average);

let exponential_moving_average =
    centaur_technical_indicators::moving_average::single::moving_average(
        &prices,
        centaur_technical_indicators::MovingAverageType::Exponential
    ).unwrap();
assert_eq!(100.99526066350714, exponential_moving_average);

let smoothed_moving_average =
    centaur_technical_indicators::moving_average::single::moving_average(
        &prices,
        centaur_technical_indicators::MovingAverageType::Smoothed
    ).unwrap();
assert_eq!(101.11375535459305, smoothed_moving_average);