Status: pre-registered 2026-09-07 (commit 4cdbc60), run the same day (code 6801451); verdict: FAIL, 0 of 3 groups, all four symbols net-negative (see research/2026-09-07-entry5m-v10-h4bias-screen.md). Parent: v3 2026-09-06-entry5m-v3-fixed3r-prereg.md (H1 bias; FAIL 1/3, EURUSD alone: 415 trades net +53.9 R PF 1.21).
"Try v3 with H4 bias on all four symbols."
| Question | Decision |
|---|---|
| Base | v3 exactly: ZTD divergence fire as the bias, stop one tick beyond the HTF divergence extreme (stop_mode = "h1_extreme", which reads the bias timeframe's extreme whatever that timeframe is), fixed 3R target, no scale-out, no indicator exits |
| Bias timeframe | htf = "4h". ZTD runs on H4 bars aggregated from the 5m data with htf_offset_s = 3600 (TradingView's FX H4 bars open at 01:00, 05:00, ... UTC; the ZMS study used the same offset) |
| Timeout | timeout_h1 = 96 is defined in bias-timeframe bars and stays 96 (16 calendar days on H4 instead of 4 on H1); stated now, not tuned |
| Entry | Unchanged: 5m pullbacks, pivot N = 3, origin age 3, pending life 48 5m bars, min_rr = 1.0 (not binding under the fixed target) |
| Warm-up | ZTD's percentile windows need 2000 closed H4 bars (about 333 trading days), so no bias can fire in roughly the first year of each symbol's five years; the trade count is expected to be far below v3's and the 200-trade floor may not be reached. That is a property of the rule as specified, not a reason to change the window |
None in the rules. The screen CLI gains --htf (1h default, 4h) and --htf-offset-s (0 default; 3600 for this run), passed into Entry5mConfig.htf / htf_offset_s, which the runner already honours through build_htf.
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", target_mode = "fixed_r", target_r = 3.0, bias_source = "divergence", scale_out_r = 0, htf = "4h", htf_offset_s = 3600, ZTD defaults; EURUSD, GBPUSD, XAUUSD, EURJPY.
Criteria: the v1 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; at least two of the three groups usd/metal/jpy, GBPUSD net R not negative). A fail means the variant is dead as specified; no parameter search follows. Sensitivity grid printed, NOT judged. The 15m secondary run uses the same H4 bias.
Expected side effects, stated now: far fewer biases (H4 divergences are rarer and the first year is warm-up), wider stops in price terms (H4 extremes), longer holds, and a heavier weight of each trade in the statistics.
Daniel asked whether the H4 entries "even gave some minimum profit". Two reads on the same cell, reported and not judged: (1) the cell re-run with target_r = 1.0 and 0.5 (everything else identical); (2) the maximum favourable excursion (MFE) of every trade of the judged 3R run — the share reaching 0.25R, 0.5R, 1R, 2R, 3R before the exit. Neither changes the v10 verdict, and no cell from this read may be promoted to a hypothesis without its own pre-registration. Output: research/2026-09-07-entry5m-v10-h4bias-diagnostic.md.
Daniel asked what happens when the stop is widened to 1.5 times its distance. Read: the same H4 cell with stop_mult = 1.5 (stop one tick beyond entry +/- 1.5 x |HTF extreme - entry|; the pending order's cancel level moves to that widened level; risk, the target and every R figure are measured against the new stop), repeated for targets 3R, 1R and 0.5R (the 0.5R cell with min_rr = 0.5 as in addendum 1) plus the MFE/MAE distribution of the 3R trades. Reported beside addendum 1; not judged; no promotion to a hypothesis without its own pre-registration. Output: research/2026-09-07-entry5m-v10-h4bias-diagnostic-stop15.md.