use std::fmt;
pub mod indicator_error;
pub enum Indicator {
MedianPrice, TrueRange, WilliamsFractals, SimpleMovingAverage, SmoothedMovingAverage, ExponentialMovingAverage, RunningMovingAverage, WeightedMovingAverage, AverageTrueRange, MovingAverageConvergenceDivergence, Supertrend, }
impl Indicator {
fn as_str(&self) -> &'static str {
match self {
Indicator::MedianPrice => "Median Price",
Indicator::TrueRange => "True Range",
Indicator::WilliamsFractals => "Williams Fractals",
Indicator::SimpleMovingAverage => "Simple Moving Average",
Indicator::SmoothedMovingAverage => "Smoothed Moving Average",
Indicator::ExponentialMovingAverage => "Exponential Moving Average",
Indicator::RunningMovingAverage => "Running Moving Average",
Indicator::WeightedMovingAverage => "Weighted Moving Average",
Indicator::AverageTrueRange => "Average True Range",
Indicator::MovingAverageConvergenceDivergence => {
"Moving Average Convergence Divergence"
}
Indicator::Supertrend => "Supertrend",
}
}
}
impl fmt::Display for Indicator {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.as_str())
}
}
#[cfg(feature = "median_price")]
pub mod median_price;
#[cfg(feature = "tr")]
pub mod true_range;
#[cfg(feature = "wf")]
pub mod williams_fractals;
#[cfg(feature = "sma")]
pub mod simple_moving_average;
#[cfg(feature = "smma")]
pub mod smoothed_moving_average;
#[cfg(feature = "ema")]
pub mod exponential_moving_average;
#[cfg(feature = "rma")]
pub mod running_moving_average;
#[cfg(feature = "wma")]
pub mod weighted_moving_average;
#[cfg(feature = "atr")]
pub mod average_true_range;
#[cfg(feature = "macd")]
pub mod moving_average_convergence_divergence;
#[cfg(feature = "supertrend")]
pub mod supertrend;