STRASMORE/EXPLORE 3,171 QUERIES

pattern_census

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-10-07, from dragonfly-doji-follow-through.

as of ranking 21×4read in context →
pattern_census — 21 rows by 4 columns, computed from US exchange, SIP and OPRA data.
yeardragonfly_daysgravestone_dayssession_count
200612174267
200716144267
200816174301
200931214284
201028124284
201121144481
20129114500
20132664536
201420104725
201520134788
201621124788
20171264769
201818214769
201923134788
202021174807
202124194917
202226224930
202320185000
202430175040
202524145000
202619143740
Rows × columns
21 × 4
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for pattern_census, derived from the stored result.
ColumnTypeRangeNotes
year number 2,006 to 2,026
dragonfly_days number 9 to 31
gravestone_days number 6 to 22
session_count number 3,740 to 5,040 count

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

WITH bars AS
(
    SELECT
        ticker,
        date,
        toFloat64(open)  AS o,
        toFloat64(high)  AS h,
        toFloat64(low)   AS l,
        toFloat64(close) AS c
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('AAPL','MSFT','NVDA','AMZN','GOOGL','META','JPM','XOM','JNJ','KO','PG','WMT','HD','UNH','CVX','MRK','CSCO','PEP','SPY','QQQ')
      AND date >= '2006-01-01'
      AND date <  '2026-10-01'
      AND high > low
      AND low > 0
)
SELECT
    toYear(date)                                      AS year,
    countIf((h - l) >= 0.01 * o
            AND abs(c - o)         <= 0.10 * (h - l)
            AND (h - greatest(o, c)) <= 0.10 * (h - l)) AS dragonfly_days,
    countIf((h - l) >= 0.01 * o
            AND abs(c - o)         <= 0.10 * (h - l)
            AND (least(o, c) - l)  <= 0.10 * (h - l)) AS gravestone_days,
    count()                                           AS session_count
FROM bars
GROUP BY year
ORDER BY year
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.