#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum CentralPoint {
Mean,
Median,
Mode,
}
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum DeviationAggregate {
Mean,
Median,
Mode,
}
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub struct AbsDevConfig {
pub center: CentralPoint,
pub aggregate: DeviationAggregate,
}
#[derive(Debug, Copy, Clone, PartialEq)]
pub enum MovingAverageType {
Simple,
Smoothed,
Exponential,
Personalised { alpha_num: f64, alpha_den: f64 },
}
#[derive(Debug, Copy, Clone, PartialEq)]
pub enum ConstantModelType {
SimpleMovingAverage,
SmoothedMovingAverage,
ExponentialMovingAverage,
PersonalisedMovingAverage { alpha_num: f64, alpha_den: f64 },
SimpleMovingMedian,
SimpleMovingMode,
}
#[derive(Debug, Copy, Clone, PartialEq)]
pub enum DeviationModel {
StandardDeviation,
MeanAbsoluteDeviation,
MedianAbsoluteDeviation,
ModeAbsoluteDeviation,
CustomAbsoluteDeviation { config: AbsDevConfig },
UlcerIndex,
LogStandardDeviation,
StudentT { df: f64 },
LaplaceStdEquivalent,
CauchyIQRScale,
EmpiricalQuantileRange { low: f64, high: f64, precision: f64 },
}
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum Position {
Short,
Long,
}