Trading Bot HQModels & runsTestsResearch

Pre-registration: disp_follow_btc_v1 — VALIDATION run (look 1 of 10)

Date registered: 2026-07-23, before any contact with the Validation split. Authorized by: Richard, 2026-07-23 — "Validation only" scope, two tests kept separate (this run + the existing research benchmark), Vault untouched. §5.6 Amendment A1 recorded same day (docs/RESEARCH-PROGRAM-v1.0.md). Lineage: hybrid (unchanged from the research registration 2026-07-23-disp-follow-btc-v1.md).

What this is

The promotion step defined in Research Program §5: the frozen, zero-free-parameter disp_follow_btc_v1 spec run once against the Validation split 2023-01-01 → 2025-06-30 (Binance BTCUSDT M1). This burns Validation look 1 of 10 (project lifetime). The Vault (2025-07-01 →) is not touched.

Per Richard's instruction the result is reported as two separate tests, never pooled:

Frozen spec — byte-identical to the research registration

Every constant exactly as in 2026-07-23-disp-follow-btc-v1.md and scripts/run_disp_follow_btc.py: M5 displacement event (range ≥ disp_mult × 24h-median baseline bp, body ≥ 60%, prior-hour compression, baseline ≥ 7 bp), enter next M1 open in event direction, stop 1.0 × ATR14(M5), time exit ≥ 60 min, one position at a time, longs and shorts. Arms: A2 disp5/60m (primary — the §5-conformant arm), A1 disp4/60m (supporting), C1 coin-flip control on A1's events (seed 20260723). A3 is dropped (it was a research-only secondary; no decisions attach to it). Costs: both variants charged as in the research run — Vantage central 0.031% (decision case) and Dukascopy bound 0.0832% (reported alongside).

Machinery guard: before the Validation run, the runner (parameterized only by date window) must reproduce registry run 19's research numbers exactly (n and per-arm gross/net means to numerical tolerance) on 2017-08-17→2022-12-31. A mismatch = defect in the harness; fix and re-verify BEFORE first contact with Validation data. The reproduction uses only research-split data and burns nothing.

Pre-declared pass/fail criteria (Test V, arm A2 primary)

All four must hold:

  1. Net (Vantage) ≥ +0.05R per trade.
  2. n ≥ 100 (Validation is 2.5y vs research 5.4y; research A2 rate ≈ 52 trades/y ⇒ expected n ≈ 130).
  3. Beats C1 coin-flip control on net (Vantage) computed on the same split.
  4. Max drawdown (net, cumulative R) ≤ 2× C1's on the same split.

Supporting (reported, not gating): A1 same four figures; year-block signs; drag vs prediction; both cost variants.

A fail is final for this spec — research-budget runs 2–3 cannot be spent to "fix" a Validation fail (no re-splitting rule). A pass advances the candidate toward Gate A/B machinery (paper trail, Monte Carlo Helm #32, live-spread hardening via Vantage demo).

Honest prior

Research A2 net +0.28R is the point estimate; 2023–2025 contains a regime (post-ETF, lower realized vol per dollar) underrepresented in research years. Genuine uncertainty — which is the point of the look. Expected failure mode if it fails: event frequency collapse (fewer disp5 events in compressed-vol regimes) or magnitude decay below drag.

Iteration budget

One run. No reruns, no parameter contact, no peeking beyond the declared artifacts. Validation looks after this run: 9 of 10 remain.


Result (filled 2026-07-23, after the single registered run)

VALIDATION FAIL — 3 of 4 criteria failed. Final for this spec per the no-re-splitting rule. Registry run 20; artifacts reports/disp-follow-btc-v1-validation/; machinery guard passed (exact reproduction of run 19) before first Validation contact; zero Vault bars loaded (asserted). Validation looks remaining: 9 of 10.

Test Arm n gross R net (Vantage) net (Dukascopy) win
V (Validation 2023-01→2025-06) A2 disp5/60m 93 +0.0977 −0.1081 −0.4545 15.1%
V A1 disp4/60m 192 −0.0938 −0.3072 −0.6665 15.1%
V C1 coin-flip 192 +0.2473 +0.0339 −0.3254 25.5%
R (research benchmark, run 19) A2 282 +0.4101 +0.2800 +0.0608 28.7%
R A1 516 +0.2350 +0.1007 −0.1254 27.7%
R C1 512 +0.0517 −0.0831 −0.3100 25.4%

Criteria (A2 primary): net ≥ +0.05R FAIL (−0.108) · n ≥ 100 FAIL (93) · beats C1 net FAIL (control +0.034 > spec −0.108) · maxDD ≤ 2× control pass.

What the split actually said (the autopsy, not a renegotiation):

  1. The direction signal inverted. C1's coin-flip gross (+0.247R) beat both signed arms — A1 signed gross is negative while random direction on identical events/geometry is strongly positive. In 2023–2025 the event's directional information is absent or inverted; what remains is the known post-event vol/drift artifact, which random direction harvests and our signed entry does not. Echoes run 18's gold→BTC inversion: this effect family is regime-fragile in direction.
  2. Event frequency and geometry decayed. A2 rate fell ~52/y → ~37/y (n=93 < 100) and drag rose 0.130R → 0.206R (ATR% shrank relative to the flat round-trip cost) — the post-ETF compressed-vol regime the honest-prior section named as the expected failure mode.
  3. Year blocks: A2 gross +0.61 (2023) / −0.71 (2024) / −0.05 (2025H1) — the research signal's carry-over was brief and died.

Consequences (pre-committed): the candidate is dead as specified — research runs 2–3 of its registration may not be used to repair a Validation fail. The §5.6 Amendment A1 stands (it governed this attempt; it does not resurrect it). The displacement event class remains a research-split object for Edge Lab; any successor (regime-conditioned direction, vol-scaled costs, different harvest) is a NEW hypothesis requiring its own prereg and its own future look. Monte Carlo (Helm #32) is moot for this candidate.