Chart Analyzer
- 24h high
- –
- 24h low
- –
- 24h volume
- –
- Liquidity
- –
- Market cap
- –
- FDV
- –
Analyze a chart
The structures drawn by rule, the indicators that matter, and a verdict with the probability behind it: READY TO POP, READY TO DUMP or NO EDGE.
A contract address keeps a coin apart from another that shares its ticker. Upload takes your own candles as a CSV or JSON file: example file · file format
What the chart shows now, not a forecast.
Entry, stop and targets for the scenario you pick, with what a replay over this coin's real history says about them. A go plan can be placed as your own order after you confirm it; placed plans are followed to their stop, target or expiry.
Waiting for the pool's trades
How it's measured
What the number is made of
The older 1-100 pattern score: patterns confirmed in the last 10 candles, and how often each one rose in its study. On history it had not seen, that score did not sort charts; it is kept for the pattern markers and the record. Average candle: 46.4%.
swipe for the rest ›
This chart
Earlier patterns on this chart (older than 10 candles, not counted)
The verdict: how it is made
One general study over 258 crypto pairs and 7 timeframes (1h to 1M), not a study of the chart in front of you. Every setup it knows (54: the drawn structures, the chart patterns and the indicator states, each with a written definition) was measured against one target per timeframe: the close rises by a stated amount before it falls by the same amount within a stated number of candles; 1h: 3% in 48 candles, 4h: 5% in 42 candles, 1d: 10% in 30 candles, 5d: 15% in 26 candles, 1w: 20% in 26 candles, 2w: 25% in 26 candles, 1M: 30% in 12 candles. Symmetric barriers, so the base rate sits near one half: a rise is never the easy kind of target (a rise of 3% within 13 weeks is met in about 76% of weeks with no signal at all; that is why the Weekly Signal's own target is not used for the verdict).
Weights were learned on bars whose outcome window ends before 2021-01-01; the probability the page shows was calibrated on bars from 2021-01-01 whose window ends before 2023-01-01 (2021 rose, 2022 fell): the raw model number is placed in a 5-point bin, and the bin's calibrated value is the share of its cases that actually went that way. The test years (bars from 2023-01-01 on (held out: never used to fit a weight or a calibration)) were touched once, to report. READY TO POP when the calibrated probability of the rise coming first is at least 5 points above the base rate, its 95% range is above the base rate and its calibration bin holds at least 300 cases; READY TO DUMP mirrors it; otherwise NO EDGE. The (i) beside EDGE says why; the numbers are on the verdict card above.
| Timeframe | Target | Pairs | Held-out bars | POP calls | Rose first | All bars | DUMP calls | Fell first | All bars | Said vs happened |
|---|---|---|---|---|---|---|---|---|---|---|
| 1h | 3% / 48 | 60 | 710,454 | 157,119 | 45.1% | 40.4% | 217,979 | 47.2% | 42.6% | 2.2 pts |
| 4h | 5% / 42 | 60 | 175,850 | 19,797 | 42.8% | 42.5% | 0 | –% | 45.5% | 2.1 pts |
| 1d | 10% / 30 | 258 | 240,801 | 0 | –% | 43.8% | 5,272 | 54.9% | 50.3% | 1.9 pts |
| 5d | 15% / 26 | 242 | 42,953 | 2,425 | 39.8% | 41.9% | 0 | –% | 57.0% | 2.7 pts |
| 1w | 20% / 26 | 212 | 27,953 | 1,686 | 54.6% | 42.3% | 0 | –% | 56.4% | 3.9 pts |
| 2w | 25% / 26 | 157 | 3,140 | 1,047 | 34.7% | 31.9% | 429 | 65.5% | 67.7% | 30.4 pts |
| 1M | 30% / 12 | not covered: too few bars: train 1919, calibrate 582, test 1552 | ||||||||
A verdict's edge "holds" when, on the held-out years, the share that went its way sits above the base rate with its 95% range clear of it. Where a label was given 300 or more times on those years and did not hold, the page does not give it: the chart reads NO EDGE and the sentence says what the rule would have said and what happened. The table above is the record of what happened next, published as found. Full detail per setup, per bin and per timeframe: /chart-analyzer/study and the JSON.
1h: 1h candles, 2025-01-01 to 2026-10-02, 710,454 held-out bars of 60 pairs: READY TO POP was given 157,119 times and the rise came first in 45.1% (all bars: 40.4%); READY TO DUMP 217,979 times, the fall first in 47.2% (all bars: 42.6%). The POP edge held out of sample. The DUMP edge held out of sample. Said-vs-happened gap across bins with 300+ cases: 2.2 points (up).
4h: 4h candles, 2025-01-01 to 2026-09-27, 175,850 held-out bars of 60 pairs: READY TO POP was given 19,797 times and the rise came first in 42.8% (all bars: 42.5%); READY TO DUMP 0 times, the fall first in 0.0% (all bars: 45.5%). The POP edge did NOT hold out of sample. The DUMP edge did NOT hold out of sample. Said-vs-happened gap across bins with 300+ cases: 2.1 points (up).
1d: 1d candles, 2023-01-01 to 2026-09-04, 240,801 held-out bars of 258 pairs: READY TO POP was given 0 times and the rise came first in 0.0% (all bars: 43.8%); READY TO DUMP 5,272 times, the fall first in 54.9% (all bars: 50.3%). The POP edge did NOT hold out of sample. The DUMP edge held out of sample. Said-vs-happened gap across bins with 300+ cases: 1.9 points (up).
5d: 5d candles, 2023-01-03 to 2026-05-27, 42,953 held-out bars of 242 pairs: READY TO POP was given 2,425 times and the rise came first in 39.8% (all bars: 41.9%); READY TO DUMP 0 times, the fall first in 0.0% (all bars: 57.0%). The POP edge did NOT hold out of sample. The DUMP edge did NOT hold out of sample. Said-vs-happened gap across bins with 300+ cases: 2.7 points (up).
1w: 1w candles, 2023-01-02 to 2026-03-30, 27,953 held-out bars of 212 pairs: READY TO POP was given 1,686 times and the rise came first in 54.6% (all bars: 42.3%); READY TO DUMP 0 times, the fall first in 0.0% (all bars: 56.4%). The POP edge held out of sample. The DUMP edge did NOT hold out of sample. Said-vs-happened gap across bins with 300+ cases: 3.9 points (up).
2w: 2w candles, 2025-01-06 to 2025-09-29, 3,140 held-out bars of 157 pairs: READY TO POP was given 1,047 times and the rise came first in 34.7% (all bars: 31.9%); READY TO DUMP 429 times, the fall first in 65.5% (all bars: 67.7%). The POP edge did NOT hold out of sample. The DUMP edge did NOT hold out of sample. Said-vs-happened gap across bins with 300+ cases: 30.4 points (up).
Limits
- Survivorship: only pairs still listed on the fetch day; failed coins are missing, which flatters rises.
- No costs: no fees, spread, slippage or funding; a probability of a price path, not a trade result.
- Clustering: setups fire together in the same rallies and sell-offs, so the past cases are far fewer independent events than the counts suggest; the non-overlapping check thins them out.
- Regimes: 2017-2020 (train), 2021-2022 (calibration) and 2023 on (test) each hold few market cycles; the short-history timeframes (1h, 4h, 2w, 1M) were built on 2021-2022, calibrated on 2023-2024 and tested on 2025 onward, fewer still.
- Combinations searched: 54 setups x 7 timeframes x 2 sides in one additive model each, no grid; the structure geometry was written before the run.
- Candles: measured on exchange candles; a DEX pool's candles (Gem Screener tokens) and any uploaded series were not measured, so no verdict is given for them: the page draws the structures and setups, shows the table's figures for reference and says why the label is withheld.
- A probability from history, never a promise.
The Weekly Signal, merged in
The indicator from /weekly-signal (weekly RSI(14) below 40 with a rising weekly MACD histogram) is one of the setups here, computed on weeks resampled from the chart's own candles and marked on the chart. Its own pooled record, all assets together, chosen before 2022 and checked once from 2022: 80.3% of 5,327 signals before 2022 and 81.9% of 1,419 from 2022 met its target (a weekly close at least +3% above the signal week's close within the next 13 weekly closes), against base rates of 76.6% and 75.7%. An asset's own record is not shown: 200 of that study's 475 assets have fewer than 10 signals, and a list of assets whose own record is 80% or more mostly selects luck. A MACD cross is a separate setup. Volume is on by default and part of the rules.
The public ledger of calls
Every READY TO POP or READY TO DUMP verdict given on a closed candle is recorded when it is made, with the probability shown, and scored when its window ends against the same target. The running record, next to the base rate: /api/v1/chart-analyzer/calls (recorded so far: 63, scored: 0). NO EDGE verdicts are not calls.
The scale
The older 1-100 score. 50 = the base rate: 46.4% of all study candles rose 10 candles later. Above 50, the patterns on this chart rose more often than that in the study; below 50, less often. Bands: 1–20 very bearish, 21–40 bearish, 41–60 neutral, 61–80 bullish, 81–100 very bullish.
Held-out test: higher scores were not followed by rises more often. That is why the verdict above does not relabel this score: it is a separate method that had to earn its probabilities on data it had not seen.
The held-out test (history the scores were not learned from)
Daily candles, 2023 on: charts scoring 81-100 rose 10 candles later in 41.3% of 1,447 held-out cases; charts scoring 1-20 in 55.0% of 451. All held-out candles: 44.4%. Rank correlation of score with the 10-candle return: -0.0176. Higher scores were NOT reliably followed by rises more often in this test.
| Score | Daily candles | Rose after 10 candles | 95% range | 4-hour candles | Rose |
|---|---|---|---|---|---|
| 1-20 | 451 | 55.0% | 50.4–59.5% | 546 | 50.9% |
| 21-40 | 36,628 | 47.3% | 46.8–47.9% | 50,141 | 49.2% |
| 41-60 | 176,881 | 43.8% | 43.6–44.1% | 262,773 | 48.5% |
| 61-80 | 31,866 | 43.9% | 43.4–44.5% | 52,101 | 46.7% |
| 81-100 | 1,447 | 41.3% | 38.8–43.8% | 1,138 | 45.6% |
| All | 247,273 | 44.4% | 366,699 | 48.4% |
Rank correlation of score with the next 10-candle return: -0.0176 (daily), -0.011 (4-hour, 60 pairs). Daily candles, every 10th candle only (outcomes do not overlap): charts scoring 61-80 rose 10 candles later in 43.7% of 3,151 held-out cases; charts scoring 21-40 in 46.6% of 3,627. All held-out candles: 44.4%. Rank correlation of score with the 10-candle return: -0.0146. Higher scores were NOT reliably followed by rises more often in this test.
What this means: the number tells you which measured patterns are on the chart and how those patterns did from 2017-08-17 to 2022-12-31. On 2023-01-01 to 2026-09-29 it did not sort charts into ones that rose more often. We publish that result rather than tune the method until it looks better.
Which timeframes the study covers
| Timeframe | Verdict study | 1-100 score | Pairs | Held-out candles | Scores 1-20 rose | Scores 81-100 rose | All rose | Rank corr. |
|---|---|---|---|---|---|---|---|---|
| 1h | covered (60 pairs) | held-out test only | 60 | 792,645 (2025-01-01 to 2026-09-29) | 48.1% of 1,288 | 45.8% of 672 | 48.3% | -0.0019 |
| 4h | covered (60 pairs) | held-out test only | 60 | 366,699 (2023-01-01 to 2026-09-29) | 50.9% of 546 | 45.6% of 1,138 | 48.4% | -0.011 |
| 1d | covered (258 pairs) | rates measured + held-out test | 292 | 247,273 | 55.0% of 451 | 41.3% of 1,447 | 44.4% | -0.0176 |
| 5d | covered (242 pairs) | not covered | no held-out result for the 1-100 score | |||||
| 1w | covered (212 pairs) | held-out test only | 212 | 31,345 (2023-01-02 to 2026-09-28) | 5.0% of 20 | 41.3% of 75 | 36.8% | -0.0961 |
| 2w | covered (157 pairs) | not covered | no held-out result for the 1-100 score | |||||
| 1M | not covered | not covered | no held-out result for the 1-100 score | |||||
Why 292 pairs on daily and fewer on the others: Daily covers every pair of the universe (292) because the rates were measured on it. 4-hour and 1-hour are a check only, and their history is 6x and 24x the rows of daily per pair, so they were run on the 60 pairs with the most trading (v1's 4-hour check had 58 of its own 60: two pairs lacked 4-hour history from 2023). Weekly uses every pair with at least 60 weekly candles, so pairs listed in the last ~14 months drop out. 4-hour sample: the 60 pairs of the daily universe with the highest 24h quote volume on 2026-09-29 (v1's own 4-hour list was not stored). 1-hour sample: the same 60 pairs as the 4-hour check (highest 24h quote volume on 2026-09-29), 1-hour candles from 2025-01-01 only: 1-hour history is 24x the rows of daily, so the sample was kept to what can be downloaded and scanned in one run.
1-hour candles, 2025 on: charts scoring 81-100 rose 10 candles later in 45.8% of 672 held-out cases; charts scoring 1-20 in 48.1% of 1,288. All held-out candles: 48.3%. Rank correlation of score with the 10-candle return: -0.0019. Higher scores were NOT reliably followed by rises more often in this test.
Weekly candles, 2023 on: charts scoring 61-80 rose 10 candles later in 38.5% of 2,656 held-out cases; charts scoring 21-40 in 40.4% of 4,555. All held-out candles: 36.8%. Rank correlation of score with the 10-candle return: -0.0961. Higher scores were NOT reliably followed by rises more often in this test.
What 50 means
50 is the base rate: the share of all 95,789 study candles (daily, 2017-08-17 to 2022-12-31) that were followed by a rise 10 candles later, 46.4%. A chart with no measured pattern, or whose patterns rose exactly as often as all candles, reads 50. The most bearish pattern's rate is 1 and the most bullish pattern's rate is 100, with straight lines from 1 to 50 and from 50 to 100. In v1 one straight line from the lowest to the highest rate put the base rate at 54, so a chart with no measured edge read 54 and a chart 1.3 points above the base rate read 61 (bullish; 57 on this scale). Anchoring 50 at the base rate makes 50 mean 'rose as often as all candles did'.
Held-out daily candles by band, old scale (v1) vs this scale (v2), same candles: 1-20: 433 → 451; 21-40: 16,966 → 36,628; 41-60: 177,407 → 176,881; 61-80: 50,259 → 31,866; 81-100: 2,208 → 1,447. Ranks do not change, so the rank correlation is the same.
Every pattern, measured
Rise = the close 10 candles after the pattern's confirming candle is above that candle's close. Train: 2017-08-17 to 2022-12-31 (base rate 46.4% of 95,789 candles). Held-out: 2023-01-01 to 2026-09-29 (base rate 44.4%). A pattern needs 100 train cases to be scored.
| Pattern | Score | Train cases | Rose | Held-out cases | Rose | Measured | Textbook |
|---|---|---|---|---|---|---|---|
| Bull flag breakout | 100 | 347 | 55.3% | 630 | 47.1% | bullish | bullish |
| Ascending triangle breakout | – | 91 | 53.8% | 193 | 36.3% | excluded: only 91 train occurrences (< 100) | bullish |
| Double bottom | 82 | 451 | 52.1% | 1,500 | 40.3% | bullish | bullish |
| Head and shoulders | 80 | 114 | 51.7% | 341 | 47.2% | bullish | bearish (measured the other way) |
| Inverse head and shoulders | 78 | 105 | 51.4% | 232 | 43.5% | bullish | bullish |
| Break of structure up | 75 | 2,199 | 50.8% | 5,635 | 44.0% | bullish | bullish |
| Bear flag breakdown | 62 | 665 | 48.6% | 2,141 | 46.4% | bullish | bearish (measured the other way) |
| 20-bar breakout on volume | 61 | 1,733 | 48.4% | 4,273 | 45.7% | bullish | bullish |
| 20-bar breakdown on volume | 55 | 966 | 47.3% | 2,743 | 51.1% | bullish | bearish (measured the other way) |
| Bearish engulfing after a rise | 53 | 4,510 | 46.9% | 12,006 | 43.1% | bullish | bearish (measured the other way) |
| Higher highs and higher lows | 45 | 1,800 | 45.4% | 4,705 | 42.2% | bearish | bullish (measured the other way) |
| Bullish engulfing after a drop | 45 | 4,191 | 45.3% | 12,468 | 43.6% | bearish | bullish (measured the other way) |
| Lower highs and lower lows | 39 | 1,931 | 44.0% | 5,313 | 43.4% | bearish | bearish |
| Break of structure down | 33 | 2,804 | 42.6% | 7,968 | 48.7% | bearish | bearish |
| Double top | 29 | 397 | 41.8% | 1,347 | 43.9% | bearish | bearish |
| Descending triangle breakdown | 1 | 156 | 35.9% | 556 | 52.7% | bearish | bearish |
100 = Bull flag breakout (55.3%), 50 = the base rate (46.4%), 1 = Descending triangle breakdown (35.9%). A chart's number is the average rate of the patterns confirmed in its last 10 candles, placed on that scale; with none, 50. The same table scores every chart of every asset on every timeframe; nothing is re-learned per chart or per asset.
Data
292 crypto pairs, daily candles, from Binance public spot market data (USDT pairs, the top 300 Binance spot USDT pairs by 24h quote volume on the fetch day, stablecoins/fiat/wrapped/leveraged excluded; fetched 2026-09-29). Only pairs still trading on the fetch day; coins that were delisted are missing, which usually flatters long-side results. The 4-hour check used only candles from 2023 on. Pattern definitions: A swing high is a bar whose high is the highest of the 4 bars on each side; it is only known 4 bars later, and the detectors only use it from then on. Swing lows mirror this.
- Break of structure up: First close above the most recent confirmed swing high.
- Break of structure down: First close below the most recent confirmed swing low.
- Double bottom: Two consecutive swing lows within 3% of each other, at least 5 bars apart, with a rise of at least 5% between them; fires on the first close above the highest high between them, within 30 bars of the second low.
- Double top: Mirror of the double bottom: two swing highs within 3%, a drop of at least 5% between them; fires on the first close below the lowest low between them.
- Inverse head and shoulders: Three consecutive swing lows, the middle one at least 3% below both others, the outer two within 5% of each other; fires on the first close above the neckline through the two highs between them, within 30 bars of the right shoulder.
- Head and shoulders: Three consecutive swing highs, the middle one at least 3% above both others, the outer two within 5% of each other; fires on the first close below the neckline through the two lows between them, within 30 bars of the right shoulder.
- Higher highs and higher lows: The bar on which the last two swing highs AND the last two swing lows both become rising.
- Lower highs and lower lows: The bar on which the last two swing highs AND the last two swing lows both become falling.
- 20-bar breakout on volume: First close above the highest high of the previous 20 bars on at least 1.5x their average volume.
- 20-bar breakdown on volume: First close below the lowest low of the previous 20 bars on at least 1.5x their average volume.
- Bullish engulfing after a drop: A green candle whose body covers the previous red candle's body, after 5 bars of decline.
- Bearish engulfing after a rise: A red candle whose body covers the previous green candle's body, after 5 bars of rise.
- Ascending triangle breakout: Last two swing highs within 1.5% (flat top), last two swing lows rising at least 2%; fires on the first close above the flat top within 30 bars of the last swing high.
- Descending triangle breakdown: Last two swing lows within 1.5% (flat bottom), last two swing highs falling at least 2%; fires on the first close below the flat bottom within 30 bars of the last swing low.
- Bull flag breakout: A rise of at least 15% in at most 10 bars (the pole), then 3 to 12 bars that stay below the pole top and give back at most half of it; fires on the first close above the pole top.
- Bear flag breakdown: A drop of at least 15% in at most 10 bars, then 3 to 12 bars that stay above the pole bottom and give back at most half of it; fires on the first close below the pole bottom.
The structures and indicator setups of the verdict, with their definitions, are listed on the study page.
What this version does not do
- It does not predict. A verdict is a probability from history: the share of past charts with these setups that went that way, on years the method had not seen. Never a promise.
- It does not read screenshots or images; it reads candles.
- It loads candles itself for crypto only: by ticker (Binance USDT pairs, 1h to 1M) or by contract address (the token's deepest DEX pool, via GeckoTerminal's public API; 5-day, weekly, 2-week and monthly candles are built from its daily ones). Stocks, forex and anything else: upload a candle file.
- By contract address it reads what the free public source serves (up to about 1,000 daily candles), so a young token's longer timeframes have too few candles and the page opens the longest one that has enough; if a pool has no candles, or fewer than 60, you get that message instead of a number.
- DEX token candles refresh every few minutes to hours (the public source allows about 10 calls a minute for everyone on our server); ticker charts stream every trade. The answer shows when its candles were fetched.
- The verdict's table was measured on exchange candles of 258 pairs. DEX pool candles, uploaded files and pairs outside the study use the same table; the verdict card says so, and an asset's own record is never substituted for the general one.
- No news, no fundamentals, no order flow: price and volume only. No stop, no exit rule, no costs: the target is a price path, not a trade result.
- It is not a forecast or financial advice. It places no orders, sends no alerts and moves no funds.
For builders: REST, MCP, WebSocket
GET https://cymetica.com/api/v1/chart-analyzer/analyze?symbol=BTC&timeframe=1d verdict, probability, structures, setups, indicators + the 1-100 score
GET https://cymetica.com/api/v1/chart-analyzer/analyze?contract=0xdbdb4d16eda451d0503b854cf79d55697f90c8df&chain=ethereum&timeframe=auto
POST https://cymetica.com/api/v1/chart-analyzer/analyze {"contract":"0x…","chain":"ethereum"} or {"symbol":"ETH","timeframe":"1w"} or {"candles":[...]}
POST https://cymetica.com/api/v1/chart-analyzer/batch {"timeframe":"1d","items":[{"contract":"0x…","chain":"ethereum"},{"symbol":"BTC"}]} (up to 300; 1-100 score only)
GET https://cymetica.com/api/v1/chart-analyzer/batch/gem-screener?timeframe=1d every Gem Screener coin, by contract
GET https://cymetica.com/api/v1/chart-analyzer/study/expert the verdict's study: setups, targets, split, weights, calibration, held-out proof
GET https://cymetica.com/api/v1/chart-analyzer/calls the public ledger of the page's own calls and its record
GET https://cymetica.com/api/v1/chart-analyzer/study the 1-100 score's study
GET https://cymetica.com/api/v1/chart-analyzer/gem-screener/coins Gem Screener coins with their contract addresses
GET https://cymetica.com/api/v1/chart-analyzer/chains chains a contract can be read on
POST https://cymetica.com/api/v1/chart-analyzer/upload multipart file=@candles.csv
GET https://cymetica.com/api/v1/chart-analyzer/format the file format
MCP POST https://cymetica.com/mcp/v1 tools: chart_analyzer_score, chart_analyzer_batch, chart_analyzer_study (same input)
WS wss://cymetica.com/ws/chart-analyzer send {"op":"subscribe","symbol":"BTC","timeframe":"1h"} timeframes 1h 4h 1d 5d 1w 2w 1M auto
or {"op":"subscribe","contract":"0x…","chain":"ethereum","timeframe":"auto"}
Documented at /api-docs. Research and build: EventTrader, Build it Better ET-27875, ET-28324, ET-28704 and ET-29001. Script and study files are versioned (v2, 2026-09-29; verdict study v3, 2026-10-04).