pub struct ChartPatternDetector {
pub tolerance_pct: f64,
pub flat_pct: f64,
}Expand description
Scans a swing-node sequence for pattern candidates and evicts overlapping lower-confidence ones, so the result is a ranked, non-redundant set rather than every geometrically-possible match.
Fields§
§tolerance_pct: f64§flat_pct: f64How much a boundary may rise or fall across the window and still count as horizontal, as a percentage of the window’s opening gap between the two boundaries.
Its own threshold rather than a reuse of tolerance_pct: that one answers “are these two
prices the same level”, this one answers “is this line flat”. Both are decisions, but they
are not the same decision, and a caller that widens level matching to find more double tops
should not thereby start seeing ascending triangles everywhere.
Implementations§
Source§impl ChartPatternDetector
impl ChartPatternDetector
pub fn new(tolerance_pct: f64) -> Self
Sourcepub fn with_flat_pct(self, flat_pct: f64) -> Self
pub fn with_flat_pct(self, flat_pct: f64) -> Self
Sets the flatness threshold for the ascending/descending triangle boundary.
Sourcepub fn scan(&self, nodes: &[ZigZagNode]) -> Vec<ChartPatternCandidate>
pub fn scan(&self, nodes: &[ZigZagNode]) -> Vec<ChartPatternCandidate>
Detects all supported pattern kinds over nodes, then evicts overlapping candidates
(sharing any swing node), keeping the highest-confidence one per overlapping cluster.