Skip to content

行情数据 Schema

所有进入 TradingEngine 的价格数据都会被校验并转换成统一 schema。

执行层需要的字段

字段必需说明
symbol交易侧统一使用纯代码,例如 600519
date交易日期,转换为 pandas datetime
open开盘价
high最高价
low最低价
close收盘价
volume成交量
amount成交额
price当前价格;缺失时默认等于 close

TradingEngine.get_price_data() 会在边界再次调用 schema adapter。即使用户替换了 provider,只要返回字段不符合 schema,就会在进入执行层前直接报错。

数据源字段转换

转换发生在 jh_quant.trading.market_data.adapters.to_trading_price_frame()

来源字段trading 字段
ts_codesymbol
trade_datedate
volvolume
changechg
dt / datetimedate
latest / last_priceclose

TuShare 的 600519.SH 会在 trading schema 中规范为 600519。请求 TuShare 数据时,provider 会根据纯代码自动补 .SH.SZ.BJ

Provider 边界

允许依赖具体数据源的地方:

  • TuShareHistoricalBarProvider
  • AkShareHistoricalBarProvider
  • AkShareRealtimeQuoteProvider
  • XtQuantRealtimeQuoteProvider
  • 与数据查询直接相关的 loader 或 service API

不应该依赖具体数据源字段的地方:

  • TradingEngine
  • 策略信号聚合
  • 仓位计算
  • 风控规则
  • portfolio runtime
  • session cycle