# 接口概述 # 运行逻辑 xtdata提供和MiniQmt的交互接口,本质是和MiniQmt建立连接,由MiniQmt处理行情数据请求,再把结果回传返回到python层。使用的行情服务器以及能获取到的行情数据和MiniQmt是一致的,要检查数据或者切换连接时直接操作MiniQmt即可。 对于数据获取接口,使用时需要先确保MiniQmt已有所需要的数据,如果不足可以通过补充数据接口补充,再调用数据获取接口获取。 对于订阅接口,直接设置数据回调,数据到来时会由回调返回。订阅接收到的数据一般会保存下来,同种数据不需要再单独补充。 # 接口分类 - 行情数据(K线数据、分笔数据,订阅和主动获取的接口)
- 功能划分(接口前缀)
- subscribe_ / unsubscribe_ 订阅/反订阅
- get_ 获取数据
- download_ 下载数据
- 常见用法
- level1数据的历史部分用
download_history_data 补充,实时部分用subscribe_XXX 订阅,使用get_XXX 获取 - level2数据实时部分用
subscribe_XXX 订阅,用get_l2_XXX 获取。level2函数无历史数据存储,跨交易日后数据清理
- 财务数据
- 合约基础信息
- 基础行情数据板块分类信息等基础信息
# 常用类型说明 - stock_code - 合约代码
- 格式为
code.market ,例如000001.SZ 600000.SH 000300.SH
- period - 周期,用于表示要获取的周期和具体数据类型
- level1数据
tick - 分笔数据 1m - 1分钟线 5m - 5分钟线 1d - 日线
- level2数据
l2quote - level2实时行情快照 l2order - level2逐笔委托 l2transaction - level2逐笔成交 l2quoteaux - level2实时行情补充(总买总卖) l2orderqueue - level2委买委卖一档委托队列
- 时间范围,用于指定数据请求范围,表示的范围是
[start_time, end_time] 区间(包含前后边界)中最后不多于count 个数据
- start_time - 起始时间,为空则认为是最早的起始时间
- end_time - 结束时间,为空则认为是最新的结束时间
- count - 数据个数,大于0为正常限制返回个数,等于0为不需要返回,-1为返回全部
- 通常以
[start_time = '', end_time = '', count = -1] 表示完整数据范围,但数据请求范围过大会导致返回时间变长,需要按需裁剪请求范围
- dividend_type - 除权方式,用于K线数据复权计算,对
tick 等其他周期数据无效
none 不复权 front 前复权 back 后复权 front_ratio 等比前复权 back_ratio 等比后复权
- 其他依赖库 numpy、pandas会在数据返回的过程中使用
- 本模块会尽可能减少对numpy和pandas库的直接依赖,以允许使用者在不同版本的库之间自由切换
- pandas库中旧的三维数据结构Panel没有被使用,而是以dict嵌套DataFrame代替(后续可能会考虑使用xarray等的方案,也欢迎使用者提供改进建议)
- 后文中会按常用规则分别简写为np、pd,如np.ndarray、pd.DataFrame
# 请求限制 - 全推数据是市场全部合约的切面数据,是高订阅数场景下的有效解决方案。持续订阅全推数据可以获取到每个合约最新分笔数据的推送,且流量和处理效率都优于单股订阅
- 单股订阅行情是仅返回单股数据的接口,建议单股订阅数量不超过50。如果订阅数较多,建议直接使用全推数据
- 板块分类信息等静态信息更新频率低,无需频繁下载,按周或按日定期下载更新即可
|