模块知识库/Vibe-Trading 量化交易智能体平台/多市场回测引擎(数据-信号-执行-优化)/多源行情数据加载器集合/编码规范
- 每个 loader 类以
@register 装饰器声明,并暴露 name、markets、requires_auth 三个类属性,供 registry 自动发现与路由。
fetch 返回值统一为 {symbol: pd.DataFrame} 字典,DataFrame 至少包含 open/high/low/close/volume 列,时间索引为交易日期。
- 对外部不稳定 API 的请求统一通过
base.retry_with_budget 包装,并传入显式的 transient 异常元组与单调时钟 deadline,避免无限重试。
- 免费/限频 provider 通过
_http.throttled_get 发起 HTTP 请求,并以 host_key 区分限速桶、用 min_interval 声明最小请求间隔。
- 可选的本地 parquet 缓存通过
base.cached_loader_fetch 包裹 fetch 逻辑,仅在 VIBE_TRADING_DATA_CACHE=true 且 end_date 已结算时生效,读写异常静默降级。
- 日期范围在进入 fetch 前调用
base.validate_date_range 做前置校验,OHLC 脏数据在 loader 边界通过 validate_ohlc 丢弃或告警。