全景与导航
Alpha-Online 系统架构总览:分层设计、三条核心不变量,以及手册阅读指引。
alpha-online 是一套从数据获取到模拟 / 实盘执行的个人量化闭环,基于 WorldQuant Alpha101,覆盖美股 NASDAQ 500+ 标的,日频。
本手册回答两个核心问题:每一层的职责与对应源码位置,以及各层设计决策的背景与已知问题的修复过程。
它适合谁
想看清一套量化系统「从 0 到 1」全貌的人;正在自建量化闭环、想少踩坑的人;以及把它当作一门工程化量化课程来学的人。指标均为特定参数下的局部拟合,非业绩承诺。
闭环全景
信号层 执行层 监控层
┌────────────────────┐ ┌──────────────────┐ ┌────────────────┐
│ 因子筛选 (IC/ICIR) │ │ Paper Trading │ │ 净值 / 持仓 │
│ 因子组合 (加权) │─────>│ Alpaca Trading │─────>│ 偏差检测 │
│ 截面排序 (Top N) │ │ SQLite 记录 │ │ 多端告警 │
└────────────────────┘ └──────────────────┘ └────────────────┘
^ ^
│ │
┌────────────────────┐ ┌──────────────────┐
│ 数据接入 (Alpaca) │ │ 截面回测引擎 │
│ 预处理 (returns) │ │ 绩效评估 │
│ 因子计算 (Alpha101) │ │ 风控规则 │
└────────────────────┘ └──────────────────┘
数据层 回测层数仓分层
全部数据落在单库 data/finance_data.db:
| 层 | 表 | 内容 | 写入方 |
|---|---|---|---|
| ODS | kline_data | 原始 OHLCV | ingestion/data_loader.py |
| DWD | processed_kline_data | returns / vwap / cap | processing/preprocessor.py |
| DWS | alpha_results | Alpha101 因子值 | factors/engine.py |
| ADS | target_positions · execution_log · daily_nav | 目标持仓 / 成交 / 净值 | execution/paper_trader.py · recorder.py |
| — | sync_status | 拉取水位线(防死循环) | utils/database.py |
三条贯穿全系统的不变量
违反任何一条,回测结果的可信度即不成立:
- 物理隔离未来 —— T 日信号只能基于 T-1 及更早的信息(回测
_shift_signals;实盘收盘后跑)。 - One Codebase —— 回测与实盘共用同一套数据清洗 / 因子 / 信号逻辑,所见即所得。
- 状态可恢复 —— 任何宕机 / 漏跑后,靠「目标持仓 − 实际持仓」的 Delta 对齐自动补平,绝不凭记忆。