221c408ac7
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.
90 lines
3.9 KiB
Markdown
90 lines
3.9 KiB
Markdown
# 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 <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.
|