Architecture
The system flow at a glance — six modules, three Step Functions, autonomous parameter feedback. For per-module deep dives, see the per-repo READMEs at github.com/cipher813 .
System
Six modules communicating exclusively through S3 — research, predictor, executor, backtester, dashboard, and the data layer that feeds them.
flowchart LR
Data[Data<br/>prices · macro · features<br/>RAG corpus]
Research[Research<br/>6 sector teams + CIO + macro<br/>incl. LLM-as-judge]
Predictor[Predictor<br/>L1 momentum/vol GBMs + research calibrator<br/>+ L2 Ridge meta-learner]
Executor[Executor<br/>risk-gated sizing + intraday daemon]
Backtester[Backtester<br/>eval + parity + 4 config optimizers]
Dashboard[Dashboard<br/>nousergon.ai + console.nousergon.ai]
Data --> Research
Data --> Predictor
Research --> Predictor
Research --> Executor
Predictor --> Executor
Executor --> Backtester
Backtester -.config auto-apply.-> Research
Backtester -.config auto-apply.-> Predictor
Backtester -.config auto-apply.-> Executor
Data -.read-only.-> Dashboard
Research -.read-only.-> Dashboard
Predictor -.read-only.-> Dashboard
Executor -.read-only.-> Dashboard
Backtester -.read-only.-> Dashboard Step Function pipelines
Three orchestrated pipelines run on a fixed cadence. EventBridge fires the weekly + weekday triggers; daemon shutdown after the trading day fires the EOD pipeline (single authoritative path).
alpha-engine-saturday-pipeline
EventBridge cron(0 9 ? * SAT *) — Sat 09:00 UTC (Sat 02:00 AM PT)
flowchart LR
Trigger((Sat<br/>09:00 UTC)) --> P1
P1[DataPhase1<br/>EC2 SSM<br/>30 min] --> RAG
RAG[RAGIngestion<br/>EC2 SSM<br/>30 min] --> R
R[Research<br/>Lambda · 15 min<br/><i>incl. LLM-as-judge</i>] --> P2
P2[DataPhase2<br/>Lambda<br/>10 min] --> Train
Train[PredictorTraining<br/>EC2 spot<br/>90 min] --> BT
BT[Backtester<br/>EC2 spot · 120 min<br/><i>eval + parity + 4 optimizers</i>] --> Notify((SNS)) alpha-engine-weekday-pipeline
EventBridge cron(5 13 ? * MON-FRI *) — 6:05 AM PT
flowchart LR
Trigger((6:05 AM PT)) --> Inf
Inf[PredictorInference<br/>Lambda] --> Start
Start[StartExecutorEC2] --> Boot
Boot[Trading EC2 boots<br/>systemd] --> Plan
Plan[Executor Planner<br/>~6:15 AM PT] --> Daemon((Executor Daemon<br/>~6:20 AM PT)) The daemon runs through the trading day, executing urgent exits at open and timing entries via intraday triggers (pullback, VWAP, support, time-expiry). Daemon shutdown after close (~1:15 PM PT) triggers the EOD pipeline.
alpha-engine-eod-pipeline Triggered by daemon shutdown — single authoritative path, no redundant cron
flowchart LR
Trigger((Daemon shutdown<br/>~1:15 PM PT)) --> Post
Post[PostMarketData<br/>SSM on ae-trading<br/><i>EOD OHLCV → ArcticDB</i>] --> EOD
EOD[EODReconcile<br/>NAV · α · positions<br/>trades.db + EOD email] --> Stop((StopTradingInstance)) S3 data contracts
The wires between modules — every output is a named S3 path; every consumer reads on cold-start. Schema changes are additive only; path changes dual-write for at least a week to preserve consumers.
flowchart TB
subgraph Producers
D[Data]
R[Research]
P[Predictor]
E[Executor]
B[Backtester]
end
subgraph S3 ["s3://alpha-engine-research/"]
Sig["signals/{date}/signals.json"]
Pred["predictor/predictions/{date}.json"]
Trades["trades/eod_pnl.csv<br/>trades/trades_full.csv"]
Cfg["config/scoring_weights.json<br/>config/executor_params.json<br/>config/predictor_params.json<br/>config/research_params.json"]
Arc["ArcticDB universe library<br/>predictor/price_cache_slim/<br/>predictor/daily_closes/"]
end
D --> Arc
R --> Sig
P --> Pred
E --> Trades
B --> Cfg
Sig --> P
Sig --> E
Pred --> E
Cfg --> R
Cfg --> P
Cfg --> E
Arc --> P
Arc --> B
Arc --> E Autonomous feedback loop
What turns a static system into a learning one. The backtester evaluates the system's own outputs each week, runs parameter sweeps, validates on holdout, and writes four optimized configs back to S3 — Research / Predictor / Executor read on cold-start. The mechanism that makes Phase 3 alpha tuning a configuration flip rather than a code change.
flowchart LR
System[Live system outputs<br/>signals · predictions<br/>fills · P&L]
Eval[Backtester evaluator<br/>weekly]
Sweep[Parameter sweeps<br/>random search × Sharpe<br/>holdout validation]
Cfg[4 optimized configs → S3<br/>scoring weights<br/>executor params<br/>predictor veto<br/>research params]
Read[Research / Predictor / Executor<br/>read on cold-start]
System --> Eval
Eval --> Sweep
Sweep -- holdout pass --> Cfg
Cfg --> Read
Read -.next week's behavior delta.-> System