CAT researchOverviewEURUSDGBPUSDXAUUSDGBPCADEURCADAUDJPYGBPJPYResearch notes

entry5m v2 — H1-extreme stop: pre-registration

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).

1. The variant (Daniel, 2026-09-06)

"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).

2. Exact rule change

In PullbackScanner.order_for, with Entry5mConfig.stop_mode = "h1_extreme":

  • short: 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.
  • long: 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.

3. Primary cell (judged) and criteria

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.