Pre-registration: streak_follow_btc_v1 — up-streak persistence execution test on BTCUSD
Date registered: 2026-07-24, before any execution-level test of this candidate.
Lineage: hybrid — the "rhythm/streak" concept descends from the mentor's technique
journals (R4 ladder rung); the specific mechanization (M5 close-streaks, ≥8 threshold,
4h harvest) is ours from the declared scans; stated per registry lineage rules.
Evidence basis: R4 rhythm scan (2026-07-24-rhythm-falsification-scan.md) — BTC
streak_up_ge8 +0.603 ATR/4h, CI [0.155, 1.051], 6/6 year-blocks, monotone dose — and
its ETH replication (2026-07-24-upstreak-eth-replication-scan.md) — +0.536 ATR/4h, CI
[0.047, 0.987], 4/6 blocks, dose and asymmetry reproduced. Amendment A1 second-instrument
test satisfied at scan level.
Scope: Research split ONLY (Binance BTCUSDT M1, 2017-08-17 → 2022-12-31). Validation
(9/10 looks) and Vault untouched. Fresh strategy segment: run 1 of 3.
Ex-ante cost arithmetic (TEMPLATE requirement — computed BEFORE running)
- Measured event-time ATR14(M5): BTC up-ge8 median 0.273% of price (n=498, from the
replication scan's descriptive add-on; ETH 0.326%).
- The 3× screen is stop-invariant in R (gross_R/drag_R = gross_bp/cost_bp): 4h scan gross
0.603 ATR × 27.3bp ≈ 16.5bp vs Vantage-class RT 3.1bp → 5.3× (ETH: 17.5bp →
5.6×). Dukascopy pessimistic bound 8.3bp → 2.0× (reported, not the decision case).
- 1h harvest: BTC 9.3bp ≈ 3.0× (at the line), ETH 7.4bp = 2.4× (fails) → the 1h
harvest is NOT registered; 4h only.
- Break-even RT cost at the 4h harvest: ≈ 5.5bp (Vantage-class 3.1 sits 44% below).
- Kill rule: passes (≥3× at the realistic variant). Registration proceeds.
Frozen spec (zero free parameters)
- Event:
up_streak == 8 on M5 closes (exactly 8, the scans' freshness rule —
feature-store semantics, open-labeled grid), long only (the down-side never earned a
registration). Signal at the 8th bar's close.
- Entry: open of the next M1 bar.
- Stop: 2.0 × ATR14(M5) at the event, below entry. (Declared for geometry, not fitted:
a 1×ATR stop sits inside 4h noise — unconditional 4h |move| ≈ 3.7 ATR — and would
convert the time-exit harvest into a stop-lottery; 2× is the smallest round multiple
that keeps the median 4h adverse excursion plausibly survivable. The 3× screen is
stop-invariant, so this choice affects truncation realism, not the admission test.)
- Exit: time exit at the open of the first M1 bar ≥ 240 minutes after entry, unless
stopped. No TP, no trail — the faithful harvest of the scanned close-to-close move.
- One position at a time; events while in-position skipped.
- Arms: A1 primary (as above) · C1 control: same events/geometry, coin-flip
direction (seed 20260724).
- Costs: charged as RT % of entry: Vantage-class 0.031% (decision case) + Dukascopy
bound 0.0832% (reported).
BTCUSD_VANTAGE conventions.
Registered hypotheses (4; cumulative 133 → 137 of 2,000)
- H1 — survives execution: A1 gross > 0 AND > C1 gross. (Stop truncation will cut the
+0.60 close-to-close; disp-follow's 1×ATR/1h haircut was ~40% — with 2×ATR/4h the
truncation is milder but real.)
- H2 — survives realistic costs: A1 net (Vantage) > 0.
- H3 — year stability carries to execution: A1 gross positive in ≥4 of 6 year blocks.
- H4 — drag law: measured mean drag within ±30% of cost/stop prediction
(0.031%/(2×ATR%) per trade; charged-not-price-paid caveat as always).
Pre-declared "worth a Validation conversation" bar (NOT a Validation trigger)
All four: A1 net (Vantage) ≥ +0.05R · n ≥ 200 · beats C1 net · ≥4/6 year blocks
gross-positive. Meeting it triggers a decision memo to Richard (his look, his call —
lesson of run 20 fully priced in: research-split success is a hypothesis about the past).
Honest prior
Genuinely uncertain. For: two-instrument scan replication, 6/6 BTC year signs, 5.3×
ex-ante margin. Against: the 4h magnitude is front-loaded in 2017–18 thin-liquidity years
on both instruments; a 2×ATR stop still truncates some winners' paths; n≈450 after
in-position skips is thinner than disp-follow's. Expected failure mode: H1 holds weakly
but H2 lands in the −0.05..+0.05R dead zone. And the run-20 lesson stands: even a clean
pass here is a research-split fact, not an edge claim.
Iteration budget
Run 1 of 3 on this segment. Any change after seeing results = new registration.
Result (filled 2026-07-24, after the single registered run)
ALL THREE execution hypotheses (H1–H3) HELD; the pre-declared bar is MET. H4
(drag law) did NOT hold within tolerance — measured drag ran ~46% above the
scalar ex-ante prediction (see below; not a bar criterion). Registry run 21
(streak_follow_btc_v1, lineage hybrid); artifacts reports/streak-follow-btc-v1/,
dashboard reports/review-streak_follow_btc_v1.html.
Event count vs the rhythm scan: 498 up_streak==8 events (exact match to the
scan's n=498). 11 dropped to in-position skips → 487 traded, pre-cutoff. 0 dropped
by the split-end entry-cutoff (last event closes 2022-12-28, ATR-based 240m window
never approaches the split boundary) → 487 final traded.
| Arm |
n |
gross R |
net (Vantage) |
net (Dukascopy bound) |
win |
| A1 (long, up_streak==8) |
487 |
+0.1785 |
+0.1074 |
−0.0122 |
31.4% |
| C1 coin-flip control (seed 20260724) |
492 |
+0.0950 |
+0.0239 |
−0.0960 |
32.3% |
- H1 ✓ survives execution: A1 gross +0.1785R > 0 and > C1 gross +0.0950R — the
2xATR/240m harvest truncates the scan's raw +0.603 ATR close-to-close move (as
expected) but keeps a real, control-beating edge; the coin-flip control's small
positive gross reproduces the same post-event-volatility artifact seen in
disp-follow's C1 and costs would erase it regardless.
- H2 ✓ survives realistic costs: A1 net(Vantage) +0.1074R, n=487.
- H3 ✓ year stability carries to execution: gross positive in 4/6 year blocks
(2017 +0.273 · 2018 +0.389 · 2019 −0.017 · 2020 −0.056 · 2021 +0.293 · 2022
+0.225) — both thin-liquidity-era misses (2019, 2020) are near-zero, not
catastrophic; both post-2020 years and both early years positive.
- H4 — drag law, NOT within tolerance. Measured mean drag (gross − net-Vantage)
= 0.0711R; the ex-ante scalar prediction 0.031%/(2×mean-ATR%) = 0.0486R
→ ratio 1.46×, outside the pre-declared ±30% band. Root cause:
atr_pct
(2×ATR14/entry) is right-skewed (mean 0.64% vs median 0.55%, max 4.7%), and
drag is a convex function of it (cost/atr_pct) — Jensen's inequality means the
true mean drag exceeds the mean-ATR-based point estimate. A median-ATR-based
version of the same scalar formula (0.031%/(2×0.55%) = 0.0569R) gives ratio
1.25×, inside tolerance — flagged here as an honest sensitivity, not a
re-run: the mean-ATR convention was fixed before looking at results (matching
disp-follow's own H4 precedent language, "predicted ≈ cost/mean-ATR"), and it
is the one reported as the test. The drag direction and rough magnitude are
still right; the point estimate undershoots on this event set's fat right tail.
- Bar: net(Vantage) +0.1074R ≥ +0.05R ✓ · n=487 ≥ 200 ✓ · beats C1 net
(+0.1074 > +0.0239) ✓ · 4/6 year blocks gross-positive ✓ → BAR MET.
- Distribution note (honest, not a bar criterion): per-trade net R is
heavy-tailed (std 2.36R, max +16.99R, min −1.45R, cumulative max drawdown
−31.6R against a +52.3R total) — a direct consequence of normalizing R by
event-time ATR14 across a sample whose raw ATR spans roughly 150× (2.76 to
420 price units). A handful of low-ATR events that keep running produce large
R-multiples; this inflates both the upside and the drawdown when expressed in
R terms. Worth carrying into any Monte Carlo pass (Helm #32) before this
candidate goes further — the R-normalization itself, not just win rate, drives
tail risk here.
Per pre-commitment, nothing further runs without Richard: this is an execution
test on the Research split; it does not by itself license a Validation look or any
change to the frozen spec. Next steps (R7 S/R engine, a possible Validation
conversation, or a fresh registration for any parameter change) are his call.