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

64 lines
3.1 KiB
Markdown
Raw 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 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.