Date registered: 2026-07-21, before any test execution.
Lineage: mentor. The signal logic is unchanged from the v1 mentor-derived spec.
The three changes below are cost/data-hygiene corrections derived from our own
measurements (phase-3-cost-model/COST-DRAG-FINDING-v1.md) — instrument physics,
not trading signals. Disclosed cross-influence: the stop-floor idea was first
tested (and confirmed 12/12) in the external Donchian run; the mechanism (drag =
cost/stop) was measured on our own trades. No external entry/exit/signal rule
enters this spec.
Supersedes nothing. v1 (2026-07-21-expansion-pullback-dryrun.md) is frozen and
its result stands. This is a NEW spec version; the registry will hash it separately.
Program context: rung R1 of
phase-2-formalization/MENTOR-CRITIQUE-AND-IMPROVEMENT-v1.0.md.
Everything not listed here is byte-identical to the frozen v1 spec (same M5 construction, baseline, compression precondition, displacement test, body filter, H4 alignment, pullback confirmation, cancels, daily cap, sizing, fills).
baseline ≥ 1.0 pip. (v1 defect: a 0-pip 24h median made
range ≥ k × baseline trivially true on dead sessions.)stop_distance = max(structural_pullback_distance, floor_pips); the stop is
placed at entry_mid − direction × stop_distance. The target remains
tgt_mult × stop_distance of the actual (possibly floored) distance.
Sizing unchanged (1% of nominal 10k via stop distance).Coin-flip baseline control gets the identical treatment: same guarded and
rollover-excluded event set, and the same floor applied to its 0.5 × D stop.
| param | values |
|---|---|
| disp_mult | 3, 4, 5 |
| tgt_mult | 1.5, 2.5 |
| hold_max (min) | 15, 45 |
| h4_align | 0, 1 |
| floor_pips | 0, 5, 10 |
72 combos. floor_pips = 0 is the control arm (v1 geometry + hygiene fixes only),
so the floor's effect and the hygiene fixes' effect are separable after the fact.
Walk-forward 12-month IS / 3-month OOS rolling (harness default); IS selection =
best net expectancy with ≥ 20 IS trades. Instruments: GBPUSD (registered headline),
EURUSD (secondary), scored independently.
FAIL — most likely on criteria 1 and 4. Even a 10-pip floored stop carries ~0.2R drag on this instrument, and flooring mechanically shrinks gross-per-R while the exclusions shrink the sample (v1 had only 61 OOS trades before removing rollover events). The informative outcomes are the three hypotheses, plus the key program question: does gross expectancy survive the removal of degenerate events? If gross collapses toward zero, the v1 gross was an artifact and the XAUUSD transplant's prior drops sharply. If gross survives and net closes most of the gap to break-even, gold (R2) becomes the project's highest-value test.
This run consumes run 2 of 3 on the 2024–2026 GBPUSD/EURUSD segments (v1 consumed run 1). One run remains after this. Any rule or grid change after seeing results = new pre-registration. No re-runs of this spec.
floor_pips=0 alone does NOT reproduce
v1 — the guard and exclusion are always-on in v2 — but the v1 code path itself
is untouched and its tests must stay green).stop_floored (bool), rollover_excluded
events are simply absent, degenerate_baseline must now always be false.min_baseline_pips=1.0, exclude_utc_hours=(21,22), and the floor grid).GBPUSD: FAIL — stitched OOS 26 trades, net −0.472R, gross +0.121R,
win rate 30.8%, max DD −13.17R. Criteria: net ✗, beats baseline ✗ (−0.472 vs
−0.213), drawdown ✓ (13.17 ≤ 2 × 16.85), sample ✗ (26 < 100).
EURUSD: FAIL on sample size only — 6 trades, net +0.216R, gross +0.346R;
passes criteria 1–3 but six trades is statistical noise and is reported as such.
Reports: reports/review-expansion_v2.html, …_eur.html · registry
expansion_v2@671d0374, lineage mentor.
scripts/analyze_expansion_v2_h1.py →
reports/expansion-v2-h1-analysis.json): the 10-pip floor cut drag in
24/24 matched arms (median arm drag 0.401R → 0.251R); the 5-pip floor in
16/24. Gross fell in 16/24 (floor 10) and 8/24 (floor 5) — the floor trades
signal for cost, as predicted.spread ≤ m × session-normal median, plus a holiday calendar) belongs to a
future pre-registration.Mostly no. Selected-arm gross fell +0.976R → +0.121R, and across the full 72-arm grid the median OOS gross is ≈ −0.17R with 0 arms clearing +0.05R net. The large v1 gross was substantially an artifact of degenerate baselines and rollover-window events. What remains is a small, cost-crushed positive gross on the walk-forward-selected arms. Consequence for the program: the R2 (XAUUSD) transplant's prior weakens — but the instrument-mismatch argument (his docs claim gold/BTC, where displacement dwarfs fixed costs) is untouched, so R2 remains the decisive test.
Iteration budget: run 2 of 3 consumed on the 2024–2026 segments. One run remains. In-sample smoke tests: none beyond those disclosed in v1.