velora_ta/patterns/detector.rs
1//! Pattern detector trait and types.
2
3use crate::types::OhlcBar;
4
5/// Signal from a pattern detection.
6#[derive(Debug, Clone, Copy, PartialEq, Eq)]
7pub enum PatternSignal {
8 /// Bullish pattern detected
9 Bullish,
10 /// Bearish pattern detected
11 Bearish,
12 /// Neutral pattern detected
13 Neutral,
14}
15
16/// Trait for candlestick pattern detectors.
17pub trait PatternDetector: Send + Sync {
18 /// Pattern name.
19 fn name(&self) -> &str;
20 /// Detect pattern in candles.
21 fn detect(&self, candles: &[OhlcBar]) -> Option<PatternSignal>;
22}