egui_charts/studies/builtin/
ma_cross.rs1use super::ma_combination::impl_ma_preset;
2use super::{AverageLine, AverageType, MACombination};
3use crate::studies::palette;
4
5#[derive(Clone)]
7pub struct MACross {
8 inner: MACombination,
9}
10
11impl MACross {
12 pub fn new(fast_period: usize, slow_period: usize) -> Self {
14 let mut inner = MACombination::new(vec![
15 AverageLine::new(AverageType::Simple, fast_period, palette::ORANGE),
16 AverageLine::new(AverageType::Simple, slow_period, palette::DARK_GREEN),
17 ])
18 .unwrap();
19 inner.wait_for_all = true;
20 Self { inner }
21 }
22}
23
24impl Default for MACross {
25 fn default() -> Self {
26 Self::new(9, 21)
27 }
28}
29
30impl_ma_preset!(
31 MACross,
32 "MA Cross",
33 "MA Cross - Two simple averages with crossing markers",
34 palette::BLUE
35);