Files
aura-quadriga/docs/arc-1-breakout-trend.md
T
claude cdd4503164 research: Arc 1 — trend regime vs H1 breakout, campaign path, results page
Two std-vocabulary blueprints (bo_h1 donchian-style H1 breakout; bo_h1_trend
adds a post-latch EMA 12/48 regime gate). First real use of the campaign
path: process + campaign documents registered and run as executable intent
(screen 490d14df.., curves da886931.. with persisted taps).

Finding: the gate reshapes the R-distribution per instrument (GER40 flips
sign, EURUSD deteriorates); no deployable edge (best P(E[R]<=0)=0.08,
generalization floor negative, sign agreement 0/4, all gross of costs).

site/: build.py bakes a fully static index.html from the runs/ registry
(aura.css embedded verbatim, inline SVG, zero external requests);
adversarially verified — all baked figures re-derived from the registry.
2026-07-13 16:23:51 +02:00

3.1 KiB
Raw Blame History

Arc 1 — does a trend regime reshape the H1 breakout's R-distribution?

Date: 2026-07-13 Engine: aura @ 1ebb94c (release build) Results page: site/index.html (build: python3 site/build.py)

Hypothesis

Following the orthogonal confirm/refute research model: a lone signal is not expected to be profitable; the question is whether a conditioner B reshapes the R-distribution of a base signal A. Here A = an H1 donchian-style breakout (blueprints/bo_h1.json), B = an EMA(12)/EMA(48) trend regime that gates the held breakout state post-latch (blueprints/bo_h1_trend.json) — a held breakout is cut the moment the regime flips against it.

Method (campaign path, first real use)

Everything ran as registered research documents — no ad-hoc verb flags:

  • research/process-screen.json — sweep (deflated argmax on sqn_normalized) → 90/30-day rolling walk-forward refit → 1000-resample block-5 R-bootstrap pooled over WF OOS trades → cross-instrument generalize (expectancy_r).
  • research/campaign-arc1.json (id 490d14df…) — both variants × 4 instruments (GER40, US500, EURUSD, XAUUSD) × window 2018-01-01..2026-06-30, channel axes {24,48,96}², risk Vol{3, 2.0}, seed 0. 8 cells, 76 s wall.
  • research/campaign-arc1-curves.json (id da886931…) — both variants at default params, taps persisted (equity, exposure, r_equity) for the page.

No cost block: all R figures are gross (net == gross).

Findings

  1. The gate reshapes the R-distribution, instrument-dependently (pooled WF-OOS bootstrap, mean E[R] and P(E[R] ≤ 0)):
    • GER40 flips sign: 0.151 (P≤0 = 0.90) → +0.139 (P≤0 = 0.18)
    • US500 improves: +0.193 (0.10) → +0.205 (0.08)
    • EURUSD deteriorates sharply: 0.150 (0.88) → 0.204 (0.99)
    • XAUUSD roughly flat: +0.170 (0.14) → +0.124 (0.15) This is the conditional effect the research model looks for: B is not a uniform improvement, it is a per-instrument reshaping.
  2. No deployable edge. Best cell P(E[R] ≤ 0) ≈ 0.08 (US500 gated) — not significant against 8 comparisons; generalization worst-case is deeply negative for both variants with sign agreement 0/4; and all of it is gross of costs.
  3. Selection instability. The full-window IS argmax picks asymmetric channels (e.g. hi=96/lo=24) that wander across WF windows — the deflation and param-stability records show the screen overfitting the grid, which the WF/MC stages correctly deflate.

Verdict

Honest null on deployability; positive on the machinery and on the research question's shape: the conditional framing (B reshapes A) is measurable with the recorded artifacts alone (MC quantile bands per cell). Arc 2 candidates: a costed rerun (constant + vol-slippage cost blocks) to see what survives gross-to-net, an orthogonal conditioner (time-of-day / volatility tercile), or the same pair on coarser bars (H4).

Engine friction

None. The campaign path (process/campaign documents, three-tier validate, aura campaign run as executor, persist_taps traces) carried the whole arc on its first real use.