Skip to main content

patterns

Function patterns 

Source
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());