pub fn patterns(candles: &[Candle]) -> Vec<Option<CandlePattern>>Expand description
Detect candlestick patterns for each bar in candles.
Returns a Vec<Option<CandlePattern>> of the same length as the input.
Some(pattern) means a pattern was detected on that bar; None means no
pattern matched. Input must be in chronological order (oldest candle first).
When multiple patterns are technically valid for the same bar, the most specific (widest lookback) pattern wins: three-bar patterns take precedence over two-bar, which take precedence over one-bar.
ยงExample
use finance_query::{Ticker, Interval, TimeRange};
use finance_query::indicators::{patterns, CandlePattern, PatternSentiment};
let ticker = Ticker::new("AAPL").await?;
let chart = ticker.chart(Interval::OneDay, TimeRange::SixMonths).await?;
let signals = patterns(&chart.candles);
let bullish: Vec<_> = signals
.iter()
.enumerate()
.filter(|(_, s)| s.map(|p| p.sentiment() == PatternSentiment::Bullish).unwrap_or(false))
.collect();
println!("{} bullish patterns detected", bullish.len());