When a bullish engulfing candle is followed by a 5% jump within the hour, what happens next?

1,285 historical matches·677 markets scanned·2026-05-15 to 2026-07-26

At a glance

What the historical record shows

Usually lower after 30 minutes: 727 of 1,284 completed windows fell (56.6%). No reference rate is available, so no lift is claimed.

Use this to decide what to investigate next. These historical frequencies do not establish a profitable trade.

Share text

Which markets does this cover?

All markets scanned by this study. No market or sector filter.

Results combine 677 scanned markets. They do not establish the outcome for an individual market or sector.

Asset-class and sector breakdowns are not included in this saved result. See research coverage →

Explore market coverage ↓

What is this report for?

Test a market observation against recorded history, compare what followed with the reference rate, then inspect examples before pursuing the idea.

Understand the setup and method ↓
Armed as a standing alert (definition #3), linked 2026-07-27: the live alert watches for exactly this definition; it and this page compile to the same ID.
Results by time periodCompare 30 minutes, 1 hour and longer periods, including larger moves

Choose a time period. “Closed” measures the price at its end; high and low points measure prices reached along the way. No same-scope reference is pinned to this report, so no ratio is claimed.

30 minutes1 incomplete outcomes excluded
OutcomeAfter this setupReference minutesHow often vs reference
Closed 2% or more higher25.6%329 of 1,284Not availableNot available
Closed 2% or more lower32.6%418 of 1,284Not availableNot available
Closed 5% or more higher12.5%160 of 1,284Not availableNot available
Closed 5% or more lower10.3%132 of 1,284Not availableNot available
High point 5% or more abovenot in ladderNot availableNot available
Low point 5% or more belownot in ladderNot availableNot available
1 hourView outcomes and counts
OutcomeAfter this setupReference minutesHow often vs reference
Closed 2% or more highernot in ladderNot availableNot available
Closed 2% or more lowernot in ladderNot availableNot available
Closed 5% or more highernot in ladderNot availableNot available
Closed 5% or more lowernot in ladderNot availableNot available
High point 5% or more above35.8%460 of 1,284Not availableNot available
Low point 5% or more below33.6%432 of 1,284Not availableNot available
4 hours6 incomplete outcomes excluded
OutcomeAfter this setupReference minutesHow often vs reference
Closed 2% or more higher32.4%414 of 1,279Not availableNot available
Closed 2% or more lower46.1%590 of 1,279Not availableNot available
Closed 5% or more higher22.5%288 of 1,279Not availableNot available
Closed 5% or more lower29.1%372 of 1,279Not availableNot available
High point 5% or more above53.2%683 of 1,284Not availableNot available
Low point 5% or more below57.3%736 of 1,284Not availableNot available
24 hours24 incomplete outcomes excluded
OutcomeAfter this setupReference minutesHow often vs reference
Closed 2% or more higher35.1%442 of 1,261Not availableNot available
Closed 2% or more lower53.8%678 of 1,261Not availableNot available
Closed 5% or more higher29.6%373 of 1,261Not availableNot available
Closed 5% or more lower43.1%544 of 1,261Not availableNot available
High point 5% or more above72.5%919 of 1,267Not availableNot available
Low point 5% or more below79.7%1,010 of 1,267Not availableNot available

72 hours: Not included in this saved report.

7 days: Not included in this saved report.

Average and median returns are not available in this report. These frequencies alone do not establish profitability.

When did it happen, and how spread out were returns?Frequency over time and the distribution of 30-minute returns
Occurrences per day · UTC · sum 1,285
49025MATCHES PER UTC DAY · MAX 49 ON 2026-06-07MAY 15JUN 01JUL 012026-05-15 TO 2026-07-26 · 73 UTC DAYS · ZERO DAYS KEEP THEIR SLOT

Each bar counts matching setups on one UTC day. Look for clusters: many examples from a short period may reflect the same market episode.

Where price ended after 30 minutes

These three groups cover every complete outcome, including the moves smaller than 2%. Bar length shows the share of matches, not the size of the price move.

Fell 2% or more32.6%
418 of 1,284 matches
Between −2% and +2%41.8%
537 of 1,284 matches
Rose 2% or more25.6%
329 of 1,284 matches

1 incomplete outcomes excluded. This measures the price at 30 minutes, not the highest or lowest price reached on the way.

Detailed distribution: 14 return ranges

30-minute return distribution · 1,284 present · 1 absent. Each column counts outcomes in the labelled return range. The ranges have different widths; compare counts, not the shape as a probability density.

≥ +5%: 160 of 1,284432010528615215712610216911726710≤−20−15−10−5−2−1<00++1+2+5+10+15≥+20
AUTHOR'S NOTE - OPINION, NOT MACHINE OUTPUT

"Successor to q#ed3ac65e, invalidated 2026-07-20: its record_result.v2 pin materialized sequence-step evidence from the final anchor bucket, so step-1 rows could show the wrong bucket's values. The engine defect is fixed; this pin carries per-step evidence under record_result.v4. This successor asks the same question over the full recorded corpus (2026-05-15 to 2026-07-26) rather than the predecessor's 7-day window. Rerun on the current engine, the predecessor's exact document now records 108 occurrences over its original window (was 82 under the invalid pin; dataset revision also changed since, so the delta is not the defect alone). Read the split honestly: of 1,261 occurrences with a complete 24h horizon, 373 closed at or above +5% and 544 at or below -5%, and 1,010 of 1,267 drew down at least 5% within 24h. The population is dominated by small-cap pump symbols; what follows skews to give-back. Descriptive counts only; not advice."

Results since publicationHave new matches appeared, and what happened after them?

Armed as a standing alert (definition #3, linked 2026-07-27): the live alert watches for exactly this definition. It and this page compile to the same ID.

OutcomeOriginal study, 2026-05-15 to 2026-07-26Since publication, from 2026-07-27
Traded 5% or more above the match within 1h460 of 1,284 (35.8%) · 1 absent, not countedloading
Closed 2% or more higher at 24h442 of 1,261 (35.1%) · 24 absent, not countedloading
Closed 2% or more lower at 24h678 of 1,261 (53.8%) · 24 absent, not countedloading

Both periods are counted the same way. The later period is the same search on data recorded after publication, not a preregistered test. A missing outcome is never counted as zero.

Matches by marketMost matches: ESPORTSUSDT 53 · HUSDT 42 · LABUSDT 42677 markets itemized

Find where this setup appeared. These are occurrence counts, not performance rankings. Outcomes for individual markets are not included in this saved report.

Showing 25 of 677 itemized markets
Examples and replaysFirst 50 of 1,285 matches

Examples, never the denominator; the counts above cover every match. Replay opens 30 minutes before the moment.

Sort the 50 examples shown here. This does not sort all study matches.

Replay
ESPESPORTSUSDT2026-07-25 18:32+5.05%+6.44%−2.46%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05298840321141829sequence_step_2
EULEULUSDT2026-07-25 18:04+5.46%+5.93%−0.03%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05483697116680153sequence_step_2
ESPESPORTSUSDT2026-07-25 16:30+4.30%+6.08%−0.72%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.06947538991290259sequence_step_2
DEXDEXEUSDT2026-07-25 14:34+7.87%+9.30%−9.07%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.057618726085977956sequence_step_2
DEXDEXEUSDT2026-07-25 12:45−3.20%+10.71%−6.89%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.08009211873080857sequence_step_2
ONONUSDT2026-07-25 11:52+6.91%+12.77%−0.69%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.053422904670505256sequence_step_2
ESPESPORTSUSDT2026-07-25 11:17−2.86%+7.36%−7.56%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05125523012552291sequence_step_2
STASTARUSDT2026-07-25 11:03−1.55%+1.19%−2.40%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.07462686567164178sequence_step_2
HANHANAUSDT2026-07-25 09:08+11.13%+15.98%−0.39%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.0621662852784135sequence_step_2
ONONUSDT2026-07-25 09:04−3.03%+2.84%−13.58%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05166617947968444sequence_step_2
PROPROMUSDT2026-07-25 08:17−2.69%+10.00%−7.87%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05686695278969944sequence_step_2
EULEULUSDT2026-07-25 08:03−8.47%+0.03%−10.90%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05569602472257351sequence_step_2
LUMLUMIAUSDT2026-07-25 07:35−3.21%+2.02%−4.83%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05325443786982231sequence_step_2
AKEAKEUSDT2026-07-25 05:53+6.07%+11.89%−1.00%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.06629341701733105sequence_step_2
GWEGWEIUSDT2026-07-25 04:21−2.44%+2.89%−5.89%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.06021897810218979sequence_step_2
DEXDEXEUSDT2026-07-25 04:17−9.15%+5.96%−18.65%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.0843297671491503sequence_step_2
DEXDEXEUSDT2026-07-25 03:05+1.63%+13.83%−0.87%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05053191489361697sequence_step_2
DEXDEXEUSDT2026-07-25 00:00+3.51%+9.94%−1.75%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.050420168067226934sequence_step_2
ACEACEUSDT2026-07-24 21:47+2.16%+3.07%−3.16%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05317987895624565sequence_step_2
ONONUSDT2026-07-24 21:34−4.87%+2.01%−5.44%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.053893866299103976sequence_step_2
DEXDEXEUSDT2026-07-24 21:16−3.55%+0.00%−11.14%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.052800466744457486sequence_step_2
ACEACEUSDT2026-07-24 17:30−2.50%+0.96%−8.45%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.06007827788649722sequence_step_2
FLUFLUIDUSDT2026-07-24 13:58−2.87%+0.42%−4.47%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.06182795698924726sequence_step_2
HANHANAUSDT2026-07-24 12:39+0.50%+1.92%−0.53%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05046439628482968sequence_step_2
ESPESPORTSUSDT2026-07-24 12:10−1.24%+2.07%−2.14%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.056433957674531854sequence_step_2
AKEAKEUSDT2026-07-24 10:30+2.91%+11.41%−1.70%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05067332487413534sequence_step_2
ONONUSDT2026-07-24 09:52−3.43%+2.29%−9.50%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05660474983184138sequence_step_2
ORDORDERUSDT2026-07-24 09:37+0.58%+2.93%−2.30%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05085730892182494sequence_step_2
VANVANRYUSDT2026-07-24 09:18−2.09%+3.09%−2.56%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.06922234392113924sequence_step_2
TAITAIKOUSDT2026-07-24 07:01−0.71%+3.97%−3.34%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.06685756972111556sequence_step_2
BANBANKUSDT2026-07-24 06:45+2.81%+8.03%−1.40%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.06737168755869494sequence_step_2
AKEAKEUSDT2026-07-24 06:18−6.30%+4.80%−14.28%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.06829814459373007sequence_step_2
SWASWARMSUSDT2026-07-24 04:14−1.78%+0.15%−3.48%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05440187189236623sequence_step_2
AGTAGTUSDT2026-07-24 04:12−0.90%+1.06%−5.38%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05709542370434528sequence_step_2
DEXDEXEUSDT2026-07-24 04:02+5.65%+10.11%−0.40%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05041518386714117sequence_step_2
RIFRIFUSDT2026-07-24 03:40+5.91%+7.58%−2.71%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05009944123496557sequence_step_2
ZHIZHIPUUSDT2026-07-24 01:49+5.27%+8.21%−0.72%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.050502948317724616sequence_step_2
BROBROCCOLIF3BUSDT2026-07-24 00:24−4.77%−0.10%−5.33%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.07027522935779817sequence_step_2
RIFRIFUSDT2026-07-23 21:46+0.19%+6.01%−7.58%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.07306889352818358sequence_step_2
ESPESPORTSUSDT2026-07-23 20:17+8.32%+18.23%−0.70%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.057776284850520554sequence_step_2
AKEAKEUSDT2026-07-23 20:09+5.81%+7.22%−2.30%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.08557815649624345sequence_step_2
MVLMVLLUSDT2026-07-23 20:04+0.33%+1.41%−0.63%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.051522248243559776sequence_step_2
SOXSOXLUSDT2026-07-23 20:04+0.86%+1.79%−0.49%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05490783560216239sequence_step_2
INTINTCUSDT2026-07-23 20:01+5.31%+8.29%−3.59%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05125125125125107sequence_step_2
LALAUSDT2026-07-23 18:49−3.08%+3.75%−4.67%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05211224175146456sequence_step_2
BBUSDT2026-07-23 17:53−3.46%+5.43%−5.43%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.10399529964747378sequence_step_2
RIFRIFUSDT2026-07-23 16:52−4.42%+1.18%−12.62%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.07364858847626676sequence_step_2
RIFRIFUSDT2026-07-23 15:46+1.81%+5.57%−1.47%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.0611089418196018sequence_step_2
RIFRIFUSDT2026-07-23 14:01+3.10%+13.84%−0.95%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.057202408522464054sequence_step_2
B2B2USDT2026-07-23 13:58−1.70%+1.52%−2.69%replay →
Why this matched: the recorded values at that minute
FieldOpQueryObservedScope
feature.candle_engulfing_15meq"bullish"bullishsequence_step_1
feature.ret_15mbetween{"gte":0.05}0.05269645608628659sequence_step_2
Evidence and methodologySetup definition, sample counts, data quality and reproducibility

Use this section to check the setup rules, what was counted and the limits of the source data. The exact query and audit counts are available below.

Published 2026-07-27 by @admin · q#3c0016a5

The setup: the last 15-minute candle is a bullish engulfing, then the last 15 minutes returned 5% or more within 1 hour. What counts as one

Readings in this definition: last 15-minute engulfing pattern · trailing 15-minute return. Each page states the exact rule, its limits and what it does not prove.

How the comparison works

Each match is measured from the moment the full setup completes. Rates use only matches with a complete outcome at that time period.

1,285
matches
677
markets
47,227,702
eligible market-minutes scanned
2026-07-25
last match
1
without a 30m outcome

No same-scope reference rate is pinned to this report yet.

Technical audit: exact query, source counts and versions

Exact search

SCOPEtimes.anchor_time between 2026-05-15T00:00:00.000Z to 2026-07-26T00:00:00.000Z
STEP 2feature.ret_15m ≥ 0.05within PT1H

These values are what ran, confirmed by the author before the run. Prose on this page is commentary. A chip links to the page that defines its reading.

Pinned result

v2 · nrm.v1 · ft.v1 · rev f0d647bc…69d5d977 · q#3c0016a5

This ID reruns to the same answer on any day and any account. It never changes; the record grows nightly and a rerun publishes as a new labeled result.

Outcome diagnostics

Headline split (mfe_1h)
460 of 1,284 (35.8%) traded 5% or more above the match at some point within 1h (mfe_1h, a high-water mark and not a close). 824 of 1,284 did not. Measured forward from each match. 1 absent, excluded from the denominator.
Peak day and span
Busiest day 2026-06-07: 49 of 1,285 matches (3.8%). 73 UTC days scanned: 60 with matches, 13 with none.
Present and absent by metric
fwd_ret_30m: present 1,284 · absent 1
mfe_1h: present 1,284 · absent 1
mae_1h: present 1,284 · absent 1
Absent: no completed outcome (record edge or missing minutes), excluded from every rate.
Threshold counts (fwd_ret_30m), both signs
≥ +1431 OF 1284
≥ +2329 OF 1284
≥ +5160 OF 1284
≥ +1043 OF 1284
≥ +1517 OF 1284
≥ +2010 OF 1284
≤ -1570 OF 1284
≤ -2418 OF 1284
≤ -5132 OF 1284
≤ -1027 OF 1284
≤ -157 OF 1284
≤ -204 OF 1284
Every row is an exact partial sum of the distribution buckets in the chart, so the table and the chart cannot disagree.

Methodology and versions

DEFINITION
2 steps · 1 scope
How this is counted
feature.candle_engulfing_15m = bullish THEN feature.ret_15m ≥ 0.05 WITHIN PT1H. the chips at the top of the page are this definition, verbatim.
EXECUTION
edge-triggered · 1m UTC grid
How this is counted
the predicate becomes true having been false; sequences chain greedy-earliest and anchor at completion; episode dedupe PT1H. deterministic at every worker count.
DENOMINATORS
47,227,702 of 70,192,037
How this is counted
eligible market-minutes scanned (one market for one minute) across 677 markets; 22,964,335 excluded where a measurement was not yet available - missing data shrinks the denominator, it never counts as zero; 15778 market-days excluded by the source ledger. counts are matches within the scanned window, never a base rate.
OUTCOMES
forward from anchor · in-scan
How this is counted
closed threshold list ±1/2/5/10/15/20 pct, 14 fixed buckets across 9 forward metrics, computed over all occurrences pre-paging. an outcome absent at the record edge (horizon incomplete) is counted, never truncated or implied zero. nothing on this page is filterable by outcome. nothing here is a guarantee or trading advice.
OBSERVATION SCOPE
setup as-of anchor
How this is counted
setup values are as-of the anchor bucket close (point-in-time freeze); window aggregates cover their stated pre-anchor duration; every value the predicate consulted is at or before the anchor.
PIN
pinned 2026-07-27 · 1285
How this is counted
the pinned result (counts, page-1 rows, outcomes, outcomes summary) never mutates. later dataset revisions are new runs, never merged.
SORT
times.anchor_time asc
How this is counted
the only record sort in v2.0; page limit 50. the pinned rows are page 1 of 1,285 - charts and rates derive from the summary over all occurrences, never from the page.
VERSIONS
q#3c0016a5 · rev f0d647bc1445
How this is counted
schema research_query.v2 · normalization archive_normalization.v1 · features feature_defs.v1 · encoding record_result.v4. same key implies a byte-identical rerun.
DATASET REV · FULL
f0d647bc14452e0295117f9097d10b35c52afa1d007f1ece970d1a5169d5d977

These are counts of what happened in the scanned window, not a promise it happens again. Nothing here is trading advice.