Chart Analyzer › the study
The study behind the verdict
Everything the verdict on /chart-analyzer is made of, published as found. Version v3, generated 2026-10-04T06:17:59Z. The same numbers as JSON: /api/v1/chart-analyzer/study/expert. A probability from history, never a promise.
How the verdict is made
The expert layer: setups -> calibrated probability -> verdict (Chart Analyzer, Build it Better ET-29001). One general study over many assets and timeframes (``scripts/research/chart_analyzer_expert_study.py``, artifact ``study_v3.json``) decided which structures and indicators matter; this module APPLIES that study to the chart in front of the visitor. Nothing is fitted per chart or per asset. Method (fixed before the study was run; its results are published as found, good or poor): * SETUPS: every pattern event of ``patterns.py`` (active for ACTIVE_BARS after its confirming bar), every structure state/event of ``structures.py`` and the indicator states below, each a yes/no per bar. * TARGET per timeframe: "the close rises by UP% before it falls by DOWN% within WINDOW candles" (first barrier hit on closes; neither = no edge either way). Symmetric barriers, so the base rate sits near one half and a rise is never the easy kind of target. * MODEL: on the TRAIN years, each setup's log-odds of "up first" and of "down first" relative to the base rate, shrunk toward zero by n/(n+K); a chart's raw probability is the base log-odds plus the sum over its active setups (each setup type once). * CALIBRATION on the CALIBRATE years, 2021-2022, one rising and one falling (never used to fit a weight): raw probability -> 5-point bin -> the share of that bin's cases that actually went that way, made monotone (pool-adjacent-violators). The page shows THAT number. A bin with too few cases shows the base rate. * VERDICT: READY TO POP when the calibrated P(up first) clears the base rate by GAP points AND its 95% range sits above the base rate on at least MIN_CASES cases; READY TO DUMP mirrors it; else NO EDGE. * PROOF on the TEST years: reliability (said vs happened per bin), Brier score against the base rate, and the record of the verdicts themselves. Published in the artifact and on /chart-analyzer/study.
The rule. 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. Setups with fewer than 100 cases on the years the method was built on carry no weight; a setup's weight is its log-odds lift shrunk by n/(n+200). A breakout or a cross counts for 10 candles after it (5 for an indicator cross); a state (at support, above the 200 average, inside a channel) counts while it holds.
Combinations searched. 54 setups × 7 timeframes × 2 sides, 7 models. One additive log-odds model per timeframe over all setups; no grid search, no selection among models, barrier sizes and all thresholds fixed before the run. Searching more would raise the chance that an edge is luck.
Data. Binance public spot market data (data-api.binance.vision), USDT pairs; 5d/1w/2w/1M candles built from the daily ones (candles.aggregate), 4h and 1h for the 60 most-traded pairs from 2021. 258 pairs (the Chart Analyzer v2 universe: top 300 Binance spot USDT pairs by 24h quote volume on 2026-09-29, stablecoins/fiat/wrapped/leveraged excluded). Only pairs still trading on the fetch day; delisted coins are missing, which flatters long-side results.
Targets per timeframe
A verdict names a path, not a price: the probability that the close rises by the up amount before it falls by the down amount within the window, measured on closes of the same kind of candle. The targets were fixed before the run and are not the easy kind: see each timeframe's base rate below (the share of all candles that met the target with no rule at all).
| Timeframe | Rise | Fall | Window | Covered | Pairs | Base rate, rose first (test) | Base rate, fell first (test) |
|---|---|---|---|---|---|---|---|
| 1h | +3.0% | −3.0% | 48 candles | yes | 60 | 40.4% | 42.6% |
| 4h | +5.0% | −5.0% | 42 candles | yes | 60 | 42.5% | 45.5% |
| 1d | +10.0% | −10.0% | 30 candles | yes | 258 | 43.8% | 50.3% |
| 5d | +15.0% | −15.0% | 26 candles | yes | 242 | 41.9% | 57.0% |
| 1w | +20.0% | −20.0% | 26 candles | yes | 212 | 42.3% | 56.4% |
| 2w | +25.0% | −25.0% | 26 candles | yes | 157 | 31.9% | 67.7% |
| 1M | +30.0% | −30.0% | 12 candles | no (too few bars: train 1919, calibrate 582, test 1552) | 97 | – | – |
The split and the held-out period
- Built on: bars whose outcome window ends before 2021-01-01.
- Calibrated on: bars from 2021-01-01 whose window ends before 2023-01-01 (2021 rose, 2022 fell).
- Tested on: bars from 2023-01-01 on (held out: never used to fit a weight or a calibration).
The probabilities shown on the page are the calibrated ones: the raw model number is mapped to the share of calibration cases in its 5-point bin that actually met the target (made monotone), and a bin is used only when it holds 300 or more cases. Nothing from 2023 onward touched a weight or a table; that period is the proof.
The record of the verdicts on held-out history
| Timeframe | Held-out bars | Period | READY TO POP given | Rose first | All bars | Edge | READY TO DUMP given | Fell first | All bars | Edge | Said vs happened |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1h | 710,454 | 2025-01-01 → 2026-10-02 | 157,119 | 45.1% | 40.4% | held | 217,979 | 47.2% | 42.6% | held | 2.2 pts |
| 4h | 175,850 | 2025-01-01 → 2026-09-27 | 19,797 | 42.8% | 42.5% | did not hold | 0 | – | 45.5% | never given | 2.1 pts |
| 1d | 240,801 | 2023-01-01 → 2026-09-04 | 0 | – | 43.8% | never given | 5,272 | 54.9% | 50.3% | held | 1.9 pts |
| 5d | 42,953 | 2023-01-03 → 2026-05-27 | 2,425 | 39.8% | 41.9% | did not hold | 0 | – | 57.0% | never given | 2.7 pts |
| 1w | 27,953 | 2023-01-02 → 2026-03-30 | 1,686 | 54.6% | 42.3% | held | 0 | – | 56.4% | never given | 3.9 pts |
| 2w | 3,140 | 2025-01-06 → 2025-09-29 | 1,047 | 34.7% | 31.9% | did not hold | 429 | 65.5% | 67.7% | did not hold | 30.4 pts |
"Held" means the verdict was given 300 or more times on the held-out years and the lower end of its 95% range beat the base rate. The page gives a verdict only where the rule fires; a timeframe where neither side held still shows NO EDGE or a label with its held-out record stated beside it, so the reader sees what the history says about that label. "Said vs happened" is the case-weighted gap between the probability said and the share that happened across calibration bins with 300+ cases.
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). Non-overlapping check (every 48th candle per pair, 14,825 cases): POP 3,248 given, 43.1% rose first vs 39.5%; DUMP 4,598 given, 47.8% fell first vs 44.0%. Brier score (lower is better) model 0.2389 vs base rate 0.2413 (rise), 0.2415 vs 0.2464 (fall).
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). Non-overlapping check (every 42th candle per pair, 4,212 cases): POP 479 given, 32.8% rose first vs 42.5%; DUMP 0 given, – fell first vs 45.9%. Brier score (lower is better) model 0.2441 vs base rate 0.2444 (rise), 0.2450 vs 0.2505 (fall).
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). Non-overlapping check (every 30th candle per pair, 8,125 cases): POP 0 given, – rose first vs 39.2%; DUMP 280 given, 56.1% fell first vs 55.0%. Brier score (lower is better) model 0.2458 vs base rate 0.2464 (rise), 0.2494 vs 0.2501 (fall).
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). Non-overlapping check (every 26th candle per pair, 1,762 cases): POP 114 given, 48.2% rose first vs 50.5%; DUMP 0 given, – fell first vs 48.2%. Brier score (lower is better) model 0.2451 vs base rate 0.2442 (rise), 0.2468 vs 0.2458 (fall).
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). Non-overlapping check (every 26th candle per pair, 1,175 cases): POP 99 given, 65.7% rose first vs 54.0%; DUMP 0 given, – fell first vs 45.5%. Brier score (lower is better) model 0.2434 vs base rate 0.2444 (rise), 0.2450 vs 0.2461 (fall).
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). Non-overlapping check (every 26th candle per pair, 157 cases): POP 13 given, 0.0% rose first vs 4.5%; DUMP 21 given, 85.7% fell first vs 94.3%. Brier score (lower is better) model 0.3006 vs base rate 0.2922 (rise), 0.3010 vs 0.2946 (fall).
Every setup, with its definition
54 setups in three groups. A state counts while it holds; an event counts for 10 candles after it. The "textbook side" is what a chart book says; the measured side is what the data said on the years the method was built on, per timeframe (tables below).
Structures drawn by rule
At supportstate · textbook bullish · at_support
The close sits within 2.5% above a support level: two or more confirmed swing lows within 2% of each other in the last 250 bars.
At resistancestate · textbook bearish · at_resistance
The close sits within 2.5% below a resistance level: two or more confirmed swing highs within 2% of each other in the last 250 bars.
Support brokenevent · textbook bearish · support_break
First close more than 1% below a support level (two or more swing lows within 2%).
Resistance brokenevent · textbook bullish · resistance_break
First close more than 1% above a resistance level (two or more swing highs within 2%).
Above a rising trendlinestate · textbook bullish · uptrend_line_hold
A rising line (log scale) through the lowest swing low of the last 120 bars and the most recent swing low, with every swing low in between on or above it; the close is above the line.
Below a falling trendlinestate · textbook bearish · downtrend_line_hold
A falling line (log scale) through the highest swing high of the last 120 bars and the most recent swing high, with every swing high in between on or below it; the close is below it.
Rising trendline brokenevent · textbook bearish · uptrend_line_break
First close more than 0.5% below a rising trendline that held until the previous bar.
Falling trendline brokenevent · textbook bullish · downtrend_line_break
First close more than 0.5% above a falling trendline that capped price until the previous bar.
Inside a rising channelstate · textbook bullish · in_rising_channel
A rising trendline plus a parallel line (slope within 35%) through the highs with at least two touches; the close is between the two.
Inside a falling channelstate · textbook bearish · in_falling_channel
A falling trendline plus a parallel line through the lows with at least two touches; the close is between the two.
At the top of a channelstate · textbook bearish · at_channel_top
Inside a channel and the close within 2% of its upper line.
At the bottom of a channelstate · textbook bullish · at_channel_bottom
Inside a channel and the close within 2% of its lower line.
Rising wedge formingstate · textbook bearish · rising_wedge_forming
Both lines through the last two swing highs and the last two swing lows (60 bars) rise and converge within 2.5 formation lengths; the close is still inside.
Falling wedge formingstate · textbook bullish · falling_wedge_forming
Both lines fall and converge; the close is still inside.
Symmetrical triangle formingstate · textbook neutral · sym_triangle_forming
Upper line falls, lower line rises, they converge; the close is still inside.
Ascending triangle formingstate · textbook bullish · asc_triangle_forming
Flat upper line (slope below 0.08% a bar), rising lower line; the close is still inside.
Descending triangle formingstate · textbook bearish · desc_triangle_forming
Flat lower line, falling upper line; the close is still inside.
Rising wedge broke downevent · textbook bearish · rising_wedge_break_down
First close more than 0.5% below the lower line of a forming rising wedge.
Falling wedge broke upevent · textbook bullish · falling_wedge_break_up
First close more than 0.5% above the upper line of a forming falling wedge.
Symmetrical triangle broke upevent · textbook bullish · sym_triangle_break_up
First close more than 0.5% above the upper line of a forming symmetrical triangle.
Symmetrical triangle broke downevent · textbook bearish · sym_triangle_break_down
First close more than 0.5% below the lower line of a forming symmetrical triangle.
Patterns (the older detector, reused)
Break of structure upevent · textbook bullish · bos_up
First close above the most recent confirmed swing high.
Break of structure downevent · textbook bearish · bos_down
First close below the most recent confirmed swing low.
Double bottomevent · textbook bullish · 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 topevent · textbook bearish · 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 shouldersevent · textbook bullish · inverse_head_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 shouldersevent · textbook bearish · head_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 lowsevent · textbook bullish · higher_highs_lows
The bar on which the last two swing highs AND the last two swing lows both become rising.
Lower highs and lower lowsevent · textbook bearish · lower_highs_lows
The bar on which the last two swing highs AND the last two swing lows both become falling.
20-bar breakout on volumeevent · textbook bullish · breakout_volume
First close above the highest high of the previous 20 bars on at least 1.5x their average volume.
20-bar breakdown on volumeevent · textbook bearish · breakdown_volume
First close below the lowest low of the previous 20 bars on at least 1.5x their average volume.
Bullish engulfing after a dropevent · textbook bullish · bullish_engulfing
A green candle whose body covers the previous red candle's body, after 5 bars of decline.
Bearish engulfing after a riseevent · textbook bearish · bearish_engulfing
A red candle whose body covers the previous green candle's body, after 5 bars of rise.
Ascending triangle breakoutevent · textbook bullish · ascending_triangle
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 breakdownevent · textbook bearish · descending_triangle
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 breakoutevent · textbook bullish · bull_flag
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 breakdownevent · textbook bearish · bear_flag
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.
Indicators
RSI oversoldstate · textbook bullish · rsi_oversold
RSI(14, Wilder) below 30 on this bar.
RSI overboughtstate · textbook bearish · rsi_overbought
RSI(14, Wilder) above 70 on this bar.
MACD crossed upevent · textbook bullish · macd_cross_up
MACD(12,26,9) line crossed above its signal line on this bar (histogram from <= 0 to > 0). A separate confirmation, counted for 5 bars.
MACD crossed downevent · textbook bearish · macd_cross_down
MACD line crossed below its signal line on this bar. Counted for 5 bars.
MACD histogram risingstate · textbook bullish · macd_hist_rising
MACD histogram above the previous bar's.
MACD histogram fallingstate · textbook bearish · macd_hist_falling
MACD histogram below the previous bar's.
Above the 50-bar averagestate · textbook bullish · above_sma50
Close above the 50-bar simple moving average.
Below the 50-bar averagestate · textbook bearish · below_sma50
Close below the 50-bar simple moving average.
Above the 200-bar averagestate · textbook bullish · above_sma200
Close above the 200-bar simple moving average.
Below the 200-bar averagestate · textbook bearish · below_sma200
Close below the 200-bar simple moving average.
50 above 200 (golden)state · textbook bullish · golden_trend
The 50-bar average is above the 200-bar average.
50 below 200 (death)state · textbook bearish · death_trend
The 50-bar average is below the 200-bar average.
At the lower Bollinger Bandstate · textbook bullish · bb_lower_touch
Close at or below the lower Bollinger Band (20 bars, 2 standard deviations).
At the upper Bollinger Bandstate · textbook bearish · bb_upper_touch
Close at or above the upper Bollinger Band.
Volume surgestate · textbook neutral · volume_surge
This bar's volume is at least 1.5x the average of the previous 20 bars. Volume is ON by default and part of the rules: the breakout patterns require it, and it is a setup of its own.
Volatility squeezestate · textbook neutral · squeeze
The 20-bar high-low range is below 60% of its own 100-bar median: a coil, direction unknown.
Weekly Signalstate · textbook bullish · weekly_signal
The /weekly-signal indicator: weekly RSI(14) below 40 with a rising weekly MACD histogram on the last completed week (weeks resampled from this chart's own candles; on a weekly chart, the bar itself). Its own pooled study is published on /weekly-signal and quoted here.
Per-timeframe tables
For each covered timeframe: every setup's cases and rates on the years the method was built on and on the held-out years, its weight in the model, and whether its measured edge held out of sample; then the calibration table (raw model bin → what happened on 2021-2022) and the reliability of the calibrated numbers on 2023 onward.
1h · 60 pairs · target +3.0% before −3.0% within 48 candles
Built on 444,044 bars (2021-01-01 → 2022-12-29; rose first 43.0%, fell first 44.9%, neither 12.2%). Calibrated on 557,882 bars (2023-01-01 → 2024-12-29; 38.0% / 38.3%). Tested on 710,454 bars (2025-01-01 → 2026-10-02; 40.4% / 42.6%).
Setups on 1h
| Setup | Group | Built on: cases | rose first | fell first | Tested on: cases | rose first | fell first | Weight rise | Weight fall | Measured side | Held out |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Break of structure up | pattern | 118,683 | 42.8% | 45.9% | 184,014 | 40.4% | 42.2% | -0.007 | +0.043 | none | – |
| Break of structure down | pattern | 119,490 | 44.1% | 44.8% | 198,189 | 41.1% | 42.8% | +0.045 | -0.004 | none | – |
| Double bottom | pattern | 12,369 | 48.5% | 50.2% | 10,978 | 44.8% | 52.7% | +0.220 | +0.211 | rise | held |
| Double top | pattern | 11,496 | 49.7% | 48.7% | 11,329 | 45.4% | 52.6% | +0.266 | +0.153 | rise | held |
| Inverse head and shoulders | pattern | 3,390 | 50.0% | 45.5% | 3,600 | 50.5% | 41.7% | +0.267 | +0.025 | rise | held |
| Head and shoulders | pattern | 3,240 | 48.3% | 48.4% | 4,070 | 49.7% | 44.5% | +0.205 | +0.133 | rise | held |
| Higher highs and higher lows | pattern | 88,173 | 41.8% | 45.6% | 136,013 | 39.1% | 43.1% | -0.047 | +0.029 | none | – |
| Lower highs and lower lows | pattern | 88,317 | 43.5% | 44.0% | 141,362 | 40.3% | 42.7% | +0.021 | -0.035 | none | – |
| 20-bar breakout on volume | pattern | 73,043 | 44.6% | 45.6% | 114,438 | 41.0% | 42.6% | +0.068 | +0.030 | none | – |
| 20-bar breakdown on volume | pattern | 72,709 | 44.1% | 45.8% | 117,216 | 41.0% | 42.1% | +0.045 | +0.037 | none | – |
| Bullish engulfing after a drop | pattern | 186,444 | 42.5% | 45.2% | 301,999 | 40.3% | 42.8% | -0.018 | +0.016 | none | – |
| Bearish engulfing after a rise | pattern | 190,034 | 42.2% | 44.8% | 310,144 | 40.3% | 41.7% | -0.031 | -0.001 | none | – |
| Ascending triangle breakout | pattern | 10,511 | 41.6% | 50.3% | 12,981 | 43.9% | 45.0% | -0.054 | +0.214 | fall | held |
| Descending triangle breakdown | pattern | 9,119 | 46.3% | 46.2% | 16,205 | 45.1% | 43.0% | +0.132 | +0.052 | rise | held |
| Bull flag breakout | pattern | 3,439 | 46.4% | 53.5% | 2,128 | 48.5% | 50.4% | +0.133 | +0.327 | fall | held |
| Bear flag breakdown | pattern | 1,675 | 54.0% | 45.9% | 1,620 | 57.5% | 41.9% | +0.396 | +0.038 | rise | held |
| At support | structure | 177,975 | 36.9% | 41.0% | 341,767 | 35.8% | 38.5% | -0.255 | -0.158 | none | – |
| At resistance | structure | 177,628 | 37.4% | 40.5% | 324,398 | 36.3% | 37.5% | -0.232 | -0.176 | none | – |
| Support broken | structure | 132,563 | 42.7% | 46.3% | 223,529 | 40.7% | 42.9% | -0.010 | +0.059 | none | – |
| Resistance broken | structure | 120,326 | 45.2% | 45.5% | 189,225 | 41.7% | 42.8% | +0.091 | +0.027 | rise | did not hold |
| Above a rising trendline | structure | 100,249 | 46.7% | 47.2% | 121,665 | 42.9% | 48.2% | +0.150 | +0.092 | rise | held |
| Below a falling trendline | structure | 96,315 | 46.8% | 47.3% | 142,079 | 42.3% | 47.5% | +0.155 | +0.100 | rise | did not hold |
| Rising trendline broken | structure | 56,317 | 45.5% | 47.7% | 77,691 | 42.3% | 47.8% | +0.105 | +0.115 | fall | held |
| Falling trendline broken | structure | 53,542 | 45.5% | 48.1% | 81,230 | 42.4% | 47.0% | +0.101 | +0.128 | fall | held |
| Inside a rising channel | structure | 42,586 | 46.2% | 45.8% | 52,605 | 42.2% | 47.0% | +0.132 | +0.038 | rise | did not hold |
| Inside a falling channel | structure | 36,528 | 45.5% | 46.5% | 64,666 | 42.5% | 44.5% | +0.103 | +0.067 | rise | held |
| At the top of a channel | structure | 21,844 | 43.3% | 44.6% | 42,744 | 40.0% | 42.8% | +0.016 | -0.012 | none | – |
| At the bottom of a channel | structure | 24,029 | 42.2% | 45.9% | 37,314 | 39.9% | 44.5% | -0.032 | +0.043 | none | – |
| Rising wedge forming | structure | 5,617 | 44.6% | 48.4% | 5,802 | 42.9% | 48.4% | +0.066 | +0.137 | fall | held |
| Falling wedge forming | structure | 4,818 | 49.9% | 43.9% | 8,223 | 44.2% | 45.9% | +0.269 | -0.038 | rise | held |
| Symmetrical triangle forming | structure | 7,069 | 47.6% | 48.0% | 7,547 | 43.0% | 47.5% | +0.183 | +0.122 | rise | held |
| Ascending triangle forming | structure | 13,719 | 44.4% | 45.1% | 20,723 | 40.1% | 42.1% | +0.056 | +0.009 | none | – |
| Descending triangle forming | structure | 12,844 | 42.4% | 45.3% | 22,965 | 40.8% | 43.4% | -0.021 | +0.019 | none | – |
| Rising wedge broke down | structure | 14,260 | 44.6% | 48.2% | 15,573 | 42.9% | 47.8% | +0.066 | +0.132 | fall | held |
| Falling wedge broke up | structure | 12,607 | 46.6% | 47.1% | 19,973 | 45.3% | 44.2% | +0.147 | +0.088 | rise | held |
| Symmetrical triangle broke up | structure | 16,640 | 45.1% | 49.4% | 19,439 | 43.7% | 47.0% | +0.086 | +0.182 | fall | held |
| Symmetrical triangle broke down | structure | 16,666 | 44.3% | 50.1% | 20,259 | 43.5% | 47.2% | +0.055 | +0.209 | fall | held |
| RSI oversold | indicator | 19,272 | 46.1% | 44.0% | 33,399 | 41.6% | 43.6% | +0.128 | -0.036 | rise | did not hold |
| RSI overbought | indicator | 18,120 | 43.8% | 46.7% | 33,491 | 45.0% | 40.7% | +0.033 | +0.072 | none | – |
| MACD crossed up | indicator | 85,900 | 43.8% | 43.8% | 135,831 | 40.6% | 42.6% | +0.035 | -0.043 | none | – |
| MACD crossed down | indicator | 86,054 | 42.4% | 45.0% | 135,797 | 40.1% | 42.8% | -0.021 | +0.007 | none | – |
| MACD histogram rising | indicator | 221,695 | 42.6% | 45.2% | 355,749 | 40.5% | 42.6% | -0.012 | +0.013 | none | – |
| MACD histogram falling | indicator | 221,465 | 43.2% | 44.5% | 353,889 | 40.2% | 42.6% | +0.011 | -0.013 | none | – |
| Above the 50-bar average | indicator | 215,233 | 42.8% | 45.2% | 335,537 | 40.4% | 42.5% | -0.008 | +0.012 | none | – |
| Below the 50-bar average | indicator | 227,512 | 43.1% | 44.6% | 373,738 | 40.3% | 42.7% | +0.004 | -0.011 | none | – |
| Above the 200-bar average | indicator | 206,862 | 43.7% | 44.9% | 312,097 | 40.5% | 42.9% | +0.031 | +0.003 | none | – |
| Below the 200-bar average | indicator | 232,005 | 41.9% | 45.0% | 393,581 | 40.2% | 42.3% | -0.044 | +0.003 | none | – |
| 50 above 200 (golden) | indicator | 208,717 | 43.8% | 44.7% | 314,238 | 40.3% | 42.6% | +0.036 | -0.005 | none | – |
| 50 below 200 (death) | indicator | 230,152 | 41.8% | 45.1% | 391,440 | 40.4% | 42.6% | -0.049 | +0.010 | none | – |
| At the lower Bollinger Band | indicator | 27,568 | 44.3% | 43.6% | 42,674 | 41.4% | 42.3% | +0.053 | -0.051 | none | – |
| At the upper Bollinger Band | indicator | 26,101 | 43.0% | 46.0% | 43,983 | 42.5% | 41.9% | +0.003 | +0.045 | none | – |
| Volume surge | indicator | 73,709 | 43.0% | 44.9% | 129,898 | 41.5% | 42.7% | +0.003 | +0.001 | none | – |
| Volatility squeeze | indicator | 53,261 | 39.2% | 46.2% | 88,615 | 36.8% | 43.0% | -0.154 | +0.054 | none | – |
| Weekly Signal | indicator | 36,423 | 43.3% | 45.3% | 66,113 | 41.4% | 42.5% | +0.015 | +0.017 | none | – |
Calibration on 2021-2022 (557,882 bars)
Each side: the bin's cases, its own rate with its own 95% range, then the calibrated value (adjacent bins pooled to make the table monotone) with the 95% range of that value over the pooled cases. The number the page shows is the calibrated one, inside its own range.
| Raw model bin | Rise: cases | rose first (own range) | calibrated (its range) | usable | Fall: cases | fell first (own range) | calibrated (its range) | usable |
|---|---|---|---|---|---|---|---|---|
| 20% – 25% | 1,189 | 22.8% (20.5% – 25.3%) | 22.8% (20.5% – 25.3%) | yes | 0 | – | – | no |
| 25% – 30% | 54,455 | 24.4% (24.1% – 24.8%) | 24.4% (24.1% – 24.8%) | yes | 0 | – | – | no |
| 30% – 35% | 111,945 | 29.5% (29.2% – 29.8%) | 29.5% (29.2% – 29.8%) | yes | 1,060 | 23.5% (21.0% – 26.1%) | 23.5% (21.0% – 26.1%) | yes |
| 35% – 40% | 114,594 | 37.7% (37.5% – 38.0%) | 37.7% (37.5% – 38.0%) | yes | 125,063 | 26.2% (25.9% – 26.4%) | 26.2% (25.9% – 26.4%) | yes |
| 40% – 45% | 123,770 | 42.1% (41.8% – 42.3%) | 42.1% (41.8% – 42.3%) | yes | 176,892 | 38.1% (37.9% – 38.4%) | 38.1% (37.9% – 38.4%) | yes |
| 45% – 50% | 98,602 | 45.2% (44.9% – 45.5%) | 45.2% (44.9% – 45.5%) | yes | 172,454 | 43.5% (43.3% – 43.7%) | 43.5% (43.3% – 43.7%) | yes |
| 50% – 55% | 39,480 | 47.3% (46.9% – 47.8%) | 47.3% (46.9% – 47.8%) | yes | 64,451 | 46.0% (45.6% – 46.4%) | 46.0% (45.6% – 46.4%) | yes |
| 55% – 60% | 11,450 | 49.9% (48.9% – 50.8%) | 49.4% (48.5% – 50.2%, 13,847 pooled) | yes | 15,240 | 48.4% (47.6% – 49.2%) | 48.4% (47.6% – 49.2%) | yes |
| 60% – 65% | 2,175 | 47.7% (45.6% – 49.8%) | 49.4% (48.5% – 50.2%, 13,847 pooled) | yes | 2,448 | 50.1% (48.1% – 52.1%) | 49.6% (47.7% – 51.5%, 2,717 pooled) | yes |
| 65% – 70% | 204 | 42.2% (35.6% – 49.0%) | 49.4% (48.5% – 50.2%, 13,847 pooled) | no | 269 | 45.4% (39.5% – 51.3%) | 49.6% (47.7% – 51.5%, 2,717 pooled) | no |
| 70% – 75% | 18 | 22.2% (9.0% – 45.2%) | 49.4% (48.5% – 50.2%, 13,847 pooled) | no | 5 | 100.0% (56.5% – 100.0%) | 100.0% (56.5% – 100.0%) | no |
Reliability on 2023 onward (said vs happened)
| Bin | Rise: cases | said | happened | Fall: cases | said | happened |
|---|---|---|---|---|---|---|
| 20% – 25% | 1,096 | 22.8% | 27.2% | – | – | – |
| 25% – 30% | 56,004 | 24.4% | 29.0% | – | – | – |
| 30% – 35% | 121,913 | 29.5% | 34.2% | 904 | 23.5% | 30.2% |
| 35% – 40% | 149,692 | 37.7% | 40.2% | 121,295 | 26.2% | 29.5% |
| 40% – 45% | 174,350 | 42.1% | 43.0% | 227,451 | 38.1% | 42.1% |
| 45% – 50% | 134,689 | 45.2% | 44.5% | 245,261 | 43.5% | 46.6% |
| 50% – 55% | 54,068 | 47.3% | 45.9% | 90,470 | 46.0% | 48.7% |
| 55% – 60% | 15,576 | 49.4% | 46.5% | 21,209 | 48.4% | 49.2% |
| 60% – 65% | 2,776 | 49.4% | 47.3% | 3,528 | 49.6% | 51.6% |
| 65% – 70% | 277 | 38.0% | 49.1% | 327 | 38.3% | 50.1% |
| 70% – 75% | 12 | 38.0% | 66.7% | 9 | 38.3% | 66.7% |
| 75% – 80% | 1 | 38.0% | 0.0% | – | – | – |
NO EDGE bars on the held-out years: 335,356, of which 36.1% rose first and 37.4% fell first. Share of bars that got a label: 52.8%.
4h · 60 pairs · target +5.0% before −5.0% within 42 candles
Built on 110,313 bars (2021-01-01 → 2022-12-24; rose first 44.4%, fell first 47.1%, neither 8.6%). Calibrated on 138,400 bars (2023-01-01 → 2024-12-24; 42.4% / 40.4%). Tested on 175,850 bars (2025-01-01 → 2026-09-27; 42.5% / 45.5%).
Setups on 4h
| Setup | Group | Built on: cases | rose first | fell first | Tested on: cases | rose first | fell first | Weight rise | Weight fall | Measured side | Held out |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Break of structure up | pattern | 28,568 | 44.3% | 48.0% | 43,312 | 41.8% | 46.2% | -0.004 | +0.039 | none | – |
| Break of structure down | pattern | 29,167 | 45.1% | 46.5% | 48,858 | 44.0% | 44.4% | +0.030 | -0.025 | none | – |
| Double bottom | pattern | 7,278 | 45.5% | 52.0% | 10,054 | 43.0% | 53.1% | +0.045 | +0.190 | fall | held |
| Double top | pattern | 6,764 | 48.0% | 49.1% | 10,732 | 46.3% | 49.7% | +0.141 | +0.078 | rise | held |
| Inverse head and shoulders | pattern | 1,870 | 47.1% | 45.9% | 1,922 | 43.9% | 49.5% | +0.100 | -0.042 | rise | did not hold |
| Head and shoulders | pattern | 1,570 | 45.9% | 50.1% | 2,370 | 44.1% | 49.5% | +0.053 | +0.108 | fall | held |
| Higher highs and higher lows | pattern | 21,441 | 43.1% | 47.8% | 34,295 | 42.0% | 45.2% | -0.049 | +0.030 | none | – |
| Lower highs and lower lows | pattern | 21,605 | 44.1% | 46.6% | 35,461 | 42.3% | 46.0% | -0.012 | -0.021 | none | – |
| 20-bar breakout on volume | pattern | 17,539 | 44.9% | 49.4% | 29,585 | 42.9% | 46.1% | +0.022 | +0.090 | fall | did not hold |
| 20-bar breakdown on volume | pattern | 15,231 | 42.3% | 49.0% | 26,596 | 43.9% | 43.5% | -0.085 | +0.075 | none | – |
| Bullish engulfing after a drop | pattern | 45,255 | 44.0% | 46.8% | 76,830 | 43.2% | 45.2% | -0.017 | -0.012 | none | – |
| Bearish engulfing after a rise | pattern | 48,302 | 42.9% | 47.9% | 76,725 | 42.2% | 45.1% | -0.061 | +0.035 | none | – |
| Ascending triangle breakout | pattern | 2,380 | 45.3% | 47.9% | 3,590 | 38.1% | 49.6% | +0.036 | +0.032 | none | – |
| Descending triangle breakdown | pattern | 2,579 | 44.2% | 48.5% | 4,445 | 44.6% | 45.1% | -0.006 | +0.052 | none | – |
| Bull flag breakout | pattern | 2,521 | 44.1% | 54.3% | 2,189 | 42.5% | 55.9% | -0.010 | +0.268 | fall | held |
| Bear flag breakdown | pattern | 2,185 | 53.4% | 45.7% | 2,383 | 47.6% | 51.7% | +0.331 | -0.052 | rise | held |
| At support | structure | 18,886 | 32.0% | 39.7% | 40,144 | 37.4% | 36.6% | -0.521 | -0.297 | none | – |
| At resistance | structure | 18,064 | 34.7% | 36.9% | 35,124 | 37.5% | 35.9% | -0.403 | -0.415 | none | – |
| Support broken | structure | 28,224 | 40.6% | 48.5% | 49,837 | 42.1% | 45.2% | -0.151 | +0.057 | none | – |
| Resistance broken | structure | 24,028 | 46.2% | 46.1% | 42,211 | 41.3% | 44.8% | +0.072 | -0.039 | none | – |
| Above a rising trendline | structure | 30,579 | 46.9% | 48.7% | 44,108 | 43.6% | 47.8% | +0.101 | +0.066 | rise | did not hold |
| Below a falling trendline | structure | 29,583 | 45.0% | 49.6% | 48,594 | 44.7% | 46.2% | +0.024 | +0.099 | fall | did not hold |
| Rising trendline broken | structure | 17,294 | 46.3% | 48.1% | 26,254 | 45.1% | 45.9% | +0.077 | +0.041 | none | – |
| Falling trendline broken | structure | 15,840 | 46.0% | 47.8% | 25,372 | 44.1% | 47.2% | +0.066 | +0.030 | none | – |
| Inside a rising channel | structure | 8,079 | 46.5% | 47.6% | 12,030 | 42.2% | 44.3% | +0.084 | +0.021 | rise | did not hold |
| Inside a falling channel | structure | 5,892 | 40.8% | 50.1% | 13,663 | 42.8% | 42.9% | -0.140 | +0.116 | fall | did not hold |
| At the top of a channel | structure | 1,808 | 40.7% | 42.1% | 4,975 | 42.1% | 35.9% | -0.135 | -0.180 | none | – |
| At the bottom of a channel | structure | 2,063 | 42.7% | 45.1% | 4,658 | 37.7% | 39.2% | -0.062 | -0.072 | none | – |
| Rising wedge forming | structure | 1,938 | 43.6% | 52.0% | 1,955 | 40.1% | 48.6% | -0.026 | +0.177 | fall | held |
| Falling wedge forming | structure | 1,262 | 42.1% | 52.1% | 2,843 | 46.2% | 46.1% | -0.081 | +0.175 | fall | did not hold |
| Symmetrical triangle forming | structure | 2,882 | 42.5% | 53.5% | 3,764 | 42.0% | 51.9% | -0.071 | +0.242 | fall | held |
| Ascending triangle forming | structure | 2,243 | 38.8% | 45.8% | 3,908 | 38.2% | 42.9% | -0.209 | -0.048 | none | – |
| Descending triangle forming | structure | 2,021 | 37.5% | 48.6% | 3,731 | 41.5% | 40.7% | -0.259 | +0.055 | none | – |
| Rising wedge broke down | structure | 5,059 | 47.0% | 49.0% | 5,488 | 40.8% | 47.9% | +0.101 | +0.075 | rise | did not hold |
| Falling wedge broke up | structure | 3,780 | 42.9% | 50.6% | 6,861 | 43.8% | 48.9% | -0.056 | +0.133 | fall | held |
| Symmetrical triangle broke up | structure | 6,118 | 44.1% | 51.0% | 9,192 | 43.0% | 49.8% | -0.010 | +0.153 | fall | held |
| Symmetrical triangle broke down | structure | 6,833 | 45.7% | 50.4% | 9,404 | 40.9% | 52.0% | +0.051 | +0.130 | fall | held |
| RSI oversold | indicator | 4,897 | 46.8% | 43.3% | 8,623 | 48.3% | 42.4% | +0.095 | -0.147 | rise | held |
| RSI overbought | indicator | 4,858 | 44.0% | 49.6% | 8,782 | 45.6% | 42.4% | -0.015 | +0.099 | fall | did not hold |
| MACD crossed up | indicator | 21,309 | 45.2% | 46.1% | 32,937 | 43.2% | 44.5% | +0.032 | -0.038 | none | – |
| MACD crossed down | indicator | 21,285 | 45.8% | 45.5% | 32,860 | 42.1% | 45.4% | +0.059 | -0.062 | none | – |
| MACD histogram rising | indicator | 55,237 | 43.5% | 47.8% | 88,640 | 43.1% | 44.9% | -0.037 | +0.027 | none | – |
| MACD histogram falling | indicator | 54,192 | 44.8% | 46.7% | 86,394 | 41.9% | 46.0% | +0.018 | -0.014 | none | – |
| Above the 50-bar average | indicator | 51,514 | 45.5% | 46.6% | 76,975 | 41.0% | 46.1% | +0.047 | -0.018 | none | – |
| Below the 50-bar average | indicator | 57,525 | 42.8% | 47.9% | 97,698 | 43.8% | 44.9% | -0.064 | +0.031 | none | – |
| Above the 200-bar average | indicator | 43,197 | 46.3% | 46.2% | 68,659 | 42.5% | 43.6% | +0.077 | -0.034 | none | – |
| Below the 200-bar average | indicator | 61,942 | 41.9% | 48.4% | 102,303 | 42.7% | 46.3% | -0.103 | +0.054 | none | – |
| 50 above 200 (golden) | indicator | 44,361 | 46.5% | 45.8% | 68,332 | 42.3% | 43.5% | +0.084 | -0.051 | rise | did not hold |
| 50 below 200 (death) | indicator | 60,778 | 41.6% | 48.8% | 102,630 | 42.8% | 46.3% | -0.112 | +0.069 | none | – |
| At the lower Bollinger Band | indicator | 6,677 | 45.6% | 46.0% | 10,796 | 42.9% | 45.6% | +0.050 | -0.044 | none | – |
| At the upper Bollinger Band | indicator | 6,864 | 44.3% | 48.5% | 11,324 | 44.1% | 45.0% | -0.003 | +0.056 | none | – |
| Volume surge | indicator | 17,365 | 44.9% | 46.7% | 31,564 | 44.3% | 44.5% | +0.019 | -0.014 | none | – |
| Volatility squeeze | indicator | 13,232 | 41.1% | 49.8% | 20,240 | 46.0% | 41.4% | -0.130 | +0.108 | fall | did not hold |
| Weekly Signal | indicator | 9,187 | 41.1% | 48.4% | 17,853 | 44.0% | 45.4% | -0.133 | +0.053 | none | – |
Calibration on 2021-2022 (138,400 bars)
Each side: the bin's cases, its own rate with its own 95% range, then the calibrated value (adjacent bins pooled to make the table monotone) with the 95% range of that value over the pooled cases. The number the page shows is the calibrated one, inside its own range.
| Raw model bin | Rise: cases | rose first (own range) | calibrated (its range) | usable | Fall: cases | fell first (own range) | calibrated (its range) | usable |
|---|---|---|---|---|---|---|---|---|
| 5% – 10% | 10 | 0.0% (-0.0% – 27.8%) | 0.0% (-0.0% – 27.8%) | no | 0 | – | – | no |
| 10% – 15% | 1,159 | 22.0% (19.7% – 24.5%) | 22.0% (19.7% – 24.5%) | yes | 0 | – | – | no |
| 15% – 20% | 6,362 | 25.0% (23.9% – 26.0%) | 25.0% (23.9% – 26.0%) | yes | 0 | – | – | no |
| 20% – 25% | 11,307 | 31.9% (31.1% – 32.8%) | 31.9% (31.1% – 32.8%) | yes | 12 | 16.7% (4.7% – 44.8%) | 13.8% (12.6% – 15.2%, 2,626 pooled) | no |
| 25% – 30% | 15,946 | 37.6% (36.8% – 38.3%) | 37.6% (36.8% – 38.3%) | yes | 2,614 | 13.8% (12.5% – 15.2%) | 13.8% (12.6% – 15.2%, 2,626 pooled) | yes |
| 30% – 35% | 19,301 | 42.8% (42.1% – 43.5%) | 42.8% (42.1% – 43.5%) | yes | 7,357 | 23.5% (22.5% – 24.4%) | 23.5% (22.5% – 24.4%) | yes |
| 35% – 40% | 24,552 | 45.3% (44.7% – 45.9%) | 45.3% (44.7% – 45.9%) | yes | 14,888 | 33.8% (33.1% – 34.6%) | 33.8% (33.1% – 34.6%) | yes |
| 40% – 45% | 19,195 | 45.7% (45.0% – 46.4%) | 45.7% (45.0% – 46.4%) | yes | 24,128 | 38.8% (38.1% – 39.4%) | 38.8% (38.1% – 39.4%) | yes |
| 45% – 50% | 20,644 | 46.6% (45.9% – 47.2%) | 46.6% (45.9% – 47.2%) | yes | 36,911 | 43.6% (43.0% – 44.1%) | 43.6% (43.0% – 44.1%) | yes |
| 50% – 55% | 17,468 | 47.5% (46.8% – 48.2%) | 47.5% (46.8% – 48.1%, 19,924 pooled) | yes | 34,957 | 44.6% (44.1% – 45.1%) | 44.6% (44.1% – 45.0%, 52,490 pooled) | yes |
| 55% – 60% | 2,406 | 47.3% (45.3% – 49.2%) | 47.5% (46.8% – 48.1%, 19,924 pooled) | yes | 14,844 | 44.9% (44.1% – 45.7%) | 44.6% (44.1% – 45.0%, 52,490 pooled) | yes |
| 60% – 65% | 50 | 42.0% (29.4% – 55.8%) | 47.5% (46.8% – 48.1%, 19,924 pooled) | no | 2,511 | 42.5% (40.6% – 44.4%) | 44.6% (44.1% – 45.0%, 52,490 pooled) | yes |
| 65% – 70% | 0 | – | – | no | 171 | 39.8% (32.7% – 47.2%) | 44.6% (44.1% – 45.0%, 52,490 pooled) | no |
| 70% – 75% | 0 | – | – | no | 7 | 28.6% (8.2% – 64.1%) | 44.6% (44.1% – 45.0%, 52,490 pooled) | no |
Reliability on 2023 onward (said vs happened)
| Bin | Rise: cases | said | happened | Fall: cases | said | happened |
|---|---|---|---|---|---|---|
| 5% – 10% | 8 | 42.4% | 62.5% | – | – | – |
| 10% – 15% | 829 | 22.0% | 32.9% | – | – | – |
| 15% – 20% | 5,605 | 25.0% | 30.7% | – | – | – |
| 20% – 25% | 12,819 | 31.9% | 36.6% | 5 | 40.4% | 0.0% |
| 25% – 30% | 20,930 | 37.6% | 40.0% | 2,247 | 13.8% | 13.4% |
| 30% – 35% | 29,164 | 42.8% | 43.0% | 6,501 | 23.5% | 22.9% |
| 35% – 40% | 37,209 | 45.3% | 45.5% | 13,467 | 33.8% | 36.1% |
| 40% – 45% | 26,597 | 45.7% | 44.2% | 26,271 | 38.8% | 43.0% |
| 45% – 50% | 22,845 | 46.6% | 43.8% | 43,453 | 43.6% | 47.1% |
| 50% – 55% | 17,263 | 47.5% | 43.0% | 52,721 | 44.6% | 49.0% |
| 55% – 60% | 2,534 | 47.5% | 41.6% | 25,991 | 44.6% | 51.0% |
| 60% – 65% | 47 | 42.4% | 55.3% | 4,852 | 44.6% | 48.6% |
NO EDGE bars on the held-out years: 156,053, of which 42.5% rose first and 44.9% fell first. Share of bars that got a label: 11.3%.
1d · 258 pairs · target +10.0% before −10.0% within 30 candles
Built on 25,141 bars (2017-08-17 → 2020-12-01; rose first 50.7%, fell first 45.1%, neither 4.2%). Calibrated on 66,453 bars (2021-01-01 → 2022-12-01; 45.4% / 51.5%). Tested on 240,801 bars (2023-01-01 → 2026-09-04; 43.8% / 50.3%).
Setups on 1d
| Setup | Group | Built on: cases | rose first | fell first | Tested on: cases | rose first | fell first | Weight rise | Weight fall | Measured side | Held out |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Break of structure up | pattern | 6,375 | 55.9% | 40.5% | 52,711 | 45.6% | 49.5% | +0.203 | -0.180 | rise | did not hold |
| Break of structure down | pattern | 6,227 | 48.1% | 47.4% | 74,928 | 44.8% | 49.6% | -0.102 | +0.090 | fall | did not hold |
| Double bottom | pattern | 1,254 | 57.3% | 38.4% | 14,495 | 43.1% | 51.3% | +0.231 | -0.239 | rise | did not hold |
| Double top | pattern | 923 | 49.6% | 44.9% | 12,893 | 44.1% | 49.4% | -0.035 | -0.007 | none | – |
| Inverse head and shoulders | pattern | 386 | 54.1% | 42.0% | 2,292 | 46.8% | 45.2% | +0.091 | -0.083 | rise | held |
| Head and shoulders | pattern | 330 | 57.6% | 40.6% | 3,303 | 44.2% | 49.3% | +0.173 | -0.114 | rise | did not hold |
| Higher highs and higher lows | pattern | 4,319 | 53.5% | 41.2% | 45,077 | 45.9% | 48.3% | +0.107 | -0.153 | rise | held |
| Lower highs and lower lows | pattern | 4,598 | 50.7% | 44.0% | 52,104 | 43.0% | 50.4% | -0.001 | -0.042 | none | – |
| 20-bar breakout on volume | pattern | 4,521 | 55.8% | 42.1% | 35,187 | 47.8% | 48.3% | +0.195 | -0.116 | rise | held |
| 20-bar breakdown on volume | pattern | 1,967 | 51.0% | 43.8% | 24,177 | 42.6% | 51.2% | +0.013 | -0.046 | none | – |
| Bullish engulfing after a drop | pattern | 8,932 | 54.7% | 41.3% | 103,001 | 43.7% | 50.2% | +0.157 | -0.149 | rise | did not hold |
| Bearish engulfing after a rise | pattern | 8,487 | 51.7% | 44.1% | 100,292 | 42.9% | 50.8% | +0.041 | -0.039 | none | – |
| Ascending triangle breakout | pattern | 357 | 54.9% | 38.7% | 1,762 | 40.7% | 50.4% | +0.108 | -0.169 | rise | did not hold |
| Descending triangle breakdown | pattern | 298 | 49.7% | 45.3% | 5,432 | 45.5% | 48.7% | -0.025 | +0.005 | none | – |
| Bull flag breakout | pattern | 1,255 | 55.9% | 42.1% | 5,943 | 45.3% | 52.3% | +0.179 | -0.103 | rise | did not hold |
| Bear flag breakdown | pattern | 1,936 | 49.5% | 47.1% | 20,201 | 42.0% | 54.6% | -0.044 | +0.074 | fall | held |
| At support | structure | 581 | 49.2% | 37.5% | 11,026 | 38.3% | 46.4% | -0.044 | -0.233 | none | – |
| At resistance | structure | 532 | 63.2% | 29.5% | 6,194 | 42.8% | 36.2% | +0.372 | -0.489 | rise | did not hold |
| Support broken | structure | 3,279 | 48.6% | 45.0% | 49,028 | 44.0% | 49.3% | -0.080 | -0.001 | none | – |
| Resistance broken | structure | 3,192 | 56.9% | 39.1% | 29,947 | 47.4% | 46.3% | +0.236 | -0.230 | rise | held |
| Above a rising trendline | structure | 6,499 | 52.9% | 42.4% | 65,404 | 43.6% | 50.3% | +0.086 | -0.107 | rise | did not hold |
| Below a falling trendline | structure | 6,668 | 49.5% | 44.8% | 70,182 | 42.8% | 51.4% | -0.048 | -0.012 | none | – |
| Rising trendline broken | structure | 4,393 | 52.9% | 40.9% | 47,104 | 43.0% | 51.2% | +0.085 | -0.165 | rise | did not hold |
| Falling trendline broken | structure | 4,087 | 55.2% | 39.9% | 33,830 | 44.5% | 49.3% | +0.175 | -0.202 | rise | did not hold |
| Inside a rising channel | structure | 509 | 61.1% | 31.6% | 6,649 | 43.2% | 47.3% | +0.304 | -0.412 | rise | did not hold |
| Inside a falling channel | structure | 561 | 54.4% | 44.6% | 5,579 | 49.3% | 43.0% | +0.109 | -0.015 | rise | held |
| At the top of a channel | structure | 51 | 90.2% | 9.8% | 562 | 46.6% | 32.6% | – | – | excluded: only 51 train cases (< 100) | – |
| At the bottom of a channel | structure | 52 | 42.3% | 34.6% | 857 | 37.9% | 46.3% | – | – | excluded: only 52 train cases (< 100) | – |
| Rising wedge forming | structure | 383 | 54.0% | 44.4% | 2,197 | 45.1% | 49.8% | +0.088 | -0.018 | rise | did not hold |
| Falling wedge forming | structure | 388 | 42.8% | 50.8% | 5,497 | 43.6% | 51.9% | -0.210 | +0.151 | fall | did not hold |
| Symmetrical triangle forming | structure | 675 | 53.0% | 39.9% | 7,049 | 40.2% | 52.8% | +0.072 | -0.165 | rise | did not hold |
| Ascending triangle forming | structure | 196 | 69.9% | 23.5% | 1,589 | 42.5% | 43.9% | +0.403 | -0.487 | rise | did not hold |
| Descending triangle forming | structure | 149 | 48.3% | 43.0% | 2,563 | 38.5% | 50.4% | -0.040 | -0.037 | none | – |
| Rising wedge broke down | structure | 935 | 54.2% | 43.0% | 6,608 | 43.7% | 51.1% | +0.117 | -0.070 | rise | did not hold |
| Falling wedge broke up | structure | 900 | 42.9% | 49.3% | 13,463 | 44.1% | 50.2% | -0.257 | +0.140 | fall | did not hold |
| Symmetrical triangle broke up | structure | 1,800 | 54.7% | 41.0% | 17,043 | 42.2% | 51.4% | +0.146 | -0.150 | rise | did not hold |
| Symmetrical triangle broke down | structure | 1,818 | 47.2% | 48.0% | 21,016 | 44.4% | 48.9% | -0.124 | +0.104 | fall | did not hold |
| RSI oversold | indicator | 1,381 | 52.4% | 43.8% | 13,045 | 49.6% | 45.1% | +0.061 | -0.045 | none | – |
| RSI overbought | indicator | 1,593 | 54.8% | 43.8% | 10,192 | 49.3% | 46.8% | +0.147 | -0.048 | rise | held |
| MACD crossed up | indicator | 3,786 | 55.0% | 40.5% | 43,034 | 42.1% | 51.6% | +0.165 | -0.178 | rise | did not hold |
| MACD crossed down | indicator | 3,783 | 51.8% | 42.4% | 42,936 | 44.2% | 49.9% | +0.044 | -0.102 | none | – |
| MACD histogram rising | indicator | 11,750 | 52.4% | 43.4% | 120,338 | 43.5% | 50.6% | +0.067 | -0.067 | none | – |
| MACD histogram falling | indicator | 11,335 | 51.1% | 44.4% | 115,553 | 44.3% | 49.7% | +0.017 | -0.026 | none | – |
| Above the 50-bar average | indicator | 10,509 | 54.9% | 41.8% | 85,760 | 44.9% | 50.0% | +0.165 | -0.131 | rise | did not hold |
| Below the 50-bar average | indicator | 11,709 | 49.4% | 45.3% | 147,956 | 43.3% | 50.1% | -0.051 | +0.010 | none | – |
| Above the 200-bar average | indicator | 7,602 | 50.5% | 45.2% | 61,389 | 43.5% | 50.4% | -0.008 | +0.007 | none | – |
| Below the 200-bar average | indicator | 8,338 | 57.2% | 36.8% | 150,839 | 44.2% | 49.3% | +0.258 | -0.335 | rise | did not hold |
| 50 above 200 (golden) | indicator | 7,640 | 49.2% | 46.0% | 64,280 | 41.3% | 52.2% | -0.058 | +0.037 | none | – |
| 50 below 200 (death) | indicator | 8,300 | 58.4% | 36.1% | 147,949 | 45.2% | 48.5% | +0.306 | -0.366 | rise | did not hold |
| At the lower Bollinger Band | indicator | 1,177 | 46.5% | 48.3% | 13,248 | 51.2% | 43.5% | -0.144 | +0.109 | fall | did not hold |
| At the upper Bollinger Band | indicator | 1,968 | 56.0% | 42.1% | 15,115 | 47.9% | 48.7% | +0.192 | -0.111 | rise | held |
| Volume surge | indicator | 4,217 | 56.0% | 41.0% | 37,471 | 46.5% | 48.8% | +0.205 | -0.160 | rise | held |
| Volatility squeeze | indicator | 3,410 | 57.7% | 35.1% | 32,983 | 42.8% | 50.3% | +0.268 | -0.394 | rise | did not hold |
| Weekly Signal | indicator | 1,225 | 65.5% | 29.4% | 39,373 | 49.6% | 43.9% | +0.526 | -0.584 | rise | held |
Calibration on 2021-2022 (66,453 bars)
Each side: the bin's cases, its own rate with its own 95% range, then the calibrated value (adjacent bins pooled to make the table monotone) with the 95% range of that value over the pooled cases. The number the page shows is the calibrated one, inside its own range.
| Raw model bin | Rise: cases | rose first (own range) | calibrated (its range) | usable | Fall: cases | fell first (own range) | calibrated (its range) | usable |
|---|---|---|---|---|---|---|---|---|
| 0% – 5% | 0 | – | – | no | 300 | 54.3% (48.7% – 59.9%) | 47.3% (45.7% – 48.8%, 4,114 pooled) | yes |
| 5% – 10% | 0 | – | – | no | 3,814 | 46.7% (45.1% – 48.3%) | 47.3% (45.7% – 48.8%, 4,114 pooled) | yes |
| 10% – 15% | 0 | – | – | no | 8,180 | 49.2% (48.1% – 50.2%) | 48.9% (48.2% – 49.7%, 18,224 pooled) | yes |
| 15% – 20% | 0 | – | – | no | 10,044 | 48.8% (47.8% – 49.8%) | 48.9% (48.2% – 49.7%, 18,224 pooled) | yes |
| 20% – 25% | 0 | – | – | no | 12,491 | 54.1% (53.3% – 55.0%) | 52.6% (52.1% – 53.1%, 37,929 pooled) | yes |
| 25% – 30% | 0 | – | – | no | 10,903 | 52.0% (51.1% – 53.0%) | 52.6% (52.1% – 53.1%, 37,929 pooled) | yes |
| 30% – 35% | 0 | – | – | no | 7,350 | 51.7% (50.6% – 52.9%) | 52.6% (52.1% – 53.1%, 37,929 pooled) | yes |
| 35% – 40% | 42 | 35.7% (23.0% – 50.8%) | 35.7% (23.0% – 50.8%) | no | 7,185 | 51.5% (50.4% – 52.7%) | 52.6% (52.1% – 53.1%, 37,929 pooled) | yes |
| 40% – 45% | 536 | 39.6% (35.5% – 43.8%) | 39.6% (35.5% – 43.8%) | yes | 4,396 | 53.4% (51.9% – 54.9%) | 53.4% (51.9% – 54.9%) | yes |
| 45% – 50% | 2,444 | 42.4% (40.4% – 44.3%) | 42.4% (40.4% – 44.3%) | yes | 1,728 | 59.0% (56.7% – 61.3%) | 58.8% (56.5% – 61.1%, 1,789 pooled) | yes |
| 50% – 55% | 6,327 | 44.0% (42.7% – 45.2%) | 44.0% (42.7% – 45.2%) | yes | 61 | 52.5% (40.2% – 64.5%) | 58.8% (56.5% – 61.1%, 1,789 pooled) | no |
| 55% – 60% | 7,767 | 46.4% (45.3% – 47.5%) | 44.3% (43.8% – 44.8%, 38,117 pooled) | yes | 1 | 100.0% (20.6% – 100.0%) | 100.0% (20.6% – 100.0%) | no |
| 60% – 65% | 10,262 | 44.8% (43.8% – 45.7%) | 44.3% (43.8% – 44.8%, 38,117 pooled) | yes | 0 | – | – | no |
| 65% – 70% | 10,860 | 43.2% (42.3% – 44.2%) | 44.3% (43.8% – 44.8%, 38,117 pooled) | yes | 0 | – | – | no |
| 70% – 75% | 9,228 | 43.3% (42.3% – 44.3%) | 44.3% (43.8% – 44.8%, 38,117 pooled) | yes | 0 | – | – | no |
| 75% – 80% | 8,247 | 49.0% (48.0% – 50.1%) | 48.5% (47.8% – 49.2%, 18,987 pooled) | yes | 0 | – | – | no |
| 80% – 85% | 5,958 | 49.3% (48.0% – 50.5%) | 48.5% (47.8% – 49.2%, 18,987 pooled) | yes | 0 | – | – | no |
| 85% – 90% | 3,554 | 48.6% (46.9% – 50.2%) | 48.5% (47.8% – 49.2%, 18,987 pooled) | yes | 0 | – | – | no |
| 90% – 95% | 1,170 | 41.8% (39.0% – 44.6%) | 48.5% (47.8% – 49.2%, 18,987 pooled) | yes | 0 | – | – | no |
| 95% – 100% | 58 | 27.6% (17.8% – 40.2%) | 48.5% (47.8% – 49.2%, 18,987 pooled) | no | 0 | – | – | no |
Reliability on 2023 onward (said vs happened)
| Bin | Rise: cases | said | happened | Fall: cases | said | happened |
|---|---|---|---|---|---|---|
| 30% – 35% | 6 | 45.4% | 50.0% | 23,512 | 52.6% | 54.6% |
| 35% – 40% | 206 | 45.4% | 49.0% | 20,561 | 52.6% | 54.5% |
| 40% – 45% | 2,082 | 39.6% | 44.0% | 13,845 | 53.4% | 54.2% |
| 45% – 50% | 8,371 | 42.4% | 43.2% | 5,272 | 58.8% | 54.9% |
| 50% – 55% | 20,457 | 44.0% | 41.5% | 239 | 51.5% | 46.9% |
| 55% – 60% | 24,939 | 44.3% | 41.3% | 2 | 51.5% | 50.0% |
| 60% – 65% | 34,537 | 44.3% | 40.9% | – | – | – |
| 65% – 70% | 38,187 | 44.3% | 41.7% | – | – | – |
| 70% – 75% | 34,701 | 44.3% | 43.6% | – | – | – |
| 75% – 80% | 31,338 | 48.5% | 47.6% | – | – | – |
| 80% – 85% | 25,237 | 48.5% | 48.0% | – | – | – |
| 85% – 90% | 14,778 | 48.5% | 47.0% | – | – | – |
| 90% – 95% | 5,569 | 48.5% | 46.6% | – | – | – |
| 95% – 100% | 393 | 45.4% | 47.8% | – | – | – |
NO EDGE bars on the held-out years: 235,529, of which 43.8% rose first and 50.2% fell first. Share of bars that got a label: 2.2%.
5d · 242 pairs · target +15.0% before −15.0% within 26 candles
Built on 3,953 bars (2017-08-17 → 2020-08-21; rose first 56.1%, fell first 43.9%, neither 0.0%). Calibrated on 11,085 bars (2021-01-03 → 2022-08-21; 44.5% / 54.4%). Tested on 42,953 bars (2023-01-03 → 2026-05-27; 41.9% / 57.0%).
Setups on 5d
| Setup | Group | Built on: cases | rose first | fell first | Tested on: cases | rose first | fell first | Weight rise | Weight fall | Measured side | Held out |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Break of structure up | pattern | 823 | 53.6% | 46.4% | 7,413 | 41.1% | 57.6% | -0.082 | +0.082 | fall | did not hold |
| Break of structure down | pattern | 935 | 57.5% | 42.5% | 12,908 | 40.1% | 58.8% | +0.048 | -0.048 | none | – |
| Double bottom | pattern | 52 | 32.7% | 67.3% | 1,167 | 51.8% | 45.0% | – | – | excluded: only 52 train cases (< 100) | – |
| Double top | pattern | 50 | 84.0% | 16.0% | 588 | 34.2% | 62.2% | – | – | excluded: only 50 train cases (< 100) | – |
| Inverse head and shoulders | pattern | 10 | 90.0% | 10.0% | 463 | 45.1% | 54.6% | – | – | excluded: only 10 train cases (< 100) | – |
| Head and shoulders | pattern | 20 | 40.0% | 60.0% | 206 | 31.6% | 67.0% | – | – | excluded: only 20 train cases (< 100) | – |
| Higher highs and higher lows | pattern | 520 | 64.8% | 35.2% | 6,665 | 35.4% | 63.6% | +0.264 | -0.264 | rise | did not hold |
| Lower highs and lower lows | pattern | 644 | 61.2% | 38.8% | 9,332 | 45.4% | 53.7% | +0.160 | -0.160 | rise | held |
| 20-bar breakout on volume | pattern | 492 | 49.8% | 50.2% | 5,489 | 39.8% | 59.3% | -0.180 | +0.180 | fall | held |
| 20-bar breakdown on volume | pattern | 385 | 73.0% | 27.0% | 2,573 | 30.6% | 69.1% | +0.492 | -0.492 | rise | did not hold |
| Bullish engulfing after a drop | pattern | 1,320 | 55.4% | 44.6% | 17,780 | 43.8% | 55.2% | -0.026 | +0.026 | none | – |
| Bearish engulfing after a rise | pattern | 1,142 | 59.8% | 40.2% | 15,996 | 44.5% | 54.4% | +0.129 | -0.129 | rise | held |
| Ascending triangle breakout | pattern | 7 | 100.0% | 0.0% | 100 | 52.0% | 48.0% | – | – | excluded: only 7 train cases (< 100) | – |
| Descending triangle breakdown | pattern | 10 | 100.0% | 0.0% | 237 | 32.1% | 66.7% | – | – | excluded: only 10 train cases (< 100) | – |
| Bull flag breakout | pattern | 156 | 73.1% | 26.9% | 550 | 52.2% | 47.3% | +0.330 | -0.330 | rise | held |
| Bear flag breakdown | pattern | 315 | 55.6% | 44.4% | 4,511 | 48.9% | 50.1% | -0.014 | +0.014 | none | – |
| At support | structure | 10 | 70.0% | 30.0% | 394 | 45.9% | 49.2% | – | – | excluded: only 10 train cases (< 100) | – |
| At resistance | structure | 10 | 70.0% | 30.0% | 139 | 47.5% | 33.8% | – | – | excluded: only 10 train cases (< 100) | – |
| Support broken | structure | 200 | 70.0% | 30.0% | 4,704 | 39.5% | 59.6% | +0.301 | -0.301 | rise | did not hold |
| Resistance broken | structure | 142 | 54.2% | 45.8% | 2,230 | 43.9% | 52.1% | -0.032 | +0.032 | none | – |
| Above a rising trendline | structure | 858 | 48.5% | 51.5% | 9,901 | 44.7% | 53.7% | -0.248 | +0.248 | fall | did not hold |
| Below a falling trendline | structure | 892 | 62.2% | 37.8% | 12,789 | 40.2% | 58.8% | +0.207 | -0.207 | rise | did not hold |
| Rising trendline broken | structure | 563 | 59.3% | 40.7% | 6,740 | 41.1% | 57.9% | +0.097 | -0.097 | rise | did not hold |
| Falling trendline broken | structure | 494 | 54.0% | 46.0% | 5,524 | 46.1% | 52.8% | -0.059 | +0.059 | fall | did not hold |
| Inside a rising channel | structure | 16 | 25.0% | 75.0% | 280 | 37.5% | 52.5% | – | – | excluded: only 16 train cases (< 100) | – |
| Inside a falling channel | structure | 31 | 54.8% | 45.2% | 744 | 45.3% | 53.2% | – | – | excluded: only 31 train cases (< 100) | – |
| At the top of a channel | structure | 0 | – | – | 16 | 75.0% | 18.8% | – | – | excluded: only 0 train cases (< 100) | – |
| At the bottom of a channel | structure | 0 | – | – | 11 | 36.4% | 18.2% | – | – | excluded: only 0 train cases (< 100) | – |
| Rising wedge forming | structure | 65 | 56.9% | 43.1% | 276 | 45.6% | 53.3% | – | – | excluded: only 65 train cases (< 100) | – |
| Falling wedge forming | structure | 42 | 23.8% | 76.2% | 1,286 | 54.1% | 44.7% | – | – | excluded: only 42 train cases (< 100) | – |
| Symmetrical triangle forming | structure | 67 | 32.8% | 67.2% | 1,289 | 45.3% | 53.8% | – | – | excluded: only 67 train cases (< 100) | – |
| Ascending triangle forming | structure | 2 | 50.0% | 50.0% | 92 | 50.0% | 50.0% | – | – | excluded: only 2 train cases (< 100) | – |
| Descending triangle forming | structure | 12 | 100.0% | 0.0% | 156 | 46.8% | 52.6% | – | – | excluded: only 12 train cases (< 100) | – |
| Rising wedge broke down | structure | 106 | 42.4% | 57.6% | 961 | 33.1% | 66.5% | -0.191 | +0.191 | fall | held |
| Falling wedge broke up | structure | 97 | 37.1% | 62.9% | 2,571 | 53.9% | 44.9% | – | – | excluded: only 97 train cases (< 100) | – |
| Symmetrical triangle broke up | structure | 142 | 67.6% | 32.4% | 2,454 | 45.0% | 54.7% | +0.203 | -0.203 | rise | held |
| Symmetrical triangle broke down | structure | 205 | 48.8% | 51.2% | 3,864 | 39.8% | 59.5% | -0.149 | +0.149 | fall | held |
| RSI oversold | indicator | 235 | 52.3% | 47.7% | 3,147 | 49.1% | 50.7% | -0.082 | +0.082 | fall | did not hold |
| RSI overbought | indicator | 269 | 50.6% | 49.4% | 1,703 | 40.8% | 56.3% | -0.128 | +0.128 | fall | did not hold |
| MACD crossed up | indicator | 427 | 66.5% | 33.5% | 5,517 | 44.6% | 54.3% | +0.300 | -0.300 | rise | held |
| MACD crossed down | indicator | 370 | 66.0% | 34.1% | 5,208 | 37.7% | 61.2% | +0.270 | -0.270 | rise | did not hold |
| MACD histogram rising | indicator | 1,530 | 62.9% | 37.1% | 20,048 | 44.5% | 54.4% | +0.249 | -0.249 | rise | held |
| MACD histogram falling | indicator | 1,215 | 57.7% | 42.3% | 18,496 | 40.2% | 58.6% | +0.056 | -0.056 | none | – |
| Above the 50-bar average | indicator | 994 | 56.3% | 43.7% | 10,468 | 40.0% | 57.7% | +0.008 | -0.008 | none | – |
| Below the 50-bar average | indicator | 1,284 | 66.2% | 33.8% | 26,164 | 43.5% | 55.8% | +0.369 | -0.369 | rise | did not hold |
| Above the 200-bar average | indicator | 34 | 94.1% | 5.9% | 5,410 | 40.0% | 55.9% | – | – | excluded: only 34 train cases (< 100) | – |
| Below the 200-bar average | indicator | 19 | 100.0% | 0.0% | 17,053 | 44.8% | 54.6% | – | – | excluded: only 19 train cases (< 100) | – |
| 50 above 200 (golden) | indicator | 28 | 100.0% | 0.0% | 6,455 | 44.3% | 52.3% | – | – | excluded: only 28 train cases (< 100) | – |
| 50 below 200 (death) | indicator | 25 | 92.0% | 8.0% | 16,008 | 43.4% | 56.0% | – | – | excluded: only 25 train cases (< 100) | – |
| At the lower Bollinger Band | indicator | 104 | 48.1% | 51.9% | 1,236 | 38.4% | 60.4% | -0.110 | +0.110 | fall | held |
| At the upper Bollinger Band | indicator | 334 | 54.5% | 45.5% | 2,728 | 48.2% | 50.5% | -0.041 | +0.041 | none | – |
| Volume surge | indicator | 769 | 50.7% | 49.3% | 6,600 | 45.0% | 54.3% | -0.172 | +0.172 | fall | did not hold |
| Volatility squeeze | indicator | 201 | 63.7% | 36.3% | 6,229 | 44.9% | 54.3% | +0.158 | -0.158 | rise | held |
| Weekly Signal | indicator | 263 | 73.0% | 27.0% | 7,619 | 49.3% | 50.4% | +0.426 | -0.426 | rise | held |
Calibration on 2021-2022 (11,085 bars)
Each side: the bin's cases, its own rate with its own 95% range, then the calibrated value (adjacent bins pooled to make the table monotone) with the 95% range of that value over the pooled cases. The number the page shows is the calibrated one, inside its own range.
| Raw model bin | Rise: cases | rose first (own range) | calibrated (its range) | usable | Fall: cases | fell first (own range) | calibrated (its range) | usable |
|---|---|---|---|---|---|---|---|---|
| 5% – 10% | 0 | – | – | no | 116 | 50.9% (41.9% – 59.8%) | 45.2% (41.8% – 48.5%, 846 pooled) | no |
| 10% – 15% | 0 | – | – | no | 730 | 44.2% (40.7% – 47.9%) | 45.2% (41.8% – 48.5%, 846 pooled) | yes |
| 15% – 20% | 0 | – | – | no | 1,143 | 50.6% (47.7% – 53.5%) | 50.6% (47.7% – 53.5%) | yes |
| 20% – 25% | 0 | – | – | no | 1,477 | 58.9% (56.4% – 61.4%) | 55.8% (54.7% – 56.8%, 9,096 pooled) | yes |
| 25% – 30% | 0 | – | – | no | 1,546 | 60.0% (57.6% – 62.4%) | 55.8% (54.7% – 56.8%, 9,096 pooled) | yes |
| 30% – 35% | 0 | – | – | no | 1,379 | 56.1% (53.4% – 58.7%) | 55.8% (54.7% – 56.8%, 9,096 pooled) | yes |
| 35% – 40% | 22 | 54.5% (34.7% – 73.1%) | 43.1% (42.1% – 44.1%, 9,096 pooled) | no | 1,166 | 58.8% (56.0% – 61.6%) | 55.8% (54.7% – 56.8%, 9,096 pooled) | yes |
| 40% – 45% | 233 | 57.5% (51.1% – 63.7%) | 43.1% (42.1% – 44.1%, 9,096 pooled) | no | 1,941 | 58.5% (56.3% – 60.7%) | 55.8% (54.7% – 56.8%, 9,096 pooled) | yes |
| 45% – 50% | 477 | 63.9% (59.5% – 68.1%) | 43.1% (42.1% – 44.1%, 9,096 pooled) | yes | 855 | 46.4% (43.1% – 49.8%) | 55.8% (54.7% – 56.8%, 9,096 pooled) | yes |
| 50% – 55% | 855 | 52.6% (49.3% – 56.0%) | 43.1% (42.1% – 44.1%, 9,096 pooled) | yes | 477 | 36.1% (31.9% – 40.5%) | 55.8% (54.7% – 56.8%, 9,096 pooled) | yes |
| 55% – 60% | 1,941 | 41.2% (39.0% – 43.4%) | 43.1% (42.1% – 44.1%, 9,096 pooled) | yes | 233 | 42.5% (36.3% – 48.9%) | 55.8% (54.7% – 56.8%, 9,096 pooled) | no |
| 60% – 65% | 1,166 | 39.9% (37.1% – 42.7%) | 43.1% (42.1% – 44.1%, 9,096 pooled) | yes | 22 | 45.5% (26.9% – 65.3%) | 55.8% (54.7% – 56.8%, 9,096 pooled) | no |
| 65% – 70% | 1,379 | 42.3% (39.7% – 44.9%) | 43.1% (42.1% – 44.1%, 9,096 pooled) | yes | 0 | – | – | no |
| 70% – 75% | 1,546 | 38.4% (36.0% – 40.8%) | 43.1% (42.1% – 44.1%, 9,096 pooled) | yes | 0 | – | – | no |
| 75% – 80% | 1,477 | 39.1% (36.6% – 41.6%) | 43.1% (42.1% – 44.1%, 9,096 pooled) | yes | 0 | – | – | no |
| 80% – 85% | 1,143 | 48.3% (45.4% – 51.2%) | 48.3% (45.4% – 51.2%) | yes | 0 | – | – | no |
| 85% – 90% | 730 | 55.2% (51.6% – 58.8%) | 54.4% (51.0% – 57.7%, 846 pooled) | yes | 0 | – | – | no |
| 90% – 95% | 116 | 49.1% (40.2% – 58.1%) | 54.4% (51.0% – 57.7%, 846 pooled) | no | 0 | – | – | no |
Reliability on 2023 onward (said vs happened)
| Bin | Rise: cases | said | happened | Fall: cases | said | happened |
|---|---|---|---|---|---|---|
| 30% – 35% | 1 | 44.5% | 0.0% | 5,966 | 55.8% | 55.3% |
| 35% – 40% | 55 | 44.5% | 40.0% | 4,014 | 55.8% | 54.8% |
| 40% – 45% | 428 | 44.5% | 38.3% | 5,808 | 55.8% | 59.2% |
| 45% – 50% | 1,093 | 43.1% | 40.2% | 2,478 | 55.8% | 60.1% |
| 50% – 55% | 2,478 | 43.1% | 37.9% | 1,093 | 55.8% | 57.8% |
| 55% – 60% | 5,808 | 43.1% | 39.7% | 428 | 54.4% | 60.8% |
| 60% – 65% | 4,014 | 43.1% | 43.3% | 55 | 54.4% | 60.0% |
| 65% – 70% | 5,966 | 43.1% | 43.6% | 1 | 54.4% | 100.0% |
| 70% – 75% | 7,114 | 43.1% | 42.7% | – | – | – |
| 75% – 80% | 7,365 | 43.1% | 42.2% | – | – | – |
| 80% – 85% | 5,882 | 48.3% | 43.2% | – | – | – |
| 85% – 90% | 2,425 | 54.4% | 39.8% | – | – | – |
| 90% – 95% | 322 | 44.5% | 47.2% | – | – | – |
| 95% – 100% | 2 | 44.5% | 50.0% | – | – | – |
NO EDGE bars on the held-out years: 40,528, of which 42.1% rose first and 56.8% fell first. Share of bars that got a label: 5.7%.
1w · 212 pairs · target +20.0% before −20.0% within 26 candles
Built on 2,535 bars (2017-08-14 → 2020-06-29; rose first 56.2%, fell first 43.7%, neither 0.1%). Calibrated on 7,066 bars (2021-01-04 → 2022-06-27; 43.8% / 55.0%). Tested on 27,953 bars (2023-01-02 → 2026-03-30; 42.3% / 56.4%).
Setups on 1w
| Setup | Group | Built on: cases | rose first | fell first | Tested on: cases | rose first | fell first | Weight rise | Weight fall | Measured side | Held out |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Break of structure up | pattern | 385 | 54.5% | 45.5% | 5,056 | 36.4% | 61.4% | -0.043 | +0.046 | none | – |
| Break of structure down | pattern | 631 | 62.4% | 37.6% | 8,446 | 45.0% | 53.9% | +0.198 | -0.194 | rise | held |
| Double bottom | pattern | 10 | 50.0% | 50.0% | 382 | 46.6% | 51.8% | – | – | excluded: only 10 train cases (< 100) | – |
| Double top | pattern | 40 | 90.0% | 10.0% | 394 | 40.9% | 56.6% | – | – | excluded: only 40 train cases (< 100) | – |
| Inverse head and shoulders | pattern | 0 | – | – | 191 | 38.2% | 54.4% | – | – | excluded: only 0 train cases (< 100) | – |
| Head and shoulders | pattern | 10 | 60.0% | 40.0% | 89 | 50.6% | 49.4% | – | – | excluded: only 10 train cases (< 100) | – |
| Higher highs and higher lows | pattern | 285 | 58.2% | 41.8% | 4,759 | 28.6% | 69.6% | +0.050 | -0.047 | rise | did not hold |
| Lower highs and lower lows | pattern | 330 | 66.4% | 33.3% | 5,844 | 53.0% | 46.2% | +0.269 | -0.274 | rise | held |
| 20-bar breakout on volume | pattern | 219 | 41.5% | 58.5% | 4,179 | 36.4% | 61.6% | -0.308 | +0.310 | fall | held |
| 20-bar breakdown on volume | pattern | 304 | 79.0% | 21.1% | 1,247 | 43.9% | 55.9% | +0.648 | -0.645 | rise | did not hold |
| Bullish engulfing after a drop | pattern | 933 | 60.6% | 39.4% | 11,843 | 42.5% | 56.5% | +0.149 | -0.145 | rise | did not hold |
| Bearish engulfing after a rise | pattern | 796 | 60.7% | 38.9% | 9,395 | 42.9% | 55.8% | +0.148 | -0.157 | rise | did not hold |
| Ascending triangle breakout | pattern | 0 | – | – | 80 | 51.2% | 45.0% | – | – | excluded: only 0 train cases (< 100) | – |
| Descending triangle breakdown | pattern | 0 | – | – | 137 | 40.2% | 59.1% | – | – | excluded: only 0 train cases (< 100) | – |
| Bull flag breakout | pattern | 26 | 38.5% | 61.5% | 200 | 33.5% | 60.0% | – | – | excluded: only 26 train cases (< 100) | – |
| Bear flag breakdown | pattern | 158 | 72.8% | 27.2% | 3,737 | 55.4% | 43.4% | +0.325 | -0.323 | rise | held |
| At support | structure | 3 | 0.0% | 100.0% | 156 | 37.2% | 55.8% | – | – | excluded: only 3 train cases (< 100) | – |
| At resistance | structure | 1 | 100.0% | 0.0% | 53 | 50.9% | 30.2% | – | – | excluded: only 1 train cases (< 100) | – |
| Support broken | structure | 85 | 74.1% | 25.9% | 2,411 | 42.9% | 55.6% | – | – | excluded: only 85 train cases (< 100) | – |
| Resistance broken | structure | 10 | 70.0% | 30.0% | 1,288 | 32.5% | 62.0% | – | – | excluded: only 10 train cases (< 100) | – |
| Above a rising trendline | structure | 381 | 50.1% | 49.9% | 6,159 | 45.6% | 52.6% | -0.159 | +0.162 | fall | did not hold |
| Below a falling trendline | structure | 663 | 59.7% | 40.0% | 8,730 | 40.7% | 58.4% | +0.112 | -0.118 | rise | did not hold |
| Rising trendline broken | structure | 301 | 50.5% | 49.5% | 3,849 | 40.3% | 58.1% | -0.137 | +0.140 | fall | did not hold |
| Falling trendline broken | structure | 305 | 51.1% | 48.9% | 4,076 | 42.1% | 57.0% | -0.122 | +0.125 | fall | did not hold |
| Inside a rising channel | structure | 4 | 50.0% | 50.0% | 199 | 44.2% | 54.3% | – | – | excluded: only 4 train cases (< 100) | – |
| Inside a falling channel | structure | 35 | 60.0% | 40.0% | 399 | 45.1% | 53.4% | – | – | excluded: only 35 train cases (< 100) | – |
| At the top of a channel | structure | 1 | 100.0% | 0.0% | 2 | 50.0% | 50.0% | – | – | excluded: only 1 train cases (< 100) | – |
| At the bottom of a channel | structure | 1 | 0.0% | 100.0% | 4 | 25.0% | 75.0% | – | – | excluded: only 1 train cases (< 100) | – |
| Rising wedge forming | structure | 16 | 50.0% | 50.0% | 237 | 29.1% | 70.9% | – | – | excluded: only 16 train cases (< 100) | – |
| Falling wedge forming | structure | 13 | 92.3% | 7.7% | 771 | 67.4% | 32.3% | – | – | excluded: only 13 train cases (< 100) | – |
| Symmetrical triangle forming | structure | 41 | 63.4% | 36.6% | 696 | 38.4% | 60.6% | – | – | excluded: only 41 train cases (< 100) | – |
| Ascending triangle forming | structure | 0 | – | – | 66 | 51.5% | 48.5% | – | – | excluded: only 0 train cases (< 100) | – |
| Descending triangle forming | structure | 2 | 100.0% | 0.0% | 78 | 25.6% | 74.4% | – | – | excluded: only 2 train cases (< 100) | – |
| Rising wedge broke down | structure | 50 | 24.0% | 76.0% | 866 | 31.4% | 67.5% | – | – | excluded: only 50 train cases (< 100) | – |
| Falling wedge broke up | structure | 82 | 56.1% | 42.7% | 1,835 | 53.6% | 45.4% | – | – | excluded: only 82 train cases (< 100) | – |
| Symmetrical triangle broke up | structure | 109 | 44.0% | 56.0% | 1,440 | 39.4% | 59.7% | -0.172 | +0.174 | fall | held |
| Symmetrical triangle broke down | structure | 70 | 42.9% | 57.1% | 2,042 | 35.6% | 63.6% | – | – | excluded: only 70 train cases (< 100) | – |
| RSI oversold | indicator | 183 | 65.0% | 35.0% | 1,693 | 45.2% | 54.3% | +0.178 | -0.175 | rise | held |
| RSI overbought | indicator | 74 | 62.2% | 37.8% | 1,024 | 40.0% | 55.3% | – | – | excluded: only 74 train cases (< 100) | – |
| MACD crossed up | indicator | 242 | 73.6% | 26.0% | 3,754 | 49.4% | 49.4% | +0.424 | -0.433 | rise | held |
| MACD crossed down | indicator | 196 | 69.9% | 29.6% | 3,779 | 34.9% | 63.6% | +0.294 | -0.304 | rise | did not hold |
| MACD histogram rising | indicator | 819 | 65.9% | 33.8% | 12,405 | 48.7% | 50.1% | +0.331 | -0.336 | rise | held |
| MACD histogram falling | indicator | 624 | 59.6% | 40.2% | 12,142 | 36.7% | 61.6% | +0.107 | -0.108 | rise | did not hold |
| Above the 50-bar average | indicator | 324 | 48.8% | 50.9% | 6,572 | 41.1% | 55.7% | -0.184 | +0.179 | fall | did not hold |
| Below the 50-bar average | indicator | 737 | 69.2% | 30.5% | 16,460 | 44.0% | 55.2% | +0.442 | -0.448 | rise | did not hold |
| Above the 200-bar average | indicator | 0 | – | – | 2,129 | 42.7% | 50.7% | – | – | excluded: only 0 train cases (< 100) | – |
| Below the 200-bar average | indicator | 0 | – | – | 7,862 | 42.2% | 56.7% | – | – | excluded: only 0 train cases (< 100) | – |
| 50 above 200 (golden) | indicator | 0 | – | – | 2,328 | 43.6% | 50.6% | – | – | excluded: only 0 train cases (< 100) | – |
| 50 below 200 (death) | indicator | 0 | – | – | 7,663 | 41.9% | 56.9% | – | – | excluded: only 0 train cases (< 100) | – |
| At the lower Bollinger Band | indicator | 56 | 82.1% | 17.9% | 670 | 34.5% | 63.9% | – | – | excluded: only 56 train cases (< 100) | – |
| At the upper Bollinger Band | indicator | 123 | 41.5% | 58.5% | 1,721 | 44.9% | 52.8% | -0.226 | +0.228 | fall | did not hold |
| Volume surge | indicator | 480 | 53.3% | 46.7% | 4,327 | 44.1% | 54.9% | -0.081 | +0.084 | fall | did not hold |
| Volatility squeeze | indicator | 37 | 73.0% | 27.0% | 4,130 | 51.7% | 46.9% | – | – | excluded: only 37 train cases (< 100) | – |
| Weekly Signal | indicator | 171 | 80.1% | 19.9% | 4,398 | 50.9% | 48.6% | +0.528 | -0.526 | rise | held |
Calibration on 2021-2022 (7,066 bars)
Each side: the bin's cases, its own rate with its own 95% range, then the calibrated value (adjacent bins pooled to make the table monotone) with the 95% range of that value over the pooled cases. The number the page shows is the calibrated one, inside its own range.
| Raw model bin | Rise: cases | rose first (own range) | calibrated (its range) | usable | Fall: cases | fell first (own range) | calibrated (its range) | usable |
|---|---|---|---|---|---|---|---|---|
| 0% – 5% | 0 | – | – | no | 73 | 37.0% (26.8% – 48.4%) | 37.0% (26.8% – 48.4%) | no |
| 5% – 10% | 0 | – | – | no | 345 | 43.2% (38.1% – 48.5%) | 43.2% (38.1% – 48.5%) | yes |
| 10% – 15% | 0 | – | – | no | 539 | 54.9% (50.7% – 59.1%) | 54.9% (50.7% – 59.1%) | yes |
| 15% – 20% | 0 | – | – | no | 610 | 65.6% (61.7% – 69.2%) | 55.9% (54.7% – 57.2%, 6,109 pooled) | yes |
| 20% – 25% | 0 | – | – | no | 619 | 65.3% (61.4% – 68.9%) | 55.9% (54.7% – 57.2%, 6,109 pooled) | yes |
| 25% – 30% | 0 | – | – | no | 609 | 57.8% (53.8% – 61.7%) | 55.9% (54.7% – 57.2%, 6,109 pooled) | yes |
| 30% – 35% | 10 | 90.0% (59.6% – 98.2%) | 43.0% (41.8% – 44.1%, 6,669 pooled) | no | 681 | 58.1% (54.4% – 61.8%) | 55.9% (54.7% – 57.2%, 6,109 pooled) | yes |
| 35% – 40% | 139 | 46.8% (38.7% – 55.0%) | 43.0% (41.8% – 44.1%, 6,669 pooled) | no | 942 | 53.6% (50.4% – 56.8%) | 55.9% (54.7% – 57.2%, 6,109 pooled) | yes |
| 40% – 45% | 269 | 58.4% (52.4% – 64.1%) | 43.0% (41.8% – 44.1%, 6,669 pooled) | no | 1,459 | 54.8% (52.2% – 57.3%) | 55.9% (54.7% – 57.2%, 6,109 pooled) | yes |
| 45% – 50% | 363 | 53.7% (48.6% – 58.8%) | 43.0% (41.8% – 44.1%, 6,669 pooled) | yes | 428 | 52.6% (47.8% – 57.3%) | 55.9% (54.7% – 57.2%, 6,109 pooled) | yes |
| 50% – 55% | 418 | 46.7% (41.9% – 51.4%) | 43.0% (41.8% – 44.1%, 6,669 pooled) | yes | 344 | 46.5% (41.3% – 51.8%) | 55.9% (54.7% – 57.2%, 6,109 pooled) | yes |
| 55% – 60% | 1,628 | 45.6% (43.2% – 48.0%) | 43.0% (41.8% – 44.1%, 6,669 pooled) | yes | 271 | 41.3% (35.6% – 47.3%) | 55.9% (54.7% – 57.2%, 6,109 pooled) | no |
| 60% – 65% | 813 | 41.8% (38.5% – 45.2%) | 43.0% (41.8% – 44.1%, 6,669 pooled) | yes | 138 | 46.4% (38.3% – 54.7%) | 55.9% (54.7% – 57.2%, 6,109 pooled) | no |
| 65% – 70% | 665 | 42.3% (38.6% – 46.0%) | 43.0% (41.8% – 44.1%, 6,669 pooled) | yes | 8 | 0.0% (0.0% – 32.4%) | 55.9% (54.7% – 57.2%, 6,109 pooled) | no |
| 70% – 75% | 614 | 37.8% (34.0% – 41.7%) | 43.0% (41.8% – 44.1%, 6,669 pooled) | yes | 0 | – | – | no |
| 75% – 80% | 602 | 33.9% (30.2% – 37.8%) | 43.0% (41.8% – 44.1%, 6,669 pooled) | yes | 0 | – | – | no |
| 80% – 85% | 618 | 35.4% (31.8% – 39.3%) | 43.0% (41.8% – 44.1%, 6,669 pooled) | yes | 0 | – | – | no |
| 85% – 90% | 530 | 42.6% (38.5% – 46.9%) | 43.0% (41.8% – 44.1%, 6,669 pooled) | yes | 0 | – | – | no |
| 90% – 95% | 324 | 57.1% (51.7% – 62.4%) | 57.1% (51.7% – 62.4%) | yes | 0 | – | – | no |
| 95% – 100% | 73 | 63.0% (51.5% – 73.2%) | 63.0% (51.5% – 73.2%) | no | 0 | – | – | no |
Reliability on 2023 onward (said vs happened)
| Bin | Rise: cases | said | happened | Fall: cases | said | happened |
|---|---|---|---|---|---|---|
| 30% – 35% | 20 | 43.8% | 60.0% | 2,872 | 55.9% | 62.2% |
| 35% – 40% | 165 | 43.8% | 48.5% | 2,541 | 55.9% | 61.6% |
| 40% – 45% | 652 | 43.8% | 43.2% | 3,079 | 55.9% | 60.9% |
| 45% – 50% | 1,224 | 43.0% | 38.8% | 1,325 | 55.9% | 57.7% |
| 50% – 55% | 1,335 | 43.0% | 39.5% | 1,199 | 55.9% | 57.7% |
| 55% – 60% | 3,309 | 43.0% | 37.8% | 641 | 55.0% | 53.7% |
| 60% – 65% | 2,423 | 43.0% | 37.8% | 165 | 55.0% | 50.9% |
| 65% – 70% | 2,852 | 43.0% | 35.7% | 20 | 55.0% | 40.0% |
| 70% – 75% | 3,494 | 43.0% | 39.1% | – | – | – |
| 75% – 80% | 3,667 | 43.0% | 43.6% | – | – | – |
| 80% – 85% | 3,676 | 43.0% | 45.5% | – | – | – |
| 85% – 90% | 3,253 | 43.0% | 48.6% | – | – | – |
| 90% – 95% | 1,686 | 57.1% | 54.6% | – | – | – |
| 95% – 100% | 197 | 43.8% | 67.5% | – | – | – |
NO EDGE bars on the held-out years: 26,267, of which 41.6% rose first and 57.2% fell first. Share of bars that got a label: 6.0%.
2w · 157 pairs · target +25.0% before −25.0% within 26 candles
Built on 4,176 bars (2017-08-14 → 2021-12-27; rose first 52.1%, fell first 47.0%, neither 0.9%). Calibrated on 3,189 bars (2023-01-09 → 2023-12-25; 59.3% / 40.1%). Tested on 3,140 bars (2025-01-06 → 2025-09-29; 31.9% / 67.7%).
Setups on 2w
| Setup | Group | Built on: cases | rose first | fell first | Tested on: cases | rose first | fell first | Weight rise | Weight fall | Measured side | Held out |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Break of structure up | pattern | 821 | 56.8% | 43.2% | 414 | 38.2% | 60.9% | +0.152 | -0.123 | rise | held |
| Break of structure down | pattern | 405 | 70.6% | 26.9% | 1,237 | 36.1% | 63.9% | +0.531 | -0.589 | rise | held |
| Double bottom | pattern | 20 | 50.0% | 50.0% | 54 | 25.9% | 74.1% | – | – | excluded: only 20 train cases (< 100) | – |
| Double top | pattern | 2 | 0.0% | 100.0% | 30 | 30.0% | 70.0% | – | – | excluded: only 2 train cases (< 100) | – |
| Inverse head and shoulders | pattern | 10 | 40.0% | 60.0% | 0 | – | – | – | – | excluded: only 10 train cases (< 100) | – |
| Head and shoulders | pattern | 0 | – | – | 20 | 50.0% | 50.0% | – | – | excluded: only 0 train cases (< 100) | – |
| Higher highs and higher lows | pattern | 464 | 53.7% | 46.3% | 476 | 38.0% | 62.0% | +0.044 | -0.019 | none | – |
| Lower highs and lower lows | pattern | 232 | 73.3% | 22.4% | 976 | 25.8% | 74.0% | +0.497 | -0.603 | rise | did not hold |
| 20-bar breakout on volume | pattern | 682 | 56.9% | 43.1% | 240 | 44.6% | 55.4% | +0.150 | -0.122 | rise | held |
| 20-bar breakdown on volume | pattern | 130 | 88.5% | 11.5% | 239 | 43.1% | 56.9% | +0.770 | -0.756 | rise | held |
| Bullish engulfing after a drop | pattern | 1,039 | 51.7% | 47.2% | 868 | 29.3% | 70.6% | -0.013 | +0.004 | none | – |
| Bearish engulfing after a rise | pattern | 1,101 | 51.5% | 47.7% | 1,716 | 29.2% | 70.1% | -0.020 | +0.022 | none | – |
| Ascending triangle breakout | pattern | 0 | – | – | 0 | – | – | – | – | excluded: only 0 train cases (< 100) | – |
| Descending triangle breakdown | pattern | 10 | 30.0% | 70.0% | 15 | 40.0% | 60.0% | – | – | excluded: only 10 train cases (< 100) | – |
| Bull flag breakout | pattern | 30 | 63.3% | 36.7% | 20 | 65.0% | 35.0% | – | – | excluded: only 30 train cases (< 100) | – |
| Bear flag breakdown | pattern | 104 | 74.0% | 26.0% | 442 | 27.8% | 72.2% | +0.330 | -0.318 | rise | did not hold |
| At support | structure | 0 | – | – | 8 | 37.5% | 62.5% | – | – | excluded: only 0 train cases (< 100) | – |
| At resistance | structure | 0 | – | – | 0 | – | – | – | – | excluded: only 0 train cases (< 100) | – |
| Support broken | structure | 30 | 73.3% | 26.7% | 250 | 40.8% | 59.2% | – | – | excluded: only 30 train cases (< 100) | – |
| Resistance broken | structure | 10 | 60.0% | 40.0% | 44 | 29.5% | 70.5% | – | – | excluded: only 10 train cases (< 100) | – |
| Above a rising trendline | structure | 792 | 52.6% | 47.3% | 593 | 27.3% | 72.7% | +0.018 | +0.010 | none | – |
| Below a falling trendline | structure | 461 | 53.6% | 43.2% | 1,358 | 37.2% | 62.7% | +0.042 | -0.109 | none | – |
| Rising trendline broken | structure | 275 | 53.8% | 45.8% | 459 | 40.7% | 58.8% | +0.040 | -0.028 | none | – |
| Falling trendline broken | structure | 350 | 66.6% | 33.4% | 372 | 28.2% | 71.8% | +0.385 | -0.363 | rise | did not hold |
| Inside a rising channel | structure | 0 | – | – | 19 | 42.1% | 57.9% | – | – | excluded: only 0 train cases (< 100) | – |
| Inside a falling channel | structure | 0 | – | – | 86 | 54.6% | 45.4% | – | – | excluded: only 0 train cases (< 100) | – |
| At the top of a channel | structure | 0 | – | – | 0 | – | – | – | – | excluded: only 0 train cases (< 100) | – |
| At the bottom of a channel | structure | 0 | – | – | 1 | 100.0% | 0.0% | – | – | excluded: only 0 train cases (< 100) | – |
| Rising wedge forming | structure | 43 | 53.5% | 46.5% | 29 | 31.0% | 69.0% | – | – | excluded: only 43 train cases (< 100) | – |
| Falling wedge forming | structure | 18 | 77.8% | 22.2% | 62 | 8.1% | 91.9% | – | – | excluded: only 18 train cases (< 100) | – |
| Symmetrical triangle forming | structure | 50 | 26.0% | 74.0% | 108 | 13.0% | 87.0% | – | – | excluded: only 50 train cases (< 100) | – |
| Ascending triangle forming | structure | 0 | – | – | 2 | 0.0% | 100.0% | – | – | excluded: only 0 train cases (< 100) | – |
| Descending triangle forming | structure | 10 | 20.0% | 0.0% | 20 | 25.0% | 75.0% | – | – | excluded: only 10 train cases (< 100) | – |
| Rising wedge broke down | structure | 34 | 47.1% | 52.9% | 102 | 43.1% | 56.9% | – | – | excluded: only 34 train cases (< 100) | – |
| Falling wedge broke up | structure | 40 | 72.5% | 27.5% | 284 | 11.6% | 87.7% | – | – | excluded: only 40 train cases (< 100) | – |
| Symmetrical triangle broke up | structure | 105 | 46.7% | 52.4% | 164 | 25.0% | 75.0% | -0.075 | +0.074 | fall | held |
| Symmetrical triangle broke down | structure | 122 | 61.5% | 38.5% | 301 | 29.9% | 69.8% | +0.145 | -0.132 | rise | did not hold |
| RSI oversold | indicator | 151 | 58.3% | 41.7% | 112 | 29.5% | 70.5% | +0.108 | -0.093 | rise | did not hold |
| RSI overbought | indicator | 446 | 44.6% | 55.4% | 42 | 57.1% | 35.7% | -0.207 | +0.231 | fall | – |
| MACD crossed up | indicator | 239 | 48.1% | 51.9% | 627 | 19.3% | 80.5% | -0.086 | +0.106 | fall | held |
| MACD crossed down | indicator | 306 | 65.0% | 34.6% | 640 | 43.6% | 56.4% | +0.325 | -0.312 | rise | held |
| MACD histogram rising | indicator | 716 | 58.1% | 41.8% | 1,446 | 29.0% | 70.8% | +0.191 | -0.167 | rise | did not hold |
| MACD histogram falling | indicator | 805 | 54.8% | 45.0% | 1,361 | 35.8% | 63.6% | +0.087 | -0.067 | rise | held |
| Above the 50-bar average | indicator | 803 | 50.4% | 49.4% | 657 | 35.0% | 63.3% | -0.053 | +0.077 | fall | did not hold |
| Below the 50-bar average | indicator | 154 | 83.1% | 16.9% | 1,791 | 32.4% | 67.6% | +0.657 | -0.642 | rise | did not hold |
| Above the 200-bar average | indicator | 0 | – | – | 42 | 40.5% | 59.5% | – | – | excluded: only 0 train cases (< 100) | – |
| Below the 200-bar average | indicator | 0 | – | – | 7 | 0.0% | 100.0% | – | – | excluded: only 0 train cases (< 100) | – |
| 50 above 200 (golden) | indicator | 0 | – | – | 36 | 47.2% | 52.8% | – | – | excluded: only 0 train cases (< 100) | – |
| 50 below 200 (death) | indicator | 0 | – | – | 13 | 0.0% | 100.0% | – | – | excluded: only 0 train cases (< 100) | – |
| At the lower Bollinger Band | indicator | 8 | 100.0% | 0.0% | 25 | 40.0% | 60.0% | – | – | excluded: only 8 train cases (< 100) | – |
| At the upper Bollinger Band | indicator | 370 | 55.1% | 44.9% | 36 | 41.7% | 55.6% | +0.080 | -0.057 | rise | – |
| Volume surge | indicator | 631 | 57.0% | 42.6% | 383 | 27.7% | 72.1% | +0.152 | -0.135 | rise | did not hold |
| Volatility squeeze | indicator | 17 | 5.9% | 94.1% | 222 | 34.2% | 65.8% | – | – | excluded: only 17 train cases (< 100) | – |
| Weekly Signal | indicator | 0 | – | – | 0 | – | – | – | – | excluded: only 0 train cases (< 100) | – |
Calibration on 2021-2022 (3,189 bars)
Each side: the bin's cases, its own rate with its own 95% range, then the calibrated value (adjacent bins pooled to make the table monotone) with the 95% range of that value over the pooled cases. The number the page shows is the calibrated one, inside its own range.
| Raw model bin | Rise: cases | rose first (own range) | calibrated (its range) | usable | Fall: cases | fell first (own range) | calibrated (its range) | usable |
|---|---|---|---|---|---|---|---|---|
| 0% – 5% | 0 | – | – | no | 14 | 28.6% (11.7% – 54.6%) | 28.6% (11.7% – 54.6%) | no |
| 5% – 10% | 0 | – | – | no | 226 | 29.6% (24.1% – 35.9%) | 29.6% (24.1% – 35.9%) | no |
| 10% – 15% | 0 | – | – | no | 381 | 30.2% (25.8% – 35.0%) | 30.2% (25.8% – 35.0%) | yes |
| 15% – 20% | 0 | – | – | no | 570 | 33.3% (29.6% – 37.3%) | 33.3% (29.6% – 37.3%) | yes |
| 20% – 25% | 0 | – | – | no | 340 | 38.5% (33.5% – 43.8%) | 38.5% (33.5% – 43.8%) | yes |
| 25% – 30% | 0 | – | – | no | 577 | 49.0% (45.0% – 53.1%) | 45.9% (43.0% – 48.9%, 1,113 pooled) | yes |
| 30% – 35% | 0 | – | – | no | 453 | 42.2% (37.7% – 46.8%) | 45.9% (43.0% – 48.9%, 1,113 pooled) | yes |
| 35% – 40% | 0 | – | – | no | 83 | 44.6% (34.4% – 55.3%) | 45.9% (43.0% – 48.9%, 1,113 pooled) | no |
| 40% – 45% | 0 | – | – | no | 213 | 56.3% (49.6% – 62.8%) | 48.1% (43.9% – 52.3%, 545 pooled) | no |
| 45% – 50% | 1 | 100.0% (20.6% – 100.0%) | 49.9% (46.1% – 53.8%, 637 pooled) | no | 331 | 42.9% (37.7% – 48.3%) | 48.1% (43.9% – 52.3%, 545 pooled) | yes |
| 50% – 55% | 357 | 54.1% (48.9% – 59.2%) | 49.9% (46.1% – 53.8%, 637 pooled) | yes | 1 | 0.0% (0.0% – 79.3%) | 48.1% (43.9% – 52.3%, 545 pooled) | no |
| 55% – 60% | 157 | 41.4% (34.0% – 49.2%) | 49.9% (46.1% – 53.8%, 637 pooled) | no | 0 | – | – | no |
| 60% – 65% | 122 | 48.4% (39.7% – 57.1%) | 49.9% (46.1% – 53.8%, 637 pooled) | no | 0 | – | – | no |
| 65% – 70% | 425 | 56.2% (51.5% – 60.9%) | 53.7% (50.7% – 56.8%, 1,018 pooled) | yes | 0 | – | – | no |
| 70% – 75% | 593 | 51.9% (47.9% – 55.9%) | 53.7% (50.7% – 56.8%, 1,018 pooled) | yes | 0 | – | – | no |
| 75% – 80% | 463 | 63.1% (58.6% – 67.3%) | 63.1% (58.6% – 67.3%) | yes | 0 | – | – | no |
| 80% – 85% | 490 | 67.1% (62.9% – 71.2%) | 67.1% (62.9% – 71.2%) | yes | 0 | – | – | no |
| 85% – 90% | 371 | 70.3% (65.5% – 74.8%) | 69.7% (65.8% – 73.3%, 581 pooled) | yes | 0 | – | – | no |
| 90% – 95% | 199 | 68.8% (62.1% – 74.9%) | 69.7% (65.8% – 73.3%, 581 pooled) | no | 0 | – | – | no |
| 95% – 100% | 11 | 63.6% (35.4% – 84.8%) | 69.7% (65.8% – 73.3%, 581 pooled) | no | 0 | – | – | no |
Reliability on 2023 onward (said vs happened)
| Bin | Rise: cases | said | happened | Fall: cases | said | happened |
|---|---|---|---|---|---|---|
| 45% – 50% | 5 | 59.3% | 40.0% | 205 | 48.1% | 73.2% |
| 50% – 55% | 219 | 49.9% | 26.0% | 15 | 40.1% | 60.0% |
| 55% – 60% | 194 | 59.3% | 34.0% | – | – | – |
| 60% – 65% | 220 | 59.3% | 32.7% | – | – | – |
| 65% – 70% | 388 | 53.7% | 24.2% | – | – | – |
| 70% – 75% | 426 | 53.7% | 32.6% | – | – | – |
| 75% – 80% | 382 | 63.1% | 29.8% | – | – | – |
| 80% – 85% | 608 | 67.1% | 34.4% | – | – | – |
| 85% – 90% | 439 | 69.7% | 35.1% | – | – | – |
| 90% – 95% | 236 | 59.3% | 35.6% | – | – | – |
| 95% – 100% | 23 | 59.3% | 52.2% | – | – | – |
NO EDGE bars on the held-out years: 1,664, of which 29.7% rose first and 69.8% fell first. Share of bars that got a label: 47.0%.
1M · not covered
too few bars: train 1919, calibrate 582, test 1552
The Weekly Signal, merged in
The Weekly Signal (weekly RSI(14) below 40 AND weekly MACD(12,26,9) histogram rising versus the prior week) is one indicator among the setups above (weekly_signal), read from the weekly closes of the chart on screen. Its own pooled record, chosen before 2022 and checked once from 2022 (all assets together, target a weekly close at least +3% above the signal week's close within the next 13 weekly closes): 80.3% of 5,327 signals before 2022 against a base rate of 76.6% of all weeks; 81.9% of 1,419 signals from 2022 against 75.7%. Literal (no minimum margin over baseline); strict 10-point-margin rule found nothing. On this page the signal is measured against each timeframe's own target (tables above), so its rate here differs from its own page's. Only the pooled record is shown; an asset's own record is not shown because a single asset has too few signals for the number to mean anything. Source: https://cymetica.com/weekly-signal (pooled study: all assets together, chosen before 2022, checked once from 2022).
The public ledger of the page's own calls
26 calls recorded when they were made, 0 scored after their window ended, 26 still open. Running record by verdict:
| Verdict | Calls | Scored | Went that way | Said on average | Base rate | Reading |
|---|---|---|---|---|---|---|
| READY TO POP | 2 | 0 | – | – | – | Too few scored calls to read yet. |
| READY TO DUMP | 24 | 0 | – | – | – | Too few scored calls to read yet. |
The ledger as JSON: /api/v1/chart-analyzer/calls (?status=scored, ?status=open).
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.
What the Chart Analyzer does not do: no screenshots, no news or fundamentals, no forecast; it places no orders and moves no funds; a DEX-pool coin or an uploaded series gets the drawings and the setups but no verdict, because its candles were not measured. Not financial advice.
Build it Better ET-29001 · back to the Chart Analyzer