QMT Python API
xtdata-行情模块
概述
xtdata是xtquant库中提供行情相关数据的模块,本模块旨在提供精简直接的数据满足量化交易者的数据需求,作为python库的形式可以被灵活添加到各种策略脚本中。
主要提供行情数据(历史和实时的K线和分笔)、财务数据、合约基础信息、板块和行业分类信息等通用的行情数据。
运行逻辑
xtdata提供和MiniQmt的交互接口,本质是和MiniQmt建立连接,由MiniQmt处理行情数据请求,再把结果回传返回到python层。使用的行情服务器以及能获取到的行情数据和MiniQmt是一致的,要检查数据或者切换连接时直接操作MiniQmt即可。
对于数据获取接口,使用时需要先确保MiniQmt已有所需要的数据,如果不足可以通过补充数据接口补充,再调用数据获取接口获取。
对于订阅接口,直接设置数据回调,数据到来时会由回调返回。订阅接收到的数据一般会保存下来,同种数据不需要再单独补充。
接口说明
提示
该函数属于订阅函数,非VIP用户限制订阅数量
VIP用户支持全推市场指定周期K线
VIP用户权限请参考vip-行情用户优势对比
订阅单股行情 - subscribe_quote
原型
1
xtdata.subscribe_quote(stock_code, period='1d', start_time='', end_time='', count=0, callback=None)释义
- 订阅单股的行情数据,返回订阅号
- 数据推送从callback返回,数据类型和period指定的周期对应
- 数据范围代表请求的历史部分的数据范围,数据返回后会进入缓存,用于保证数据连续,通常情况仅订阅数据时传count = 0 即可
参数
| 字段名 | 数据类型 | 解释 |
|---|---|---|
stockcode | string | 股票代码,'stkcode.market',如'600000.SH' |
period | string | K线周期类型 |
start_time | string | 起始时间 |
end_time | string | 结束时间 |
callback | function | 指定推送行情的回调函数 |
- 回调定义形式为on_data(datas),回调参数datas格式为 { stock_code : [data1, data2, ...] }
返回值
int: 每个标的对应的订阅号,订阅成功返回大于0,失败返回-1
该函数是用于订阅行情函数,函数本身不直接返回行情数据
示例
1
from xtquant import xtdata2
3
import time4
5
def f(datas):6
# 使用回调函数时,传进来的是单条的字典嵌套数据,key为标的code7
for stock_code in datas:8
print(stock_code, datas[stock_code])9
10
stock_list = xtdata.get_stock_list_in_sector("沪深300")11
12
period = "5m"13
14
# # 方式一,在回调函数中处理数据15
# for i in stock_list:16
# xtdata.subscribe_quote(i, period = period , count = -1, callback = f)17
# print("done")18
19
# ------------------------------ #20
# 方式二,在循环中处理数据21
for i in stock_list:22
xtdata.subscribe_quote(i, period = period , count = -1)23
24
while 1:25
data = xtdata.get_market_data_ex([],stock_list,period = "30m")26
print(data["000001.SZ"].tail())27
time.sleep(3)28
29
xtdata.run()30
订阅全推行情 - subscribe_whole_quote
原型
1
xtdata.subscribe_whole_quote(code_list, callback=None)参数
| 字段名 | 数据类型 | 解释 |
|---|---|---|
code_list | list | 代码列表,支持传入市场代码或合约代码两种方式 传入市场代码代表订阅全市场,示例: ['SH', 'SZ'] 传入合约代码代表订阅指定的合约,示例: ['600000.SH', '000001.SZ'] |
callback | function | 指定推送行情的回调函数 |
- 回调定义形式为on_data(datas),回调参数datas格式为 { stock1 : data1, stock2 : data2, ... }
返回值
int: 本次订阅的订阅号,订阅成功返回大于0,失败返回-1
该函数是用于订阅行情函数,函数本身不直接返回行情数据
示例
1
from xtquant import xtdata2
3
import time4
5
def f(datas):6
# 使用回调函数时,传进来的是单条的字典嵌套数据,key为标的code7
for stock_code in datas:8
print(stock_code, datas[stock_code])9
10
11
# stock_list = ["SH","SZ"] # 取指定市场12
13
stock_list = ["000001.SZ","000002.SZ"] # 取部分14
15
xtdata.subscribe_whole_quote(stock_list,f)16
17
xtdata.run()