Files
claude 221c408ac7 docs: Arc 0 baseline — full research loop green from this project
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.
2026-07-13 15:13:50 +02:00

90 lines
3.9 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 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 (700840k 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 <family_id>`.)
## Next
Arc 1+ is real research over this universe (orthogonal confirm/refute
components, conditional R-curve shapes) — direction to be set per arc.