Trading Bot HQModels & runsTestsResearch

Pre-registration: mentor-btc-v1 — expansion+pullback long-only on BTCUSD

Date registered: 2026-07-22, before any test execution on the BTC research split. Lineage: mentor (Track R — derived from unverified source material; gates 0.1/0.2 open; no result of this run is evidence about the mentor's edge). Program rung R8 (docs/RESEARCH-PROGRAM-v1.0.md §7). Hypothesis inventory source: phase-2-formalization/mentor-trades/BTC-HISTORY-ANALYSIS-v1.0.md §3b/§4 (n=58 trade join) and TRADE-COMMENTARY-v1.0.md (B1–B8).

Scope declaration (split governance, Research Program §3): this run reads the Research split only — Binance BTCUSDT M1, 2017-08-17 → 2022-12-31. It does not touch Validation (2023-01-01 → 2025-06-30, 10-look budget intact) or Vault (2025-07-01 →). It is a research-split scan: unlimited looks, never citable as validation evidence, and it cannot pass Gate A by construction. Promotion to a Validation look requires the §5 bar afterward. Richard asked for "the full 9 years"; the frozen split governance is why this registration stops at 2022-12-31 — the remaining years are the budgeted evidence, spent deliberately or not at all.

Why the research split is genuinely out-of-sample for this spec: every threshold below was frozen from the mentor's 2026 trades. The research split ends three years earlier. Nothing in 2017–2022 was seen before writing this document (checked: no prior BTC run exists in the registry; the only BTC analyses to date are the 2026 mentor join and the 5-day spread preview).

Data

Binance spot BTCUSDT 1m klines (bot/data/binance/btcusdt-1m/), corpus 4,685,599 bars 2017-08-17 → 2026-07-20, 0.183% missing minutes (Research Program §3). This run's slice: 2017-08-17 → 2022-12-31. 2025+ µs-timestamp caveat does not apply to the slice. Volume present but unused (no volume rule was observable in the mentor data).

Cost model (frozen for this run; Helm #34 still open)

Per phase-3-cost-model/BTC-COST-PREVIEW-v1.md: Dukascopy BTC CFD spread floor $50 (0.0555% of price, flat by hour). Registered central case: round-trip cost = 0.0832% of entry price (spread + 0.5× spread slippage). Bounds reported alongside, decided by nothing: optimistic 0.0555%, stress 0.1664%. Swap/overnight: $0 (24/7 perpetual-style CFD placeholder; holds capped at 24h; flagged pessimism gap — real brokers charge daily swap on BTC CFDs; the 24h time-stop keeps exposure to it ≤ 1 night, and the Gate 0.2 CSV ask covers recovering his real swap).

Predicted drag (law validated 4×, COST-DRAG-FINDING-v1.md): mentor geometry 0.0832/0.37 = 0.225R; wide geometry 0.0832/1.10 = 0.076R.

Frozen rule spec

Signal evaluated at M5 closes (M5 = resampled M1). Long only (B1: direction is policy, not signal — REFUTED trend filters are not smuggled back in). One position at a time per arm; entry at the open of the next M1 bar after the signal close. All three conditions required:

  1. Expansion: ATR14(M5) > rolling 30-day median of ATR14 (min 5 days of history). [mentor-observed: true at 81% of his entries]
  2. Pullback: 0.30% ≤ (rolling-60-min-high − close)/close ≤ 1.00%. [his p25–p75: 0.33%–0.96%, rounded outward once, here, before any run]
  3. Session: signal-bar close hour ∈ [09:00, 16:00) UTC. [his P&L window]

Stops/exits per arm:

Arm Initial stop Exit rule
A1 0.37% below entry [his median SL] Trail: once high ≥ entry+1R, stop = max(so-far, highest-high-since-entry − 0.37% of entry) [his trailed-runner behavior]
A2 0.37% Fixed TP at entry+1R (control for H2)
A3 1.10% [the geometry the cost law demands for ≤0.05R-class drag, cost preview §"arithmetic"] Trail as A1 with 1.10% distance
A4 1.10% Fixed TP at entry+1R
A5 = A1 with no session filter (control for H3)

All arms: time-stop close after 24h if neither stop nor target hit. Fills at bar open/stop level (stop fills assume the stop price; gap-through fills at bar open — pessimism preserved). R-normalization: 1R = initial stop distance. Net = gross − registered round-trip cost.

Null (registered): frequency-matched random — A1's trade count, entry times drawn uniformly from flat in-session M5 closes (no conditions), A1 geometry and exits, 50 replicates, seed 20260722. Report median gross.

Regime blocks for sign-stability (report, and input to any later §5 promotion): 2017-08→12 · 2018 · 2019 · 2020 · 2021 · 2022. Pre-declared stability read: A1 gross > 0 in ≥ 4 of 6 blocks.

Registered hypotheses

Honest prior

A1/A2 net: expected FAIL — 0.225R drag exceeds the entire plausible gross range (0.05–0.15R); this was known before registration and is why A3/A4 exist. The live questions are H1's sign, whether A3 keeps gross positive at 3× stop distance (v2 measured that widening stops shrinks gross-per-R — it is NOT guaranteed), and sign-stability across the 2018/2022 bears given the spec is long-only. A plausible full outcome is: H1 holds in bull blocks and fails in bears — which would say the mentor's method is a bull-regime instrument and the long-only policy needs a regime condition in a new registration.

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

FAIL — H1 and H2 REFUTED, H3 held, H4 confirmed-by-construction. Research split 2017-08-17 → 2022-12-31, 2,817,999 M1 bars; 40,198 in-session signals. Artifacts: bot/reports/mentor-btc-v1/ (summary.json + per-arm trade CSVs); runner bot/scripts/run_mentor_btc_v1.py.

Arm n gross R net R (central) win worst
A1 trail 0.37% sess 11,836 −0.0166 −0.2415 48.4% −3.44R
A2 tp 0.37% sess 13,151 −0.0180 −0.2428 49.3% −3.44R
A3 trail 1.10% sess 3,921 −0.0072 −0.0828 50.5% −2.03R
A4 tp 1.10% sess 4,738 −0.0005 −0.0762 50.1% −2.03R
A5 trail 0.37% all-hours 36,091 −0.0405 −0.2654 48.2% −5.80R
Null (50 reps, A1 geometry) 11,836 median −0.0143, p95 +0.0009

Interpretation, within Track R limits: this refutes our mechanical formalization of the mentor's observable entry conditions as a standalone signal. It is not evidence about the mentor's own edge (n=58, unverified, discretionary, 2026-only): what his record has that this spec does not is structure-level stop selection (B4, 2/4 verified), discretionary regime conviction, and the re-entry loop (B2) — none of which are formalized yet. Combined with R2 (gold: gross +0.10R vs coin-flip −0.13R on the displacement/compression spec), the picture is consistent: the displacement-based mentor spec shows signal on gold; the pullback-condition transplant shows none on BTC. The signal, where it exists, is in the event definition R2 tested — not in the conditions the BTC screenshot made visible.

Decision tree from here (no new run without a new registration): (a) R7 S/R level engine (Helm #30) is now the highest-value mentor rung — B4 stop-structure is the one observable his record supports that nothing has tested; (b) transplant the R2 displacement spec to BTC as fable-mentor-internal-btc (new prereg) — it is the only mentor spec with demonstrated gross signal; (c) the Edge Lab (Research Program §4) proceeds independent of mentor lineage. Promotion bar not met ⇒ no Validation look is burned; budget remains 10 of 10.

Budget accounting

Research-split scan; hypotheses logged against the §3 budget: 6 (H1–H4 + null + stability read) toward the 2,000 lifetime cap. Experiment-ledger row to be written with the result (ledger table pending — recorded here and in Helm #33 until it lands). No parameter search of any kind is licensed by this document: the spec has zero free parameters. Any change after seeing results = new pre-registration.