Pattern Analysis
Every hour the scanner walks every market on the daily, 4-hour, 2-hour, hourly, 30-minute and 15-minute chart, finds chart and candlestick formations, and publishes a card for each one with the level that would trigger it, the measured target, the invalidation level — and how often that exact formation has actually worked before. A card appears a couple of minutes after the scan that found it.
Quality bar: a shape is published only when this market’s own record for it clears 20–30 samples and a 60% hit rate — and still clears 65% once that record is blended, by how much its sample can carry, towards the formation’s rate across all markets. 23307 live shapes did not qualify and are not shown.
Paper equity curve
Each settled replay trade drawn as a cumulative-R line. The terminal equity tells you whether the edge actually earned money overall — a different question than the headline hit rate.
Ordered by publication time across every timeframe in the selected family. Each step is one settled trade; the line is coloured by its terminal value, not by the result of any single trade. Trades that never triggered, and trades still open at the data cutoff, are excluded.
Follows the family filter above — switch to "Indicator combos" to view just the indicator family.
How the scanner works
The rules are fixed and mechanical. Nothing on this page is a human opinion, and nothing is tuned after the fact to look better.
- 1Formations are found from swing pivots (a high or low with three lower highs or higher lows on each side) and from candlestick shape. A pivot is only confirmed three bars after the extreme, so every card is published with that lag, never before
- 2The target is the measured move: the height of the formation projected from the breakout level. The invalidation level sits one ATR beyond the opposite side of the formation.
- 3A setup is scored only from the first bar a trader could have acted on it — the bar after the formation became visible, which for pivot-based shapes is three bars after the extreme. Breakouts that happened in that gap are not credited, because nobody could have known the pattern existed yet. It wins if the target is touched before the invalidation level, loses if the invalidation level is touched first, and times out if neither happens inside the window — 60 bars on the daily, 4-hour and 2-hour charts, 48 on the hourly, 30-minute and 15-minute. Timed-out setups are counted as not-wins.
- 4Rates are measured market by market. A market with fewer than 30 past occurrences is not published at all rather than being topped up from other markets — there is no number to show for it. The headline figure on a card is that market’s record pulled towards the formation’s rate across every market, by a strength fitted from how much of the gap between markets under that formation actually persists, which is the better estimate of what comes next; on the daily chart it is then moved by how far that market itself sits from the average market, because there — and measurably only there — that turns out to predict something. The market’s raw record and the cross-market rate are both printed beside it, and publication requires the raw record to clear the bar on its own. Setups still open at the time of the scan are excluded, so the number is not flattered by unresolved trades.
- 5Rates are descriptive, not predictive. They are computed on the rules above, on past bars, from prices that can actually be paid, but with no commission, no spread and no guarantee that the future resembles the past.
Prices: Yahoo Finance OHLC. Median coverage per market — daily bars 22.9 years, 1-hour bars 2 years, 2-hour bars 2 years, 30-minute bars 59 days, 15-minute bars 59 days. The 4-hour and 2-hour bars are not native: they are built by combining 1-hour bars, so they inherit the full two-year 1-hour history. Yahoo stores only about two months of the 30-minute and 15-minute series, which is why those two are the shallowest in calendar terms — the 15-minute carries about twice as many bars over the same window, but the same two months.
One consequence is worth stating rather than leaving in the code: a group is simply N consecutive hourly bars as the vendor returns them, so on a market that closes, a group can span the close. Measured across the 348 markets, 7.5% of 4-hour bars and 2.8% of 2-hour bars contain an hourly gap, and on 266 markets some 4-hour bar spans more than 24 real hours — days, on the exchanges with long holidays.
Bounding a group by the session was measured on 2026-09-27 and rejected, in both of the forms it can take. Breaking the group at a session gap and keeping the short tail that follows read 0.19 points lower out-of-sample on the 4-hour and 0.07 on the 2-hour, because that tail is a shorter bar and the formations assume one bar length; discarding the tail instead read 0.09 and 0.01 lower, at the cost of 5.4% of 4-hour bars, 42% of them on the S&P, the Dow and the Nikkei. Both forms turned the 4-hour’s in-sample expectancy negative. One detail keeps these four numbers from being exact to the last decimal, and it is worth naming: the two halves are split at 60% of each variant’s own bar count, so a variant that changes the count also moves its own boundary — bar 1750 as the board ships it, 1655 with the tail discarded, 1833 with it kept.
One further property is worth recording rather than leaving in the code. A group’s boundaries are anchored to the start of the array the vendor returns, and the vendor is asked for a start DATE, so the window advances one calendar day at a time — and a day of bars is a multiple of four only on a market that never closes. On the median market about 29% of days break that rule, so the 4-hour and 2-hour grids are re-cut roughly one day in three and a card can appear or vanish with no market behind the change. Anchoring the boundaries elsewhere — to the session open, to a clock grid, or by trimming the series onto a fixed grid — was measured on 2026-09-28 and none of the three beat the current grouping (4-hour 63.008% out-of-sample as it stands against 62.915% session-anchored; 2-hour 63.390% against 63.383%), while anchoring would discard 5.4% of 4-hour bars, concentrated in cash indices where a session leaves a remainder — 42% each on the S&P, the Dow and the Nikkei. So the grouping stays.
What the instability is worth, though, is measurable: re-cutting the same series from a bar three positions later left the bar count within 0.1% and the hit rate within 0.06 points, but moved the out-of-sample expectancy from +0.011 to −0.026 per trade on the 4-hour and from +0.015 to −0.017 on the 2-hour. Read the hit rates here as reproducible and the R column as indicative.
This is pattern recognition, not a recommendation. Even the shapes published here clear only a [object Object]% historical bar, so more than one in four still fails. Size positions and place stops yourself; nothing here is investment advice.