Files
aura-quadriga/docs/arc-4-breadth-and-controls.md
claude ee1c15885b research: Arc 4 — breadth and beta controls; momentum candidate on FRA40
Runs the two surviving threads (H1 breakout, vol-normalized H1 momentum)
across the 21-instrument gapless universe under the wide-stop regimes,
beside an always-long beta control on the same matrix. The breakout dies
everywhere (beta on trending assets, significantly negative on FX);
momentum shows a one-sided positive cross-sectional tail with five
double-regime flags, of which FRA40 (both regimes) and NatGas (k6) beat
the no-signal baseline outright — the only control-beating cells of the
whole program. Includes the engine performance envelope (single run 2.97 s
vs Arc-0 ~3 s; 11-13 s/cell; executor fan-out findings refs
Brummel/Aura#268, data-gap abort refs Brummel/Aura#264).
2026-07-13 18:36:57 +02:00

97 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 23 — the H1 breakout (XAUUSD cell) and
vol-normalized H1 momentum (US500 cell) — run across every archive instrument
with gapless 20182026 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.780.81 at P 0.0020.003 vs candidate +0.120.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) | 1113 s | Arc 1: 9.5 s/cell (no cost nodes) — +1525 % 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 | 493495 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.