# Arc 4 — breadth and beta controls: what survives 21 instruments and a no-signal baseline? **Date:** 2026-07-13 **Engine:** aura @ `84e1075` (release build) **Campaigns:** `research/campaign-arc4-breadth-{bo-h1,mom-vnorm}.json`, `research/campaign-control-always-long{,-breadth}.json` ## Method The two threads that survived Arcs 2–3 — the H1 breakout (XAUUSD cell) and vol-normalized H1 momentum (US500 cell) — run across every archive instrument with gapless 2018–2026 m1 coverage (21 instruments: 4 Arc-1 originals + US30, NAS100, UK100, JPN225, HK50, FRA40, GBPUSD, USDJPY, AUDUSD, USDCAD, USDCHF, NZDUSD, EURAUD, XAGUSD, NatGas, BTCUSD, ETHUSD; Copper dropped — its archive is missing 2018-01..2018-10), under the two wide-stop regimes (vol{60, k6}, vol{60, k12}), slippage cost, Arc-1 pipeline. Beside them ran the **beta control**: a constant bias=+1 blueprint (no signal at all) on the same matrix. Every candidate cell is read against always-long on the same (instrument, regime): a "positive" that does not beat the no-signal baseline is long-beta in a trending market, not signal. ## Findings 1. **The breakout does not survive the control anywhere.** Its breadth flags (pooled WF-OOS gross, P(E[R]≤0) < 0.15: ETHUSD, JPN225, XAUUSD both regimes; XAGUSD, BTCUSD, US30 at k12) are all on assets that trended — and on the metals and crypto the always-long baseline crushes it (XAUUSD: control +0.78–0.81 at P 0.002–0.003 vs candidate +0.12–0.14 at P 0.08). FX is the mirror image: the breakout is significantly *negative* on EURUSD and EURAUD (P(≤0) up to 0.995). Verdict: the H1 channel breakout, in every variant this project has tried (trend gate, vol gate, H4 port, four stop regimes, costed and gross), is beta at best and anti-signal on FX. This thread is closed. 2. **Vol-normalized momentum shows a real cross-sectional lean.** 12 of 42 cells flag at P < 0.15 — five instruments flag at P < 0.05 in *both* regimes (USDJPY 0.000/0.010, ETHUSD 0.000/0.019, NatGas 0.017/0.020, FRA40 0.018/0.024, US500 0.036/0.044) — while the negative tail is empty (worst cell P = 0.845). Chance at this threshold across ~21 effective tries produces roughly one such pair, not five with a one-sided tail. 3. **Two momentum cells beat the no-signal baseline outright** — the only ones in the whole program: - **FRA40, both regimes:** candidate +0.140 (P 0.018) / +0.099 (P 0.024) vs always-long −0.065 (P 0.670) / +0.051 (P 0.368). On an index whose buy-and-hold R-stream is flat, the timing itself generates the expectancy. - **NatGas at k6:** +0.131 (P 0.017) vs +0.073 (P 0.338). The other flags (USDJPY, ETHUSD, US500, NatGas k12) are "mixed": more consistent than beta (lower P) but smaller per trade — with no benchmark-relative stage in the pipeline (Brummel/Aura#263) they are not distinguishable from diluted beta plus short-side noise. 4. **Classification: candidate, not edge.** The FRA40/NatGas result is gross of constant spread costs (slippage-only; per-instrument constant costs on a 21-instrument matrix are inexpressible, Brummel/Aura#260), the OOS bootstrap is gross-only (Brummel/Aura#259), and the effect is two instruments out of 21. What it has earned is a focused follow-up arc: per-instrument costed campaigns for the five double-flagged instruments, a long-only vs long-short decomposition (does the short side contribute?), and sensitivity outside the {24,72,120} grid. ## Performance (is the engine in its expected envelope?) All numbers from this session's serial campaign loops on a 24-core box, engine `84e1075` release: | workload | measured | baseline / expectation | |---|---|---| | single `aura run`, 8.5 y m1, GER40 | 2.97 s | Arc 0: "~3 s" ✓ | | campaign cell (9-member grid + 90/30 WF + 1000-resample MC) | 11–13 s | Arc 1: 9.5 s/cell (no cost nodes) — +15–25 % with cost model, linear across 16 campaigns ✓ | | FX cells vs index cells | ~2× | matches ~1.6× larger m1 files (tick density) ✓ | | 42-cell breadth campaign | 493–495 s | linear ✓ | | 42-cell one-member control | 98 s | streaming+WF dominates over member count | Not in the expected envelope, filed as engine findings: the executor averages ~14 of 24 cores with a thread count oscillating 1 ↔ 240 (unbounded per-sim fan-out bursts, multi-second 10-thread plateaus, single-threaded valleys — Brummel/Aura#268, with NFS/page-cache re-paging measured and ruled out: ~15 MB/s syscall reads vs ~73 KB/s on the wire, 1.4 GB archive in ~12 GB page cache). A 21-instrument campaign also aborts wholesale minutes into the run when one instrument has a data gap (Copper), which the data-free validate cannot catch — evidence attached to Brummel/Aura#264. ## Verdict The exploration closes honest: every breakout variant is dead (beta or anti-signal), four of six new families are nulls, and one family — vol-normalized H1 momentum — leaves with a genuine, replicated, control-beating candidate on FRA40 (and NatGas at k6) plus a one-sided positive tail across the universe. Next work, in order of information per compute: costed per-instrument reruns of the five double-flagged momentum cells; a short-side decomposition; then, only if both hold, parameter robustness beyond the coarse grid.