Alpha-Online
系统手册

1. 数据接入层 ODS

从 Alpaca 增量拉取 K 线,质量校验后写入 kline_data,并补全行业分类供因子中性化使用。

作用:从 Alpaca 增量拉取 K 线,做质量校验后写入 kline_data;附带补全行业分类,供因子中性化使用。

源码地图

文件关键函数作用
src/ingestion/data_loader.pydownload_alpaca_bars_data / _fetch_alpaca_page分页增量拉取 Alpaca bars
validate_kline_data入库前质量校验
_process_and_store_dataUpsert 入库 + 原始 CSV 备份
src/ingestion/fetch_classification.pyfetch_one / upsert拉取并写入行业 / 板块分类
src/utils/database.pyget_sync_status / update_sync_status拉取水位线读写

已知问题与修复

无限拉取死循环(#19)

部分标的(MMC、CTRA)在 IEX 免费源无数据,朴素增量逻辑 if latest > last 会对它们无限重试,每次都从旧时间戳尝试补齐到今天。

解法sync_status 水位线表记录 last_checked_dateconsecutive_empty_days,连续 N 天空数据则标记停用并告警。

要点:增量同步的可靠性取决于异常路径的处理,而非正常路径的 > 比较。

量化要点

  • volume=0 & close>0 需区分「停牌」与「交易中断」,否则会导致 VWAP 计算失真并污染因子排名。
  • 原始输入必须按时间戳排序,否则所有时序因子直接报废。

当前状态

Alpaca 增量拉取 516 只标的,已上线,含质量校验与重试。

缺口 / TODO

  • 单源依赖 Alpaca,缺容灾 → 引入 Yahoo / AlphaVantage 作 data_loader.py 备用源(M6)。

On this page