Part of Nous Ergon — Autonomous Multi-Agent Trading System. Repo and S3 names use the underlying project name
alpha-engine.
Stacked meta-ensemble that predicts 21-day log-domain market-relative alpha (canonical_predicted_alpha field, post-2026-05-09 cutover) for each ticker. Three Layer-1 specialized models — LightGBM momentum, LightGBM volatility, and a research-score calibrator — feed a Layer-2 Ridge meta-learner alongside research-context and raw macro features. Outputs UP/FLAT/DOWN with a confidence score and a veto gate that blocks high-confidence DOWN entries.
System overview, Step Function orchestration, and module relationships live in
alpha-engine-docs. Code index lives inOVERVIEW.md.
- Stacked meta-ensemble — three Layer-1 specialized models (LightGBM momentum + LightGBM volatility + research-score calibrator) plus research-context and raw macro features feed a Layer-2 Ridge meta-learner. v3.0 architecture deployed 2026-04-01.
- Sector-neutral training — labels are
alpha = log(stock_21d_return) − log(sector_etf_21d_return)(canonical log-domain post-2026-05-09 cutover) with cross-sectional rank normalization and 5-fold walk-forward validation. Promotion gate requires both ensemble IC and per-component subsample IC to pass. - Daily inference — loads ensemble weights from S3, fetches prices (slim cache + daily_closes delta), recomputes features from scratch each morning so predictions shift even when the model is frozen between weekly retrains.
- Veto gate — high-confidence DOWN predictions override BUY signals from Research, gating the Executor against entering declining positions. Threshold is auto-tuned weekly by the Backtester.
- Named-baseline discipline — every Layer-1 component must clear an explicit named baseline before contributing to L2; the prior 4th L1 (regime classifier) was pruned 2026-04-16 after walk-forward validation showed sub-majority-class accuracy.
Predictor outputs are the quantitative layer on top of Research signals. Phase 2 contribution: every prediction is captured with its full feature vector, per-component L1 votes, L2 meta-learner score, confidence, and veto-gate decision. Per-component IC tracking lets the system tell whether a regression in ensemble IC is driven by one underperforming layer or by a regime shift across all of them. The substrate that lets Phase 3 retire or upgrade individual L1 components without destabilizing the stack.
flowchart LR
Prices[Prices · features<br/>ArcticDB universe] --> L1
Research[Research signals<br/>composite + sub-scores] --> L1
Macro[Macro context<br/>VIX · yields · breadth] --> L1
subgraph L1[Layer 1 — specialized models]
Mom[LightGBM<br/>momentum]
Vol[LightGBM<br/>volatility]
Cal[research-score<br/>calibrator]
end
L1 --> L2[Layer 2 — Ridge meta-learner<br/>combines L1 + research-context + raw macro]
L2 --> Out[predictions/{date}.json<br/>UP / FLAT / DOWN<br/>+ confidence + veto]
Veto gate fires when DOWN confidence exceeds the auto-tuned threshold; Executor honors the veto on its next planning cycle.
This repo is public. Hyperparameters, confidence thresholds, and tuned ensemble weights live in the private alpha-engine-config repo and are auto-applied weekly by the Backtester via s3://alpha-engine-research/config/predictor_params.json. Architecture and approach are public; specific values are private.
| Module | Repo |
|---|---|
| Executor | alpha-engine |
| Data | alpha-engine-data |
| Research | alpha-engine-research |
| Backtester | alpha-engine-backtester |
| Dashboard | alpha-engine-dashboard |
| Library | alpha-engine-lib |
| Docs | alpha-engine-docs |
MIT — see LICENSE.