Status: pre-registered 2026-09-06 (commit 94a35ec), built (62fac0c) and run the same day; verdict: FAIL, 0 of 3 groups (see research/2026-09-06-entry5m-v2-h1stop-screen.md). Parent spec: 2026-09-06-entry5m-design.md (v1 FAILED, 0 of 3 groups; record research/2026-09-06-entry5m-screen.md).
"Change the stop from being the 5m pullback swing to the H1 high/low that gave the bias."
Decisions taken with Daniel before writing this:
| Question | Decision |
|---|---|
| Which H1 level | The range-2 extreme of the divergence (fCurB for a short, fCurU for a long), i.e. Bias.ext — the level ZTD draws the divergence line at |
| Does it move | Read at order placement; fixed for the life of that order and trade. A later ZTD extension does not move an open trade's stop |
| Pending-order cancel | The order is cancelled when price trades through the H1 extreme (the same level as the stop). The 5m pullback high no longer cancels anything |
| RR floor | Unchanged, min_rr = 1.0, measured against the new (wider) risk |
Everything else in the parent spec is unchanged: bias (section 4), pullback and entry (section 5 except the stop and cancel level), execution (section 6), report (section 7), data (section 3).
In PullbackScanner.order_for, with Entry5mConfig.stop_mode = "h1_extreme":
stop = bias.ext + tick, cancel level = bias.ext (order cancelled on high > bias.ext before the fill); entry, target and the already-broken check unchanged.stop = bias.ext - tick, cancel level = bias.ext (cancelled on low < bias.ext).risk = |stop - entry|; reward / risk < min_rr rejects as before. A na or wrong-side extreme rejects the order (counted as rr_rejected).stop_mode = "pullback" reproduces v1 exactly.
pivot_n = 3, min_pb_bars = 3, timeout_h1 = 96, min_rr = 1.0, pending_max_bars = 48, max_hold_bars = 0, stop_mode = "h1_extreme", ZTD defaults. Same instruments (EURUSD primary, GBPUSD same test, XAUUSD, EURJPY control), same five-year Tickstory data.
Criteria are the parent spec's section 8, verbatim: at least 200 trades; PF > 1.15 and ex-outlier PF > 1.0; expectancy > +0.05 R; best month <= 35% of net R; both calendar halves net-positive; on at least two of the three groups, GBPUSD net R not negative. A fail means this variant is dead as specified; no parameter search follows. The sensitivity grid (pivot_n in {2, 3, 5} x min_rr in {1.0, 1.5}) is printed and NOT judged.
Expected side effects, stated now so they are not read as surprises: the wider stop lowers position size per R, raises the reward-to-risk rejection count (targets nearer than the new risk), and should raise the win rate while lowering the average win in R. None of these change the criteria.