SPB Git

spb/wp40_uqo

Public MIT
5.1 KB · 57 lines markdown
1# docs/PROGRESS.md — phase journal (actual commands and results)23## Phase 0 — Audit (2026-11-02) — GATE PASSED4Plan: audit the UQO repository, FinData, hardware, competitors, literature and licensing; write the four audit documents.56Executed (laptop, 14:05–14:40 ET):7- Read `Recherche-UQO/README.md`, `HARMONISATION.md`, `_modele-working-paper/*`, WP 12/39/33 READMEs and `PROGRESS.md`.8  Result: WP 40 is free; conventions recorded in `docs/audit.md` §1.9- FinData: `fdq health`, `fdq datasets`, `GET /openapi.json` (saved), `GET /market/bars?format=arrow` (SPY, DST weekend),10  `GET /market/sessions` (SPY, Thanksgiving week 2024 → 211 expected bars on 11-29), `POST /exports` (SPY+QQQ Jan 2024:11  34 607 rows, 1.5 s, version 5162, SHA-256 recorded), `GET /query/views`, `GET /coverage/symbols`. Results in §2.12- Hardware: `sw_vers`, `sysctl`, `system_profiler SPDisplaysDataType`, `xcodebuild -version`, Metal device query13  program (`docs/evidence/` test), 29-node parallel SSH probe (22 reachable; files in `docs/evidence/nodes/`).14- Metal: trivial kernel compiled at runtime (34.6 ms) and executed (1 M squares, 0.029 ms GPU); `double` kernel rejected15  by both runtime and offline compilers; Metal Toolchain 27B47 downloaded (`xcodebuild -downloadComponent MetalToolchain`).16- Toolchain installs: `brew install eigen apache-arrow catch2 nlohmann-json ninja` (background), R17  `install.packages(c("highfrequency","rugarch","xts","lmtest"))` → highfrequency 1.0.3, rugarch 1.5.6, xts 0.14.318  (lmtest failed: Java runtime missing for a dependency; not needed), `uv venv --python 3.12` + pip install of the19  Python reference stack (versions in `docs/capabilities.md`).20- Literature: 39 key references resolved on Crossref (`docs/literature/crossref_resolved.json`); preprint hits were21  re-resolved to journal versions; three DOIs verified directly (Econometrica 2008 realized kernels, SPA 200922  pre-averaging, OUP 2010 semivariance). Still to resolve: Hansen–Lunde–Nason 2011 Econometrica MCS DOI; software23  citations (Arrow, Eigen, nanobind, Metal docs) to be added with URLs/versions.24- Legal: FirstRate private-use license (no redistribution), MIT for RAID, Metal proprietary → optional backend.2526Gate memo (scope and feasibility): feasible on the laptop with the measured toolchain; FP64-on-GPU impossible → FP3227strategy; FinData provides all Tier A inputs (1-minute OHLCV bars, versions, sessions, exports); no trade/quote data →28Tier C order-flow methods excluded; cluster usable for E7 with a static bundle; 7 nodes unreachable. Decisions D-001…D-010.2930## Phase 1 — Foundation (2026-11-02, 14:40–15:40 ET) — GATE PASSED31Plan: CMake/Ninja build, C++20 core types, CPU backend, data abstractions (calendar, bars, returns, aggregation),32Arrow/Parquet reader, OLS/robust covariance, realized measures, GARCH-family QML (needed by the backend contract),33Catch2 tests, nanobind Python package, CLI, docs, CI.3435Executed:36- `cmake --preset macos-release && cmake --build --preset macos-release` (Apple clang 21, Eigen 5.0.1 + Accelerate,37  Arrow 26.0.0, Catch2 3.16.1, nlohmann-json 3.12). Metal sources absent → the build reports "Metal backend sources not38  present yet (Phase 3)" and continues CPU-only (`raid devices` lists the CPU only).39- `ctest --preset macos-release` → **26/26 test cases, 314 assertions** (unit: core, calendar, stats, OLS,40  realized/GARCH; reference: statsmodels 0.15 OLS/HC0/HC3/HAC/cluster at 1e−9, scipy t p-values at 1e−12,41  exchange_calendars 4.13 XNYS 2000–2026 exact session/holiday/early-close sets, numpy realized truth at 1e−12, arch 8.042  GARCH/GJR/EGARCH/Student-t log-likelihood within 5e−4 and parameters within 5 % + 0.01, forecasts within 5 %).43- Python: `cmake -DRAID_BUILD_PYTHON=ON` builds `raid._core` (nanobind 3.1.0, Python 3.12); `pytest python/tests` →44  7 passed (OLS HC3 vs statsmodels, realized vs numpy, GARCH convergence, calendar, bar validation).45- Real-data integration (file not committed): `raid validate /tmp/raid-export-test.parquet` (SPY+QQQ 1m January 2024,46  FinData export v5162) → 21 sessions each, coverage 1.0 (391 regular bars incl. the 16:00 print), 0 duplicates,47  0 errors; `raid estimate realized … --backend cpu` → 21 sessions × 390 returns, mean RV(SPY) 2.71e−5, 0.25 ms.48- Bugs found and fixed during the phase (recorded for the paper's engineering section): thread-pool completion race49  (local mutex destroyed before the last job released it → SIGABRT under load); NLL rescaling sign; EGARCH ω50  wrongly log-transformed; `tgamma` overflow for ν > 340 (→ `lgamma`); fixture truth computed on unrounded prices.51- Environment manifest: `experiments/manifests/environment_<host>.json` via `scripts/record_environment.sh`.52- Repository: bare `gitsrv:srv/git/wp40_uqo.git` created with the SPB Git post-receive hook; `origin` set; pushed.5354Gate evidence: clean build on the macOS preset, all tests green, docs (`docs/architecture/overview.md`,55`docs/methods/registry.md`, `docs/api/cpp.md`, README) written. Open items carried to later phases: `bars.aggregate`56vs FinData derived 5m (Phase 2), GARCH backcast option (Phase 4), HAR/bootstrap (Phase 4), Metal (Phase 3).57
Files · 114c1f28e7a32db3097a169b3ffc45c8b166be67
Menu

Theme