Trading Bot HQModels & runsTestsResearchShadow paper

Declared scan: up-streak persistence — ETHUSDT replication (R4 follow-up)

Date declared: 2026-07-24, before any computation. Split: Research only (ETHUSDT 2017-08-17 → 2022-12-31, Binance corpus already on disk). Layer 3, Edge Lab. Evidence basis: the R4 rhythm scan's sole survivor — BTC streak_up_ge8 continuation +0.34 ATR/1h (CI 0.088–0.590) and +0.60 ATR/4h (CI 0.155–1.051), 6/6 year-blocks positive, monotone vs ge5, down-side null (2026-07-24-rhythm-falsification-scan.md). Per Amendment A1, within-crypto-class replication is the operative second-instrument test for a crypto-only effect.

What replication must show (pre-declared)

The BTC finding's pattern, not just any effect: (a) streak_up_ge8 signed positive at 1h AND 4h with block-bootstrap CI > 0; (b) monotone dose (ge8 > ge5, same sign, at those horizons); (c) ≥4/6 year-blocks positive; (d) the asymmetry reproduces (down-side shows no comparable clean effect — if ETH shows a strong symmetric effect, that is a different phenomenon than the BTC finding and is logged as non-replication of the pattern). All four or it is NOT REPLICATED.

Conditions (identical constants to the BTC scan)

streak_up_ge5 (+1), streak_down_ge5 (−1), streak_up_ge8 (+1), streak_down_ge8 (−1); freshness = first bar reaching the threshold (== not ≥, disjoint event sets); horizons 15/30/60/240; universe, nulls, engine defaults as the BTC run. 16 hypotheses (cumulative 117 → 133 of 2,000).

Descriptive add-on (no hypotheses): the ex-ante cost inputs

Report mean/median ATR14(M5) as % of price at ge8 event bars, both instruments. Reason: the TEMPLATE's ex-ante kill rule needs drag = round_trip_cost / stop, and a first paper pass at Vantage 3.1bp suggests the effect is marginal under a 1×ATR stop (gross ≈ 0.34R/1h vs drag ≈ 0.2–0.3R unless event-time ATR% is elevated). This scan supplies the measured ATR% so the arithmetic is done with data, not guesses, BEFORE any execution prereg is considered.

Pre-declared reading

Honest prior: genuinely uncertain — displacement replicated crypto-wide with near-identical magnitudes, but this effect is thinner (n≈500 on BTC) and front-loaded in early years; ETH's research window shares those early thin years, which cuts both ways. A clean replication makes this the project's premier lead; a failure retires the rhythm layer after all (the BTC survival would then read as a single-instrument artifact that Amendment A1's logic exists to catch).

Results (filled 2026-07-24, single ledger-logged run; 16 hypotheses, cumulative 117→133/2000)

REPLICATED per the pre-declared mechanical rule (a)–(d), all four clear. Full table in results/upstreak-eth.json; feature-store up_streak/down_streak columns hand-verified unchanged on ETHUSDT (symbol-agnostic code — spot-checked against a sampled run of consecutive closes at 2017-08-22 08:45→09:25 before the run: streak lengths increment/reset exactly as on BTC, ge8 first reached at bar 8 of a run); 171 tests green.

Freshness reading (same as the BTC scan, restated for the record): each streak counts once, at the bar where it first reaches the threshold (up_streak == 5 / == 8, not >= 5 / >= 8), so the ge5/ge8 event sets are disjoint per side.

Condition n Signed mean ATR: 15m / 30m / 1h / 4h
streak_up_ge5 7,053 −0.015 / +0.031 / +0.070 / +0.209
streak_up_ge8 625 +0.003 / +0.131 / +0.228 / +0.536
streak_down_ge5 6,779 −0.015 / −0.003 / +0.015 / +0.042
streak_down_ge8 571 −0.073 / −0.050 / +0.099 / +0.211

Mechanical rule check (a)–(d):

All four criteria hold → REPLICATED. The BTC streak_up_ge8 continuation effect (R4 survivor) is not a single-instrument artifact under Amendment A1's within-crypto-class test; this is now a two-instrument, sign-stable (5/6 and 4/6 year-blocks), dose-responsive, asymmetric finding and becomes the project's next-highest-priority mentor-adjacent lead (subject to the same ex-ante cost arithmetic as any other candidate before an execution prereg).

Null-battery caveat (as in the BTC scan): shuffle-p is degenerate (=1.000) in every cell — permuting a constant per-variant direction sign is a no-op by construction. The frequency-matched random null and block bootstrap carry the weight; the random null confirms streak_up_ge8/streak_down_ge8 events are genuinely high-volatility on ETH too (rand-p 0.002–0.024 across cells) — magnitude evidence, not direction, consistent with but not independent proof of the signed finding.

Descriptive add-on — ATR14(M5) as % of price at ge8 event bars (both instruments): ambiguity resolution logged — "ge8 event bars" is read as the union of up_streak==8 and down_streak==8 bars (the declaration does not restrict this to one side), with the up/down split also reported for transparency:

n mean ATR14/close median ATR14/close
ETH — up_ge8 625 0.398% 0.326%
ETH — down_ge8 571 0.447% 0.353%
ETH — combined 1,196 0.421% 0.338%
BTC — up_ge8 498 0.318% 0.273%
BTC — down_ge8 466 0.357% 0.274%
BTC — combined 964 0.337% 0.274%

ETH's event-time ATR% runs ~23–25% richer than BTC's (0.421% vs 0.337% mean; 0.338% vs 0.274% median) at the same streak-length trigger — the TEMPLATE's ex-ante drag arithmetic (round_trip_cost / stop) should use these measured figures per instrument, not a shared number; ETH's larger ATR% at the event, combined with its larger gross signed effect (+0.536 ATR/4h vs BTC's +0.603 ATR/4h — comparable, ETH not "cheaper" gross but not worse either), is directionally favorable for surviving a 1×ATR-stop cost test but does not by itself decide it — an execution prereg with real cost inputs is required before any capital claim.

Other ambiguity resolutions on record: - Which horizons the (a)/(c) checks bind to: read as both 1h and 4h independently (the declaration names both), each cell checked on its own year-block count rather than a pooled requirement — this is the stricter reading and both cells still clear. - Results file naming: written to results/upstreak-eth.json (config name alone), not upstreak-eth-ethusdt.json (the BTC script's {name}-{symbol} convention) — this scan's declared deliverable path names the file directly. - Seed: reused 20260724, identical to the BTC scan's config, per "identical constants to the BTC scan" in the Conditions section above.