From 221c408ac700564aa8a9de49dc7abb3dd61fe94b Mon Sep 17 00:00:00 2001 From: claude Date: Mon, 13 Jul 2026 15:13:50 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20Arc=200=20baseline=20=E2=80=94=20full?= =?UTF-8?q?=20research=20loop=20green=20from=20this=20project?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Scaffold -> run -> sweep -> walkforward -> mc -> generalize -> reproduce, all over real recorded data (GER40/US500/EURUSD/XAUUSD, 2018-2026 m1). Zero engine friction; reproduce re-derived 6/6 sweep members bit-identically. Engine: aura @ 1ebb94c. --- docs/arc-0-baseline.md | 89 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs/arc-0-baseline.md diff --git a/docs/arc-0-baseline.md b/docs/arc-0-baseline.md new file mode 100644 index 0000000..ce23adf --- /dev/null +++ b/docs/arc-0-baseline.md @@ -0,0 +1,89 @@ +# Arc 0 — baseline through the full research loop + +**Date:** 2026-07-13 +**Engine:** aura @ `1ebb94c` (release build) +**Project commit at run time:** `bc95526` (the `aura new` scaffold, untouched) + +## Purpose + +Prove that an external, data-only project carries the entire research loop — +scaffold → run → sweep → walkforward → mc → generalize → reproduce — on real +recorded data. Arc 0 is explicitly *not* edge-finding: the starter blueprint +(SMA 2/4 cross → bias) on minute bars is expected to be noise, and it is. +Every friction found here is an engine finding; Arc 0 found none. + +## Universe and window + +| instrument | pip (sidecar) | coverage used | +|---|---|---| +| GER40 | 1 | 2018-01-01 .. 2026-06-30 | +| US500 | 1 | 2018-01-01 .. 2026-06-30 | +| EURUSD | 0.0001 | 2018-01-01 .. 2026-06-30 | +| XAUUSD | 0.1 | 2018-01-01 .. 2026-06-30 | + +Window flags: `--from 1514764800000 --to 1782863999999` (Unix ms). Data root +is the built-in archive default; `Aura.toml` needs no `data` entry. + +## What ran (all from this project directory) + +```bash +aura sweep blueprints/signal.json --list-axes +# aura_quadriga_signal.fast.length:I64 default=2 +# aura_quadriga_signal.slow.length:I64 default=4 +# aura_quadriga_signal.bias.scale:F64 default=0.5 + +# baseline run, all four instruments (~3 s each, 8.5 y of m1 bars) +aura run blueprints/signal.json --real GER40 --from 1514764800000 --to 1782863999999 + +# sweep: bound-default overrides, 3x2 grid (1.9 s wall, 6 members) +aura sweep blueprints/signal.json --real GER40 --from ... --to ... \ + --axis aura_quadriga_signal.fast.length=2,4,8 \ + --axis aura_quadriga_signal.slow.length=16,32 --name arc0-sweep-ger40 + +# walkforward: 100 windows x 3 IS trials, deflation per window (5.8 s wall) +aura walkforward blueprints/signal.json --real GER40 --from ... --to ... \ + --axis aura_quadriga_signal.fast.length=2,4,8 --name arc0-wf-ger40 + +# mc R-bootstrap: 1000 resamples over the OOS R-sequence (7.8 s wall) +aura mc blueprints/signal.json --real GER40 --from ... --to ... \ + --axis aura_quadriga_signal.fast.length=2,4,8 --resamples 1000 + +# generalize: one candidate graded across the universe (5.3 s wall) +aura generalize blueprints/signal.json --real GER40,US500,EURUSD,XAUUSD \ + --axis aura_quadriga_signal.fast.length=8 --from ... --to ... --name arc0-generalize + +# registry + determinism +aura runs families # lists the recorded content ids +aura reproduce 6c20bf8d-0-GER40-w0-r0-s0-0 # 6/6 members bit-identical +``` + +## Headline results (noise, as expected) + +- Baseline expectancy_r per instrument: GER40 +0.0016, US500 −0.0164, + EURUSD −0.0143, XAUUSD −0.0149 (700–840k trades each — the m1 SMA cross + churns; conviction terciles and sqn_normalized ≈ 0). +- Walkforward stitched OOS: expectancy_r +0.0016 over 490k trades, + param_stability shows the IS winner wandering (fast.length mean 4.58, + p5=2, p95=8) — a textbook no-edge picture. +- MC R-bootstrap: P(E[R] ≤ 0) = 0.253 — indistinguishable from zero. +- Generalize (fast.length=8): sign_agreement 3/4, worst_case −0.0024 — + no candidate survives the floor, correctly. + +## Engine verdicts + +- Manifests are self-describing: swept axes + stop regime in `params`, + untouched bound values in `defaults`, per-instrument sidecar pip in the + broker label, engine and project commits stamped. +- Determinism holds from an external project: `reproduce` re-derived all + 6 sweep members bit-identically. +- Throughput: every verb over 8.5 years of m1 data finishes in single-digit + seconds on this box (sweep 527 % CPU, walkforward 1288 % — parallelism + across disjoint sims). +- Friction found: none. (One near-miss: the raw `runs/families.jsonl` + `family` field is a storage key, not the reproduce handle — the public + path is `aura runs families` → `aura reproduce `.) + +## Next + +Arc 1+ is real research over this universe (orthogonal confirm/refute +components, conditional R-curve shapes) — direction to be set per arc.