Status: pre-registered 2026-09-07 (commit 37b4561), built (a7a8dfd) and run the same day; verdict: FAIL, 0 of 3 groups, and the exit fired 0 times on every symbol — it cannot fire on the arm base (see research/2026-09-07-entry5m-v8-arm-oppdiv-screen.md). Section 4 (the Pine input) is NOT built: the input would be empty in arm mode and a relabelling of the existing bias-end exit in divergence mode (controller ruling 2026-09-07). Parents: v4 2026-09-06-entry5m-v4-xau-arm-prereg.md (arm bias, XAUUSD only, FAIL), v7 2026-09-07-entry5m-v7-opptri-prereg.md (opposite-side triangle exit on v3, FAIL 0/3).
"Try take profit on divergence on opposite side." On the divergence-based bias (v3) an opposite-side fire already replaces the bias and closes the trade at that bar's close, so the rule is only new on the arm-triggered bias, where divergence fires are otherwise ignored. Decided with Daniel: test it on the arm-triggered bias on all four symbols.
| Question | Decision |
|---|---|
| Base | Extreme-arm bias (bias_source = "arm", arm_tier = "Extreme"): bias from the H1 extreme-triangle arm, alive until its oscillator range ends / opposite arm / 96 H1; stop at the running H1 range extreme (stop_mode = "h1_extreme"); fixed 3R target; no scale-out; no triangle exit |
| Trigger | A ZTD divergence fire on the bias timeframe on the side opposite to the trade (sigBull != 0 for a short trade, sigBear != 0 for a long trade), RDIV or HDIV, read on the H1 close |
| Combination | Whichever comes first: the 3R target, the stop, the bias end, or the opposite-side divergence. Exits only: the arm bias and pending orders carry on |
| Timing | The trade is closed at the close of the first 5m bar after that H1 close (same mechanics as the v7 triangle exit), reason opp_div |
| Instruments | EURUSD, GBPUSD, XAUUSD, EURJPY, five-year Tickstory data |
Entry5mConfig.exit_on_opp_div: bool = False (v1-v7 unchanged when False).BiasTracker.on_h1_close: when the flag is on and a bias is active, an ("opp_div", bias) event is emitted (after any opp_tri event, before the bar's end/start events) on an H1 close whose row has the opposite-side fire; both bias sources (in divergence mode it only relabels an exit the replacement would have made).opp_div with an open position, broker.close_at(i, t, close, "opp_div"); counter exit_opp_div.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 = "arm", arm_tier = "Extreme", scale_out_r = 0, exit_on_opp_tri = False, exit_on_opp_div = True, ZTD defaults, on the four symbols.
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 this variant is dead as specified; no parameter search follows. Sensitivity grid printed, NOT judged.
Reference line, declared now and NOT judged: the same cell with exit_on_opp_div = False (the arm base alone on the four symbols, never run before) is printed beside the judged cell so the exit's effect can be read. It is a reference, not a second hypothesis.
Expected side effects, stated now: opposite divergences are rarer than opposite triangles (a fire needs a full range-1/zero-touch/range-2 cycle), so fewer early exits than v7; the arm base on the pairs is unknown territory.
Regardless of the verdict, the indicator gets the input Exit on opposite-side HTF divergence (default off) with the same mechanics (hSigBull/hSigBear are already on the HTF surface), exit code 6 (opp divergence) in the data window, drawings and alerts; verified by a parity export with the input on (arm source).