CAT researchOverviewEURUSDGBPUSDXAUUSDGBPCADEURCADAUDJPYGBPJPYResearch notes

entry5m v8 (arm-triggered bias on four symbols + opposite-side divergence take-profit) pre-registered screen — run record

Pre-registration: entry5m/docs/2026-09-07-entry5m-v8-arm-oppdiv-prereg.md at commit 37b4561, committed before the code (a7a8dfd) and before this run. Code HEAD at run time: a7a8dfd. Parents: v4 (arm bias, XAUUSD only), v7 (opposite-triangle exit on v3).

Primary cell (unmodified): bias_source = "arm", arm_tier = "Extreme", stop_mode = "h1_extreme", target_mode = "fixed_r", target_r = 3.0, no scale-out, exit_on_opp_div = True; four symbols, same data windows as the v1 record. The pre-declared reference line (same cell with the exit off) is in 2026-09-07-entry5m-v8-arm-oppdiv-screen-ref.md.

Verdict (copied from the table below): FAIL overall: 0 of 3 groups (need 2) — group usd FAIL, group metal FAIL, group jpy FAIL.

The variant as specified is dead; no parameter search was run.

The rule never fired, and cannot on this base. exit_opp_div = 0 on all four symbols, so the judged cell and the reference line are identical to the last digit. The reason is structural, visible in the ZTD state machines: an arm bias lives only while its own oscillator range is open (z on the bias side of zero, curHi/curLo non-na) and ends at the zero touch; a divergence fire on the opposite side can only happen inside an open range on the other side of zero (range 2 of that side). The two conditions exclude each other bar by bar, so on the H1 close where an opposite fire could first appear the arm bias has already ended (range_end) and the trade is already closed at that bar's close as a bias-end exit. On the divergence-based bias, by contrast, the bias survives its range end and an opposite fire replaces it — which is why the request was already the behaviour there (prereg section 1). Net: an opposite-side divergence take-profit adds nothing on either bias source; on the arm base it is empty, on the divergence base it is the existing replacement rule.

What the run does show: the arm base on the four pairs, read for the first time (reference line, NOT judged, identical numbers):

  • EURUSD FAIL — 438 arm biases (438 ended at the range end, 0 by timeout, 7 triggers skipped); 2811 orders, 878 filled; 0 opposite-divergence exits. n 878 (ok), PF 1.04 / ex-outlier PF 1.02 (fail), expectancy 0.019 R (fail), best month share 52.2% (fail), halves 30.7 / -14.0 R (fail); win rate 46.2%, net R 16.7, max drawdown 29.4 R, average hold 65.8 bars.
  • GBPUSD FAIL — 399 arm biases (399 ended at the range end, 0 by timeout, 10 triggers skipped); 2501 orders, 755 filled; 0 opposite-divergence exits. n 755 (ok), PF 1.11 / ex-outlier PF 1.08 (fail), expectancy 0.054 R (ok), best month share 19.8% (ok), halves 24.0 / 16.9 R (ok); win rate 47.0%, net R 40.9, max drawdown 26.4 R, average hold 68.0 bars.
  • XAUUSD FAIL — 373 arm biases (373 ended at the range end, 0 by timeout, 17 triggers skipped); 2489 orders, 732 filled; 0 opposite-divergence exits. n 732 (ok), PF 0.83 / ex-outlier PF 0.81 (fail), expectancy -0.096 R (fail), best month share n/a, net R negative (fail), halves -16.1 / -54.5 R (fail); win rate 41.5%, net R -70.6, max drawdown 80.9 R, average hold 73.2 bars.
  • EURJPY FAIL — 379 arm biases (377 ended at the range end, 2 by timeout, 8 triggers skipped); 2617 orders, 799 filled; 0 opposite-divergence exits. n 799 (ok), PF 0.90 / ex-outlier PF 0.88 (fail), expectancy -0.056 R (fail), best month share n/a, net R negative (fail), halves -32.7 / -12.4 R (fail); win rate 43.6%, net R -45.1, max drawdown 55.0 R, average hold 61.2 bars.

Against the v3 divergence base on the same symbols (EURUSD +53.9 R PF 1.21, GBPUSD +19.6 R, XAUUSD −28.4 R, EURJPY −21.9 R): the arm trigger roughly doubles the trade count on every symbol, lifts GBPUSD (+40.9 R, PF 1.11, both halves positive, best month 19.8% — failing only PF and expectancy) and lowers EURUSD (+16.7 R, PF 1.04, second half negative); gold and EURJPY lose more. The 15m secondary run (2026-09-07-entry5m-v8-arm-oppdiv-screen-15m.md) fails 0 of 3.

The sensitivity block below is reported as required and is NOT judged.

