DataFeedAdapter 规范草案¶
目标¶
- 统一外部数据源接入方式,降低“先 ETL 再回测”的门槛。
- 明确 schema、时区、企业行为字段,减少数据漂移。
- 为缓存目录和重建流程提供统一协议。
接口抽象¶
FeedSlice 字段:
- symbol
- start_time
- end_time
- timezone
最小 schema¶
- 索引:
DatetimeIndex - 必需列:
open high low close volume - 推荐列:
symbol - 可选列:
adj_factor dividend split
官方最小适配器(第一批)¶
CSVFeedAdapter- 输入:
path_template=".../{symbol}.csv" - 输出:标准 schema DataFrame
ParquetFeedAdapter- 输入:
path_template=".../{symbol}.parquet" - 输出:标准 schema DataFrame
实现位置: - feed_adapter.py
缓存规范 v0¶
- 根目录:
~/.akquant/feed_cache/ - 目录层级:
{adapter}/{symbol}/{freq}/ - 元数据文件:
meta.json adaptersymboltimezoneschema_hashgenerated_at
校验规则¶
- 校验索引是否单调递增。
- 校验 OHLCV 必需列是否完整。
- 校验重复时间戳与空值比例。
- 校验时区一致性。
迁移建议¶
- 现有
DataFrame/Dict/List[Bar]入口保持不变。 run_backtest后续增加feed_adapter=可选参数。- 适配器失败必须抛出结构化错误,包含
symbol/path/hint。