entry5m screen tf=5m stop_mode=h1_extreme target_mode=fixed_r target_r=3.0 bias_source=arm scale_out_r=0.0 scale_out_frac=0.5 breakeven=True exit_opp_tri=False exit_opp_div=True symbols=EURUSD,GBPUSD,XAUUSD,EURJPY

  symbol      n    win%      netR     expR      PF    exPF      ddR     month   share%       h1R       h2R    bars  verdict
  EURJPY    799    43.6     -45.1   -0.056    0.90    0.88     55.0   2025-04        -     -32.7     -12.4    61.2     FAIL
  EURUSD    878    46.2      16.7    0.019    1.04    1.02     29.4   2022-11     52.2      30.7     -14.0    65.8     FAIL
  GBPUSD    755    47.0      40.9    0.054    1.11    1.08     26.4   2025-11     19.8      24.0      16.9    68.0     FAIL
  XAUUSD    732    41.5     -70.6   -0.096    0.83    0.81     80.9   2023-08        -     -16.1     -54.5    73.2     FAIL

bias / pullback funnel:
  EURJPY   biases=379  biases_RDIV=0  biases_HDIV=0  biases_ARM=379  bias_end_target=0  bias_end_contradiction=0  bias_end_timeout=2  bias_end_replaced=0  bias_end_range_end=377  bias_no_target=8  pullbacks_too_short=2269  pullbacks_qualifying=6431  rr_rejected=14  already_broken=591  skipped_in_position=3209  orders_placed=2617  cancel_extreme_taken=1191  cancel_expired=1  cancel_bias_end=9  cancel_replaced=617  filled=799  target_beyond_zero_touch=0  partial_exits=0  exit_opp_tri=0  exit_opp_div=0
  EURUSD   biases=438  biases_RDIV=0  biases_HDIV=0  biases_ARM=438  bias_end_target=0  bias_end_contradiction=0  bias_end_timeout=0  bias_end_replaced=0  bias_end_range_end=438  bias_no_target=7  pullbacks_too_short=2565  pullbacks_qualifying=7358  rr_rejected=14  already_broken=669  skipped_in_position=3864  orders_placed=2811  cancel_extreme_taken=1228  cancel_expired=0  cancel_bias_end=11  cancel_replaced=694  filled=878  target_beyond_zero_touch=0  partial_exits=0  exit_opp_tri=0  exit_opp_div=0
  GBPUSD   biases=399  biases_RDIV=0  biases_HDIV=0  biases_ARM=399  bias_end_target=0  bias_end_contradiction=0  bias_end_timeout=0  bias_end_replaced=0  bias_end_range_end=399  bias_no_target=10  pullbacks_too_short=2380  pullbacks_qualifying=6438  rr_rejected=9  already_broken=561  skipped_in_position=3367  orders_placed=2501  cancel_extreme_taken=1140  cancel_expired=1  cancel_bias_end=10  cancel_replaced=595  filled=755  target_beyond_zero_touch=0  partial_exits=0  exit_opp_tri=0  exit_opp_div=0
  XAUUSD   biases=373  biases_RDIV=0  biases_HDIV=0  biases_ARM=373  bias_end_target=0  bias_end_contradiction=0  bias_end_timeout=0  bias_end_replaced=0  bias_end_range_end=373  bias_no_target=17  pullbacks_too_short=2210  pullbacks_qualifying=6618  rr_rejected=8  already_broken=511  skipped_in_position=3610  orders_placed=2489  cancel_extreme_taken=1139  cancel_expired=2  cancel_bias_end=8  cancel_replaced=608  filled=732  target_beyond_zero_touch=0  partial_exits=0  exit_opp_tri=0  exit_opp_div=0

  FAIL  group usd (EURUSD, GBPUSD)
  FAIL  group metal (XAUUSD)
  FAIL  group jpy (EURJPY)
  FAIL  overall: 0 of 3 groups (need 2)
sensitivity (NOT judged): net R / PF / n per cell
cell                        EURJPY                  EURUSD                  GBPUSD                  XAUUSD
N=2 rr=1.0    -66.5   0.87    849      14.1   1.03    939      36.0   1.08    818     -74.6   0.84    785
N=2 rr=1.5    -66.5   0.87    849      14.1   1.03    939      36.0   1.08    818     -74.6   0.84    785
N=3 rr=1.0    -45.1   0.90    799      16.7   1.04    878      40.9   1.11    755     -70.6   0.83    732
N=3 rr=1.5    -45.1   0.90    799      16.7   1.04    878      40.9   1.11    755     -70.6   0.83    732
N=5 rr=1.0    -32.9   0.91    695      17.2   1.05    744      55.3   1.18    657     -57.3   0.83    635
N=5 rr=1.5    -32.9   0.91    695      17.2   1.05    744      55.3   1.18    657     -57.3   0.83    635