QMT Python API
股票数据
获取股票概况
包含股票的上市时间、退市时间、代码、名称、是否是ST等。
获取合约基础信息数据
该信息每交易日9点更新
内置Python
提示
旧版本客户端中,函数名为ContextInfo.get_instrumentdetail
调用方法
ContextInfo.get_instrument_detail(stockcode) 释义
根据代码获取合约详细信息
参数
| 字段名 | 数据类型 | 解释 |
|---|---|---|
stockcode | string | 标的名称,必须是 'stock.market' 形式 |
返回值
根据stockcode返回一个dict。该字典数据key值有:
| 名称 | 类型 | 描述 |
|---|---|---|
| ExchangeID | string | 合约市场代码 |
| InstrumentID | string | 合约代码 |
| InstrumentName | string | 合约名称 |
| ProductID | string | 合约的品种ID(期货) |
| ProductName | string | 合约的品种名称(期货) |
| ProductType | int | 合约的类型, 默认-1,枚举值可参考下方说明 |
| ExchangeCode | string | 交易所代码 |
| UniCode | string | 统一规则代码 |
| CreateDate | str | 创建日期 |
| OpenDate | str | 上市日期(特殊值情况见表末) |
| ExpireDate | int | 退市日或者到期日(特殊值情况见表末) |
| PreClose | float | 前收盘价格 |
| SettlementPrice | float | 前结算价格 |
| UpStopPrice | float | 当日涨停价 |
| DownStopPrice | float | 当日跌停价 |
| FloatVolume | float | 流通股本(单位:股。注意,部分低等级客户端中此字段为FloatVolumn) |
| TotalVolume | float | 总股本(单位:股。注意,部分低等级客户端中此字段为FloatVolumn) |
| LongMarginRatio | float | 多头保证金率 |
| ShortMarginRatio | float | 空头保证金率 |
| PriceTick | float | 最小价格变动单位 |
| VolumeMultiple | int | 合约乘数(对期货以外的品种,默认是1) |
| MainContract | int | 主力合约标记,1、2、3分别表示第一主力合约,第二主力合约,第三主力合约 |
| LastVolume | int | 昨日持仓量 |
| InstrumentStatus | int | 合约停牌状态(<=0:正常交易(-1:复牌);>=1停牌天数;) |
| IsTrading | bool | 合约是否可交易 |
| IsRecent | bool | 是否是近月合约 |
提示
字段OpenDate有以下几种特殊值: 19700101=新股, 19700102=老股东增发, 19700103=新债, 19700104=可转债, 19700105=配股, 19700106=配号 字段ExpireDate为0 或 99999999 时,表示该标的暂无退市日或到期日
字段ProductType 对于股票以外的品种,有以下几种值
国内期货市场:1-期货 2-期权(DF SF ZF INE GF) 3-组合套利 4-即期 5-期转现 6-期权(IF) 7-结算价交易(tas) 沪深股票期权市场:0-认购 1-认沽 外盘: 1-100:期货, 101-200:现货, 201-300:股票相关 1:股指期货 2:能源期货 3:农业期货 4:金属期货 5:利率期货 6:汇率期货 7:数字货币期货 99:自定义合约期货 107:数字货币现货 201:股票 202:GDR 203:ETF 204:ETN 300:其他
示例
# coding:gbkdef init(C): pass def handlebar(C): data = C.get_instrumentdetail("000001.SZ") print(data)原生Python
调用方法
from xtquant import xtdataxtdata.get_instrument_detail(stock_code)参数
| 名称 | 类型 | 描述 |
|---|---|---|
stock_code | string | 合约代码 |
返回值
- 一个字典, 有如下键值,找不到指定合约时返回
None:
| 名称 | 类型 | 描述 |
|---|---|---|
| ExchangeID | string | 合约市场代码 |
| InstrumentID | string | 合约代码 |
| InstrumentName | string | 合约名称 |
| ProductID | string | 合约的品种ID(期货) |
| ProductName | string | 合约的品种名称(期货) |
| ProductType | int | 合约的类型, 默认-1,枚举值可参考下方说明 |
| ExchangeCode | string | 交易所代码 |
| UniCode | string | 统一规则代码 |
| CreateDate | str | 创建日期 |
| OpenDate | str | 上市日期(特殊值情况见表末) |
| ExpireDate | int | 退市日或者到期日(特殊值情况见表末) |
| PreClose | float | 前收盘价格 |
| SettlementPrice | float | 前结算价格 |
| UpStopPrice | float | 当日涨停价 |
| DownStopPrice | float | 当日跌停价 |
| FloatVolume | float | 流通股本(单位:股。注意,部分低等级客户端中此字段为FloatVolumn) |
| TotalVolume | float | 总股本(单位:股。注意,部分低等级客户端中此字段为FloatVolumn) |
| LongMarginRatio | float | 多头保证金率 |
| ShortMarginRatio | float | 空头保证金率 |
| PriceTick | float | 最小价格变动单位 |
| VolumeMultiple | int | 合约乘数(对期货以外的品种,默认是1) |
| MainContract | int | 主力合约标记,1、2、3分别表示第一主力合约,第二主力合约,第三主力合约 |
| LastVolume | int | 昨日持仓量 |
| InstrumentStatus | int | 合约停牌状态(<=0:正常交易(-1:复牌);>=1停牌天数;) |
| IsTrading | bool | 合约是否可交易 |
| IsRecent | bool | 是否是近月合约 |
提示
字段OpenDate有以下几种特殊值: 19700101=新股, 19700102=老股东增发, 19700103=新债, 19700104=可转债, 19700105=配股, 19700106=配号 字段ExpireDate为0 或 99999999 时,表示该标的暂无退市日或到期日
字段ProductType 对于股票以外的品种,有以下几种值
国内期货市场:1-期货 2-期权(DF SF ZF INE GF) 3-组合套利 4-即期 5-期转现 6-期权(IF) 7-结算价交易(tas) 沪深股票期权市场:0-认购 1-认沽 外盘: 1-100:期货, 101-200:现货, 201-300:股票相关 1:股指期货 2:能源期货 3:农业期货 4:金属期货 5:利率期货 6:汇率期货 7:数字货币期货 99:自定义合约期货 107:数字货币现货 201:股票 202:GDR 203:ETF 204:ETN 300:其他
示例
from xtquant import xtdata # 输出平安银行信息的中文名称xtdata.get_instrument_detail("000001.SZ")获取板块成分股列表
调用方法
from xtquant import xtdataxtdata.get_stock_list_in_sector(sector_name)参数
| 名称 | 类型 | 描述 |
|---|---|---|
sector_name | string | 版块名称 |
返回
list
示例
from xtquant import xtdata# 获取沪深A股全部股票的代码xtdata.get_stock_list_in_sector("沪深A股")获取某只股票ST的历史
内置python
提示
- 本函数需要下载历史ST数据(过期合约K线),可通过
界面端数据管理 - 过期合约数据下载 - 该数据是VIP权限数据
原型
ContextInfo.get_his_st_data(stockcode)释义
获取某只股票ST的历史
参数
| 字段名 | 数据类型 | 解释 |
|---|---|---|
stockcode | string | 股票代码,'stkcode.market',如'000004.SZ' |
返回值
dict,st历史,key为ST,*ST,PT,历史未ST会返回{}
示例
# coding:gbkdef init(C): pass def handlebar(C): print(C.get_his_st_data('000004.SZ'))原生python
提示
- 获取该数据前需要先调用xtdata.download_his_st_data()进行数据下载
- 该数据是VIP权限数据
调用方法
from xtquant import xtdataxtdata.get_his_st_data(stock_code)参数
| 名称 | 类型 | 描述 |
|---|---|---|
stock_code | string | 股票代码 |
返回值
dict类型的st历史,key为ST,*ST,PT,历史未ST会返回{}
| 名称 | 类型 | 描述 |
|---|---|---|
| ST | list | ST时间段 |
| *ST | list | *ST时间段 |
| PT | list | PT时间段 |
示例
from xtquant import xtdataimport time# 下载市场历史ST情况xtdata.download_his_st_data() # 由于download_his_st_data是异步函数,需要确保下载完成 time.sleep(3) # 获取000004.SZ历史ST情况xtdata.get_his_st_data('000004.SZ')获取行情数据
交易类数据提供股票的交易行情数据,通过API接口调用即可获取相应的数据。
具体请查看API, 数据获取部分行情相关接口 数据获取函数。
| 名称 | 描述 |
|---|---|
| get_market_data | 获取历史数据与实时行情(包含tick数据),可查询多个标的多个数据字段,返回数据格式为 {field:DataFrame} |
| get_market_data_ex | 获取历史数据与实时行情(包含tick数据),可查询多个标的多个数据字段,返回数据格式为 {stock_code:DataFrame} |
| get_local_data | 获取历史数据(包含tick数据),可查询单个或多个标的多个数据字段,返回数据格式为 {stock_code:DataFrame} |
| get_full_tick | 获取最新的 tick 数据 |
| subscribe_whole_quote | 订阅多个标的实时tick数据 |
获取历史行情与实时行情
提示
在gmd系列函数中,历史行情需要从本地读取,所以若想取历史行情,需要先将历史行情下载到本地,而实时行情是从服务器返回的
所以,若需要历史行情,请先使用
界面端或者download_history函数进行下载;若需要最新行情,请向服务器进行订阅特别的,对于xtdata.get_market_data_ex来说,由于没有subscribe参数,需要在参数外先进行订阅(
subscribe_quote)才能获取最新行情对于同时获取历史和实时行情的情况,gmd系列函数会自动进行拼接
内置Python
调用方法
ContextInfo.get_market_data_ex( fields=[], stock_code=[], period='follow', start_time='', end_time='', count=-1, dividend_type='follow', fill_data=True, subscribe=True)释义
获取实时行情与历史行情数据
参数
| 名称 | 类型 | 描述 |
|---|---|---|
field | list | 数据字段,详情见下方field字段表 |
stock_list | list | 合约代码列表 |
period | str | 数据周期,可选字段为:"tick""1m"的整数倍周期"5m"的整数倍周期 "1d"的整数倍周期 |
start_time | str | 数据起始时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S,填""为获取历史最早一天 |
end_time | str | 数据结束时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S ,填""为截止到最新一天 |
count | int | 数据个数 |
dividend_type | str | 除权方式,可选值为'none':不复权'front':前复权'back':后复权 'front_ratio': 等比前复权'back_ratio': 等比后复权 |
fill_data | bool | 是否填充数据 |
subscribe | bool | 订阅数据开关,默认为True,设置为False时不做数据订阅,只读取本地已有数据。 |
field字段可选:
| field | 数据类型 | 含义 |
|---|---|---|
time | int | 时间 |
open | float | 开盘价 |
high | float | 最高价 |
low | float | 最低价 |
close | float | 收盘价 |
volume | float | 成交量 |
amount | float | 成交额 |
settle | float | 今结算 |
openInterest | float | 持仓量 |
preClose | float | 前收盘价 |
suspendFlag | int | 停牌 1停牌,0 不停牌 |
period周期为tick时,field字段可选:
| 字段名 | 数据类型 | 含义 |
|---|---|---|
time | int | 时间戳 |
stime | string | 时间戳字符串形式 |
lastPrice | float | 最新价 |
open | float | 开盘价 |
high | float | 最高价 |
low | float | 最低价 |
lastClose | float | 前收盘价 |
amount | float | 成交总额 |
volume | int | 成交总量(手) |
pvolume | int | 原始成交总量(未经过股手转换的成交总量)【不推荐使用】 |
stockStatus | int | 证券状态 |
openInterest | int | 若是股票,则openInt含义为股票状态,非股票则是持仓量openInt字段说明 |
transactionNum | float | 成交笔数(期货没有,单独计算) |
lastSettlementPrice | float | 前结算(股票为0) |
settlementPrice | float | 今结算(股票为0) |
askPrice | list[float] | 多档委卖价 |
askVol | list[int] | 多档委卖量 |
bidPrice | list[float] | 多档委买价 |
bidVol | list[int] | 多档委买量 |
返回值
- 返回dict { stock_code1 : value1, stock_code2 : value2, ... }
- value1, value2, ... :pd.DataFrame 数据集,index为time_list,columns为fields,可参考Bar字段
- 各标的对应的DataFrame维度相同、索引相同
示例
# coding:gbk def init(C): start_date = '20231001'# 格式"YYYYMMDD",开始下载的日期,date = ""时全量下载 end_date = "" period = "1d" need_download = 1 # 取数据是空值时,将need_download赋值为1,确保正确下载了历史数据 code_list = ["000001.SZ", "600519.SH"] # 股票列表 if need_download: # 判断要不要下载数据, gmd系列函数都是从本地读取历史数据,从服务器订阅获取最新数据 my_download(code_list, period, start_date, end_date) ############ 仅获取历史行情 ##################### subscribe = False # 设置订阅参数,使gmd_ex仅返回本地数据 count = -1 # 设置count参数,使gmd_ex返回全部数据 data1 = C.get_market_data_ex([],code_list,period = period, start_time = start_date, end_time = end_date,subscribe = subscribe) ############ 仅获取最新行情 ##################### subscribe = True # 设置订阅参数,使gmd_ex仅返回最新行情 count = 1 # 设置count参数,使gmd_ex仅返回最新行情数据 data2 = C.get_market_data_ex([],code_list,period = period, start_time = start_date, end_time = end_date,subscribe = subscribe, count = 1) # count 设置为1,使返回值只包含最新行情 ############ 获取历史行情+最新行情 ##################### subscribe = True # 设置订阅参数,使gmd_ex仅返回最新行情 count = -1 # 设置count参数,使gmd_ex返回全部数据 data3 = C.get_market_data_ex([],code_list,period = period, start_time = start_date, end_time = end_date,subscribe = subscribe, count = -1) # count 设置为-1,使返回值包含最新行情和历史行情 print(data1[code_list[0]].tail())# 行情数据查看 print(data2[code_list[0]].tail()) print(data3[code_list[0]].tail()) def handlebar(C): return def my_download(stock_list,period,start_date = '', end_date = ''): ''' 用于显示下载进度 ''' if "d" in period: period = "1d" elif "m" in period: if int(period[0]) < 5: period = "1m" else: period = "5m" elif "tick" == period: pass else: raise KeyboardInterrupt("周期传入错误") n = 1 num = len(stock_list) for i in stock_list: print(f"当前正在下载{n}/{num}") download_history_data(i,period,start_date, end_date) n += 1 print("下载任务结束") 原生Python
调用方法
from xtquant import xtdataxtdata.get_market_data_ex( field_list=[],# 字段 stock_list=[],# 合约代码列表 period='1d',# 数据周期——1m、5m、1d、tick start_time='',# 数据起始时间%Y%m%d或%Y%m%d%H%M%S end_time='',# 数据结束时间%Y%m%d或%Y%m%d%H%M%S count=-1, # 数据个数 dividend_type='none', # 除权方式 fill_data=True, # 是否填充数据)参数
| 名称 | 类型 | 描述 |
|---|---|---|
field | list | 数据字段,详情见下方field字段表 |
stock_list | list | 合约代码列表 |
period | str | 数据周期——1m、5m、1d、tick |
start_time | str | 数据起始时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S,填""为获取历史最早一天 |
end_time | str | 数据结束时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S ,填""为截止到最新一天 |
count | int | 数据个数 |
dividend_type | str | 除权方式 |
fill_data | bool | 是否填充数据 |
field字段可选:
| field | 数据类型 | 含义 |
|---|---|---|
time | int | 时间 |
open | float | 开盘价 |
high | float | 最高价 |
low | float | 最低价 |
close | float | 收盘价 |
volume | float | 成交量 |
amount | float | 成交额 |
settle | float | 今结算 |
openInterest | float | 持仓量 |
preClose | float | 前收盘价 |
suspendFlag | int | 停牌 1停牌,0 不停牌 |
period周期为tick时,field字段可选:
| 字段名 | 数据类型 | 含义 |
|---|---|---|
time | int | 时间戳 |
stime | string | 时间戳字符串形式 |
lastPrice | float | 最新价 |
open | float | 开盘价 |
high | float | 最高价 |
low | float | 最低价 |
lastClose | float | 前收盘价 |
amount | float | 成交总额 |
volume | int | 成交总量(手) |
pvolume | int | 原始成交总量(未经过股手转换的成交总量)【不推荐使用】 |
stockStatus | int | 证券状态 |
openInterest | int | 若是股票,则openInt含义为股票状态,非股票则是持仓量openInt字段说明 |
transactionNum | float | 成交笔数(期货没有,单独计算) |
lastSettlementPrice | float | 前结算(股票为0) |
settlementPrice | float | 今结算(股票为0) |
askPrice | list[float] | 多档委卖价 |
askVol | list[int] | 多档委卖量 |
bidPrice | list[float] | 多档委买价 |
bidVol | list[int] | 多档委买量 |
返回值
- period为
1m5m1dK线周期时- 返回dict { field1 : value1, field2 : value2, ... }
- value1, value2, ... :pd.DataFrame 数据集,index为stock_list,columns为time_list
- 各字段对应的DataFrame维度相同、索引相同
示例
from xtquant import xtdataimport time def my_download(stock_list:list,period:str,start_date = '', end_date = ''): ''' 用于显示下载进度 ''' import string if [i for i in ["d","w","mon","q","y",] if i in period]: period = "1d" elif "m" in period: numb = period.translate(str.maketrans("", "", string.ascii_letters)) if int(numb) < 5: period = "1m" else: period = "5m" elif "tick" == period: pass else: raise KeyboardInterrupt("周期传入错误") n = 1 num = len(stock_list) for i in stock_list: print(f"当前正在下载 {period} {n}/{num}") xtdata.download_history_data(i,period,start_date, end_date) n += 1 print("下载任务结束") def do_subscribe_quote(stock_list:list, period:str): for i in stock_list: xtdata.subscribe_quote(i,period = period) time.sleep(1) # 等待订阅完成 if __name__ == "__main__": start_date = '20231001'# 格式"YYYYMMDD",开始下载的日期,date = ""时全量下载 end_date = "" period = "1d" need_download = 1 # 取数据是空值时,将need_download赋值为1,确保正确下载了历史数据 code_list = ["000001.SZ", "600519.SH"] # 股票列表 if need_download: # 判断要不要下载数据, gmd系列函数都是从本地读取历史数据,从服务器订阅获取最新数据 my_download(code_list, period, start_date, end_date) ############ 仅获取历史行情 ##################### count = -1 # 设置count参数,使gmd_ex返回全部数据 data1 = xtdata.get_market_data_ex([],code_list,period = period, start_time = start_date, end_time = end_date) ############ 仅获取最新行情 ##################### do_subscribe_quote(code_list,period)# 设置订阅参数,使gmd_ex取到最新行情 count = 1 # 设置count参数,使gmd_ex仅返回最新行情数据 data2 = xtdata.get_market_data_ex([],code_list,period = period, start_time = start_date, end_time = end_date, count = 1) # count 设置为1,使返回值只包含最新行情 ############ 获取历史行情+最新行情 ##################### do_subscribe_quote(code_list,period) # 设置订阅参数,使gmd_ex取到最新行情 count = -1 # 设置count参数,使gmd_ex返回全部数据 data3 = xtdata.get_market_data_ex([],code_list,period = period, start_time = start_date, end_time = end_date, count = -1) # count 设置为1,使返回值只包含最新行情 print(data1[code_list[0]].tail())# 行情数据查看 print(data2[code_list[0]].tail()) print(data3[code_list[0]].tail()) 【🔔迅投研专属】获取股票历史涨跌停价格
原生Python
提示
获取该数据前需要先调用
xtdata.download_history_data进行下载,period参数选择"stoppricedata"该数据通过
get_market_data_ex接口获取,period参数选择"stoppricedata"若是只需要最新一天的涨跌停价格,可通过get_instrument_detail的
UpStopPrice和DownStopPrice字段获取该数据是VIP权限数据
调用方法
get_market_data_ex([],stock_list,period="stoppricedata",start_time = "", end_time = "")参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
field_list | list | 数据字段列表,传空则为全部字段 |
stock_list | list | 合约代码列表 |
period | string | 周期 |
start_time | string | 起始时间 |
end_time | string | 结束时间 |
count | int | 数据个数。默认参数,大于等于0时,若指定了 start_time,end_time,此时以 end_time 为基准向前取 count 条;若 start_time,end_time 缺省,默认取本地数据最新的 count 条数据;若 start_time,end_time,count 都缺省时,默认取本地全部数据 |
返回值
返回一个 {stock_code:pd.DataFrame} 结构的dict对象,默认的列索引为取得的全部字段. 如果给定了 fields 参数, 则列索引与给定的 fields 对应.
示例
from xtquant import xtdata stock_list = xtdata.get_stock_list_in_sector("沪深A股")[:5] # 下载涨跌停价格数据for i in stock_list: xtdata.download_history_data(i, 'stoppricedata', '', '') # 获取涨跌停价格数据data = xtdata.get_market_data_ex([], stock_list, 'stoppricedata', '', '') print(data) 【🔔迅投研专属】股票快照指标
提供标的的量比,涨速,换手率等数据
提示
- 通过指定period为
snapshotindex获取该数据 - 该数据为VIP 权限数据
- 获取时需要先通过subscribe_quote进行订阅
原生python
调用方法
xtdata.get_market_data_ex([],stock_list,period="snapshotindex",start_time = "", end_time = "")返回值
分两种,当使用gmd_ex函数获取时:
- 一个
{stock_code:pd.DataFrame}结构的dict对象,其中pd.DataFrame的结构为:index: 时间序列,str类型值columns: ['time', '量比', '1分钟涨速', '5分钟涨速', '3日涨幅', '5日涨幅', '10日涨幅', '3日换手', '5日换手', '10日换手']
当使用callback函数时:
- 一个
{stock_code:[{field1:values1,field2:values2,...}]}的dict嵌套对象
示例
from xtquant import xtdata def f(data): print(data) # 获取前需要先订阅,该数据通过指定period = 'snapshotindex'获取xtdata.subscribe_quote("000001.SZ",period = 'snapshotindex', count = -1,callback = f) data = xtdata.get_market_data_ex([],["000001.SZ"],period="snapshotindex",start_time = "", end_time = "",count = 10)print(data)涨跌停/集合竞价表现
原生python
提供开盘集合竞价成交量,收盘集合竞价成交量,炸板次数,涨停金额等数据
提示
- 通过指定period为
limitupperformance获取该数据 - 该数据为VIP 权限数据
- 获取历史数据时需要先通过[download_history_data]进行下载,实时数据通过subscribe_quote进行订阅
调用方法
xtdata.get_market_data_ex([],stock_list,period="limitupperformance",start_time = "", end_time = "")返回值
| 字段名 | 数据类型 | 含义 |
|---|---|---|
| time | int | 时间戳 |
| openVol | int | 开盘集合竞价的成交量 |
| closeVol | int | 收盘集合竞价的成交量 |
| finalVol | int | 盘后定价的成交量 |
| startUp | int | 涨停开始时间 |
| endUp | int | 涨停结束时间 |
| breakUp | int | 炸板次数 |
| upAmount | float | 涨停金额 |
| startDn | int | 跌停开始时间 |
| endDn | int | 跌停结束时间 |
| breakDn | int | 开板次数 |
| dnAmount | float | 跌停金额 |
| direct | int | 涨跌方向 0-无 1-涨停 2-跌停 |
| sealVolRatio | float | 封成比 |
| sealFreeRatio | float | 封流比 |
| bidPreRatio | float | 竞昨比 |
| sealCount | int | 几板 |
| sealDays | int | 几天 |
| sealBreak | int | 封板中断天数 |
示例
from xtquant import xtdata def f(data): print(data) period = "limitupperformance"stock = "000001.SZ"ls = [stock]xtdata.download_history_data2(ls,period = period) # 下载历史数据 # 获取前需要先订阅,该数据通过指定period = 'limitupperformance'获取xtdata.subscribe_quote(stock,period = 'limitupperformance', count = -1,callback = f) data = xtdata.get_market_data_ex([],[stock],period="limitupperformance",start_time = "", end_time = "",count = 10)print(data)获取股票资金流向数据
获取一只或者多只股票在一个时间段内的资金流向数据
提示
1.该数据通过get_market_data和get_market_data_ex接口获取,period参数选择transactioncount1d 或者 transactioncount1m
2.获取历史数据前需要先用download_history_data下载历史数据
3.VIP 权限数据
内置python
原型
# 逐笔成交统计日级C.get_market_data_ex([],stock_list,period="transactioncount1d",start_time = "", end_time = "")# 逐步成交统计1分钟级C.get_market_data_ex([],stock_list,period="transactioncount1m",start_time = "", end_time = "")参数
除period参数需指定为transactioncount1d 或者 transactioncount1m外,其余参数与ContextInfo.get_market_data_ex一致
返回值
- 返回dict { stock_code1 : value1, stock_code2 : value2, ... }
- value1, value2, ... :pd.DataFrame 数据集,index为time_list,columns为fields
提示
特大单:成交金额大于或等于100万元或成交量大于或等于5000手
大单:成交金额大于或等于20万元或成交量大于或等于1000手
中单:成交金额大于或等于4万元或成交量大于或等于200手
小单:其它为小单
| 字段名 | 数据类型 | 解释 |
|---|---|---|
| time | int | 时间戳 |
| bidNumber | int | 主买单总单数 |
| offNumber | int | 主卖单总单数 |
| ddx | float | 大单动向 |
| ddy | float | 涨跌动因 |
| ddz | float | 大单差分 |
| netOrder | int | 净挂单量 |
| netWithdraw | int | 净撤单量 |
| withdrawBid | int | 总撤买量 |
| withdrawOff | int | 总撤卖量 |
| bidNumberDx | int | 主买单总单数增量 |
| offNumberDx | int | 主卖单总单数增量 |
| transactionNumber | int | 成交笔数增量 |
| bidMostAmount | float | 主买特大单成交额 |
| bidBigAmount | float | 主买大单成交额 |
| bidMediumAmount | float | 主买中单成交额 |
| bidSmallAmount | float | 主买小单成交额 |
| bidTotalAmount | float | 主买累计成交额 |
| offMostAmount | float | 主卖特大单成交额 |
| offBigAmount | float | 主卖大单成交额 |
| offMediumAmount | float | 主卖中单成交额 |
| offSmallAmount | float | 主卖小单成交额 |
| offTotalAmount | float | 主卖累计成交额 |
| unactiveBidMostAmount | float | 被动买特大单成交额 |
| unactiveBidBigAmount | float | 被动买大单成交额 |
| unactiveBidMediumAmount | float | 被动买中单成交额 |
| unactiveBidSmallAmount | float | 被动买小单成交额 |
| unactiveBidTotalAmount | float | 被动买累计成交额 |
| unactiveOffMostAmount | float | 被动卖特大单成交额 |
| unactiveOffBigAmount | float | 被动卖大单成交额 |
| unactiveOffMediumAmount | float | 被动卖中单成交额 |
| unactiveOffSmallAmount | float | 被动卖小单成交额 |
| unactiveOffTotalAmount | float | 被动卖累计成交额 |
| netInflowMostAmount | float | 净流入超大单成交额 |
| netInflowBigAmount | float | 净流入大单成交额 |
| netInflowMediumAmount | float | 净流入中单成交额 |
| netInflowSmallAmount | float | 净流入小单成交额 |
| bidMostVolume | int | 主买特大单成交量 |
| bidBigVolume | int | 主买大单成交量 |
| bidMediumVolume | int | 主买中单成交量 |
| bidSmallVolume | int | 主买小单成交量 |
| bidTotalVolume | int | 主买累计成交量 |
| offMostVolume | int | 主卖特大单成交量 |
| offBigVolume | int | 主卖大单成交量 |
| offMediumVolume | int | 主卖中单成交量 |
| offSmallVolume | int | 主卖小单成交量 |
| offTotalVolume | int | 主卖累计成交量 |
| unactiveBidMostVolume | int | 被动买特大单成交量 |
| unactiveBidBigVolume | int | 被动买大单成交量 |
| unactiveBidMediumVolume | int | 被动买中单成交量 |
| unactiveBidSmallVolume | int | 被动买小单成交量 |
| unactiveBidTotalVolume | int | 被动买累计成交量 |
| unactiveOffMostVolume | int | 被动卖特大单成交量 |
| unactiveOffBigVolume | int | 被动卖大单成交量 |
| unactiveOffMediumVolume | int | 被动卖中单成交量 |
| unactiveOffSmallVolume | int | 被动卖小单成交量 |
| unactiveOffTotalVolume | int | 被动卖累计成交量 |
| netInflowMostVolume | int | 净流入超大单成交量 |
| netInflowBigVolume | int | 净流入大单成交量 |
| netInflowMediumVolume | int | 净流入中单成交量 |
| netInflowSmallVolume | int | 净流入小单成交量 |
| bidMostAmountDx | float | 主买特大单成交额增量 |
| bidBigAmountDx | float | 主买大单成交额增量 |
| bidMediumAmountDx | float | 主买中单成交额增量 |
| bidSmallAmountDx | float | 主买小单成交额增量 |
| bidTotalAmountDx | float | 主买累计成交额增量 |
| offMostAmountDx | float | 主卖特大单成交额增量 |
| offBigAmountDx | float | 主卖大单成交额增量 |
| offMediumAmountDx | float | 主卖中单成交额增量 |
| offSmallAmountDx | float | 主卖小单成交额增量 |
| offTotalAmountDx | float | 主卖累计成交额增量 |
| unactiveBidMostAmountDx | float | 被动买特大单成交额增量 |
| unactiveBidBigAmountDx | float | 被动买大单成交额增量 |
| unactiveBidMediumAmountDx | float | 被动买中单成交额增量 |
| unactiveBidSmallAmountDx | float | 被动买小单成交额增量 |
| unactiveBidTotalAmountDx | float | 被动买累计成交额增量 |
| unactiveOffMostAmountDx | float | 被动卖特大单成交额增量 |
| unactiveOffBigAmountDx | float | 被动卖大单成交额增量 |
| unactiveOffMediumAmountDx | float | 被动卖中单成交额增量 |
| unactiveOffSmallAmountDx | float | 被动卖小单成交额增量 |
| unactiveOffTotalAmountDx | float | 被动卖累计成交额增量 |
| netInflowMostAmountDx | float | 净流入超大单成交额增量 |
| netInflowBigAmountDx | float | 净流入大单成交额增量 |
| netInflowMediumAmountDx | float | 净流入中单成交额增量 |
| netInflowSmallAmountDx | float | 净流入小单成交额增量 |
| bidMostVolumeDx | int | 主买特大单成交量增量 |
| bidBigVolumeDx | int | 主买大单成交量增量 |
| bidMediumVolumeDx | int | 主买中单成交量增量 |
| bidSmallVolumeDx | int | 主买小单成交量增量 |
| bidTotalVolumeDx | int | 主买累计成交量增量 |
| offMostVolumeDx | int | 主卖特大单成交量增量 |
| offBigVolumeDx | int | 主卖大单成交量增量 |
| offMediumVolumeDx | int | 主卖中单成交量增量 |
| offSmallVolumeDx | int | 主卖小单成交量增量 |
| offTotalVolumeDx | int | 主卖累计成交量增量 |
| unactiveBidMostVolumeDx | int | 被动买特大单成交量增量 |
| unactiveBidBigVolumeDx | int | 被动买大单成交量增量 |
| unactiveBidMediumVolumeDx | int | 被动买中单成交量增量 |
| unactiveBidSmallVolumeDx | int | 被动买小单成交量增量 |
| unactiveBidTotalVolumeDx | int | 被动买累计成交量增量 |
| unactiveOffMostVolumeDx | int | 被动卖特大单成交量增量 |
| unactiveOffBigVolumeDx | int | 被动卖大单成交量增量 |
| unactiveOffMediumVolumeDx | int | 被动卖中单成交量增量 |
| unactiveOffSmallVolumeDx | int | 被动卖小单成交量增量 |
| unactiveOffTotalVolumeDx | int | 被动卖累计成交量增量 |
| netInflowMostVolumeDx | int | 净流入超大单成交量增量 |
| netInflowBigVolumeDx | int | 净流入大单成交量增量 |
| netInflowMediumVolumeDx | int | 净流入中单成交量增量 |
| netInflowSmallVolumeDx | int | 净流入小单成交量增量 |
示例
# coding:gbk def init(C): return def f(data): print(data) def after_init(C): stock_list = ["000001.SZ"] if 1: download_history_data("000001.SZ","transactioncount1d",'','') C.subscribe_quote("000001.SZ","transactioncount1d",callback = f) # C.subscribe_quote("000001.SZ","transactioncount1d") print(C.get_market_data_ex([],stock_list,period="transactioncount1d",start_time = "", end_time = "")) pass 原生python
原型
# 逐笔成交统计日级get_market_data_ex([],stock_list,period="transactioncount1d",start_time = "", end_time = "")# 逐步成交统计1分钟级get_market_data_ex([],stock_list,period="transactioncount1m",start_time = "", end_time = "")获取股票订单流数据
获取股票在某个价位的订单数量
提示
1.该数据通过get_market_data和get_market_data_ex接口获取,period参数选择orderflow1m 或者 orderflow1d
2.获取历史数据前需要先用download_history_data下载历史数据,订单流数据仅提供orderflow1m周期数据下载,其他周期的订单流数据都是通过1m周期合成的
3.订单流版 权限数据
内置python
原型
# 一分钟订单流C.get_market_data_ex([],stock_list,period="orderflow1m",start_time = "", end_time = "")# 1d订单流C.get_market_data_ex([],stock_list,period="orderflow1d",start_time = "", end_time = "") 参数 除period参数需指定为orderflow1m 或者 orderflow1d外,其余参数与ContextInfo.get_market_data_ex一致
返回值
- 返回dict { stock_code1 : value1, stock_code2 : value2, ... }
- value1, value2, ... :pd.DataFrame 数据集,index为time_list,columns为fields
示例
# coding:gbkdef init(C): return def f(data): print(data) def after_init(C): stock_list = ["000001.SZ"] if 1: download_history_data("000001.SZ","orderflow1m",'','') C.subscribe_quote("000001.SZ","orderflow1m",callback = f) # C.subscribe_quote("000001.SZ","transactioncount1d") print(C.get_market_data_ex([],stock_list,period="orderflow1m",start_time = "", end_time = "",count = 1)) 原生pytrhon
from xtquant import xtdata# 订单流数据仅提供1m周期数据下载,其他周期的订单流数据都是通过1m周期合成的period = "orderflow1m"# 下载000001.SZ的1m订单流数据xtdata.download_history_data("000001.SZ",period=period)# 获取000001.SZ的1m订单流数据xtdata.get_market_data_ex([],["000001.SZ"],period=period)["000001.SZ"]参数
| 名称 | 类型 | 描述 |
|---|---|---|
field | list | 数据字段,详情见下方field字段表 |
stock_list | list | 合约代码列表 |
period | str | 订单流数据周期——orderflow1m, orderflow5m, orderflow15m, orderflow30m, orderflow1h, orderflow1d |
start_time | str | 数据起始时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S,填""为获取历史最早一天 |
end_time | str | 数据结束时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S ,填""为截止到最新一天 |
count | int | 数据个数 |
dividend_type | str | 除权方式 |
fill_data | bool | 是否填充数据 |
field字段可选:
| field | 数据类型 | 含义 |
|---|---|---|
time | str | 时间 |
price | str | 价格段 |
buyNum | str | 各价格对应的买方订单量 |
sellNum | str | 各价格对应的卖方订单量 |
period字段可选:
| period | 数据类型 | 含义 |
|---|---|---|
orderflow1m | str | 1m周期订单流数据 |
orderflow5m | str | 5m周期订单流数据 |
orderflow15m | str | 15m周期订单流数据 |
orderflow30m | str | 30m周期订单流数据 |
orderflow1h | str | 1h周期订单流数据 |
orderflow1d | str | 1d周期订单流数据 |
返回值 返回一个 {stock_code:pd.DataFrame} 结构的dict对象,默认的列索引为取得的全部字段. 如果给定了 fields 参数, 则列索引与给定的 fields 对应.
示例
# 下载000001.SZ的orderflow1m,以获取历史数据# orderflow仅提供1m周期进行下载,其他周期皆在系统底层通过1m订单流数据进行合成给出xtdata.download_history_data("000001.SZ",period="orderflow1m") # 获取000001.SZ,1m订单流数据period = "orderflow1m"data1 = xtdata.get_market_data_ex([],["000001.SZ"],period=period)["000001.SZ"] # 获取000001.SZ, 5m订单流数据period = "orderflow5m"data2 = xtdata.get_market_data_ex([],["000001.SZ"],period=period)["000001.SZ"] # 获取000001.SZ 1d订单流数据period = "orderflow1d"data3 = xtdata.get_market_data_ex([],["000001.SZ"],period=period)["000001.SZ"] # 订阅实时000001.SZ 1m订单流数据period = "orderflow1m" # 进行数据订阅xtdata.subscribe_quote("000001.SZ", period = period)# 获取订阅后的实时数据data4 = xtdata.get_market_data_ex([],["000001.SZ"],period=period)["000001.SZ"] print(data1)print(data2)print(data3) print(data4)获取问董秘数据
提示
1.该数据通过get_market_data_ex接口获取,周期需填写为 interactiveqa
2.获取数据前需要先用download_history_data下载历史数据
3.VIP 权限数据
原生python
from xtquant import xtdataxtdata.get_market_data_ex(field_list,stock_list,period='interactiveqa')参数
除period 需填写为interactiveqa外,其余参数参考get_market_data_ex
返回值
返回一个 {stock_code:pd.DataFrame} 结构的dict对象
示例
from xtquant import xtdataxtdata.download_history_data("000001.SZ",period="interactiveqa")data = xtdata.get_market_data_ex([],["000001.SZ"],period="interactiveqa")print(data)获取交易日历
获取历史和未来日历数据
内置python
调用方法
get_trading_calendar(market,start_time='',end_time='')参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
market | str | 市场,如 'SH' |
start_time | str | 起始时间,如 '20170101' |
end_time | str | 结束时间,如 '20180101' |
返回值
- list类型
示例
# coding:gbkdef init(C): returndef after_init(C): print(get_trading_calendar('SZ','20230103','20240103'))原生python
调用方法
# 下载交易日历数据xtdata.download_holiday_data()# 返回获取的交易日历 result = xtdata.get_trading_calendar(market, start_time , end_time ) 参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
market | str | 市场,如 'SH' |
start_time | str | 起始时间,如 '20170101' |
end_time | str | 结束时间,如 '20180101' |
返回值
- list类型
示例
# coding:utf-8from xtquant import xtdataimport time # 下载交易日历数据xtdata.download_holiday_data()# 获取交易日start_time = time.strftime("%Y%m%d") # 起始日期end_time = time.strftime("%Y") + '1231' #结束日期,这里我用time函数自动计算年,格式生成'20241231'# 返回获取的交易日历 result = xtdata.get_trading_calendar('SH', start_time , end_time )print(result) 获取龙虎榜数据
获取指定日期区间内的龙虎榜数据
C.get_longhubang(stock_list, startTime, endTime)参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
stock_list | list | 股票列表,如 ['600000.SH', '600036.SH'] |
startTime | str | 起始时间,如 '20170101' |
endTime | str | 结束时间,如 '20180101' |
返回值
- 格式为
pandas.DataFrame:
| 参数名称 | 数据类型 | 描述 |
|---|---|---|
reason | str | 上榜原因 |
close | float | 收盘价 |
spreadRate | float | 涨跌幅 |
TurnoverVolune | float | 成交量 |
Turnover_Amount | float | 成交金额 |
buyTraderBooth | pandas.DataFrame | 买方席位 |
sellTraderBooth | pandas.DataFrame | 卖方席位 |
buyTraderBooth或sellTraderBooth包含字段:
| 参数名称 | 数据类型 | 描述 |
|---|---|---|
traderName | str | 交易营业部名称 |
buyAmount | float | 买入金额 |
buyPercent | float | 买入金额占总成交占比 |
sellAmount | float | 卖出金额 |
sellPercent | float | 卖出金额占总成交占比 |
totalAmount | float | 该席位总成交金额 |
rank | int | 席位排行 |
direction | int | 买卖方向 |
示例
# coding:gbk def init(C): return def handlebar(C): print(C.get_longhubang(['000002.SZ'],'20100101','20180101'))北向南向资金(沪港通,深港通和港股通)
北向南向资金交易日历
获取交易日列表
from xtquant import xtdataxtdata.get_trading_dates(market, start_time='', end_time='', count=-1)参数:
| 参数名称 | 类型 | 描述 |
|---|---|---|
market | string | 市场代码 |
start_time | string | 起始时间 |
end_time | string | 结束时间 |
count | int | 数据个数 |
返回
list时间戳列表,[ date1, date2, ... ]
示例
from xtquant import xtdata # 获取沪港通最近十五天交易日历data1 = xtdata.get_trading_dates(market = "HGT", start_time='', end_time='', count=-1)[-15:] 获取对应周期的北向南向数据
提示
- 该数据通过
get_market_data_ex接口获取 - 获取历史数据前需要先用
download_history_data下载历史数据,可选字段为"northfinancechange1m":一分钟周期北向数据,"northfinancechange1d":日线周期北向数据 - VIP 权限数据
方式1:内置python
获取对应周期的北向数据
C.get_north_finance_change(period)参数:
| 字段名 | 数据类型 | 描述 |
|---|---|---|
period | str | 数据周期 |
返回结果:
- 根据
period返回一个dict,该字典的key值是北向数据的时间戳,其值仍然是一个dict,其值的key值是北向数据的字段类型,其值是对应字段的值。该字典数据key值有:
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| hgtNorthBuyMoney | int | HGT北向买入资金 |
| hgtNorthSellMoney | int | HGT北向卖出资金 |
| hgtSouthBuyMoney | int | HGT南向买入资金 |
| hgtSouthSellMoney | int | HGT南向卖出资金 |
| sgtNorthBuyMoney | int | SGT北向买入资金 |
| sgtNorthSellMoney | int | SGT北向卖出资金 |
| sgtSouthBuyMoney | int | SGT南向买入资金 |
| sgtSouthSellMoney | int | SGT南向卖出资金 |
| hgtNorthNetInFlow | int | HGT北向资金净流入 |
| hgtNorthBalanceByDay | int | HGT北向当日资金余额 |
| hgtSouthNetInFlow | int | HGT南向资金净流入 |
| hgtSouthBalanceByDay | int | HGT南向当日资金余额 |
| sgtNorthNetInFlow | int | SGT北向资金净流入 |
| sgtNorthBalanceByDay | int | SGT北向当日资金余额 |
| sgtSouthNetInFlow | int | SGT南向资金净流入 |
| sgtSouthBalanceByDay | int | SGT南向当日资金余额 |
示例1 通过内置python获取:
# coding = gbkdef init(C): return# 获取市场北向数据def handlebar(C): print(C.get_north_finance_change('1d'))方式2:原生python
xtdata.get_market_data_ex( fields=[], stock_code=[], period='follow', start_time='', end_time='', count=-1, dividend_type='follow', fill_data=True, subscribe=True )参数
| 名称 | 类型 | 描述 |
|---|---|---|
field | list | 取北向数据时填写为[]空列表即可 |
stock_list | list | 合约代码列表 |
period | str | 数据周期,可选字段为:"northfinancechange1m":一分钟周期北向数据"northfinancechange1d":日线周期北向数据 |
start_time | str | 数据起始时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S,填""为获取历史最早一天 |
end_time | str | 数据结束时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S ,填""为截止到最新一天 |
count | int | 数据个数 |
dividend_type | str | 除权方式,可选值为'none':不复权'front':前复权'back':后复权 'front_ratio': 等比前复权'back_ratio': 等比后复权取此数据时不生效 |
fill_data | bool | 是否填充数据 |
subscribe | bool | 订阅数据开关,默认为True,设置为False时不做数据订阅,只读取本地已有数据。 |
返回值
返回一个 {stock_code:pd.DataFrame} 结构的dict对象,
示例2 通过原生python获取:
# 该示例演示token获取数据方式from xtquant import xtdatacenter as xtdc import xtquant.xtdata as xtdata xtdc.set_token('这里输入token')xtdc.init() s = 'FFFFFF.SGT' # 北向资金代码period = 'northfinancechange1m' # 数据周期if 1: print('download') xtdata.download_history_data(s, period, '20231101', '') print('done') data = xtdata.get_market_data_ex([], [s], period, '', '')[s]print(data) 沪深港通持股数据
提示
- 该数据是VIP权限数据
- VIP 权限数据
获取指定品种的持股明细
C.get_hkt_details(stockcode)参数:
| 参数名称 | 数据类型 | 描述 |
|---|---|---|
stockcode | string | 必须是'stock.market'形式 |
返回结果:
- 根据
stockcode返回一个dict,该字典的key值是北向持股明细数据的时间戳,其值仍然是一个dict,其值的key值是北向持股明细数据的字段类型,其值是对应字段的值,该字典数据key值有:
| 参数名称 | 数据类型/单位 | 描述 |
|---|---|---|
stockCode | str | 股票代码 |
ownSharesCompany | str | 机构名称 |
ownSharesAmount | int | 持股数量 |
ownSharesMarketValue | float | 持股市值 |
ownSharesRatio | float | 持股数量占比 |
ownSharesNetBuy | float | 净买入金额(当日持股-前一日持股) |
示例:
# coding = gbkdef init(C): returndef handlebar(C): data = C.get_hkt_details('600000.SH') print(data)交易所公告数据
原生Python
提示
获取该数据前需要先调用
xtdata.download_history_data进行下载,period参数选择"announcement"该数据通过
get_market_data_ex接口获取,period参数选择"announcement"该数据是VIP权限数据
调用方法
get_market_data_ex([],stock_list,period="announcement",start_time = "", end_time = "")参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
field_list | list | 数据字段列表,传空则为全部字段 |
stock_list | list | 合约代码列表 |
period | string | 周期 |
start_time | string | 起始时间 |
end_time | string | 结束时间 |
count | int | 数据个数。默认参数,大于等于0时,若指定了 start_time,end_time,此时以 end_time 为基准向前取 count 条;若 start_time,end_time 缺省,默认取本地数据最新的 count 条数据;若 start_time,end_time,count 都缺省时,默认取本地全部数据 |
返回值
返回一个 {stock_code:pd.DataFrame} 结构的dict对象,默认的列索引为取得的全部字段. 如果给定了 fields 参数, 则列索引与给定的 fields 对应.
示例
from xtquant import xtdataxtdata.download_history_data('600050.SH','announcement') data = xtdata.get_market_data_ex([], ['600050.SH'], 'announcement', '', '') d=data['600050.SH'] print(d.tail()) 获取单季度/年度财务数据
查询股票的市值数据、资产负债数据、现金流数据、利润数据、财务指标数据. 详情通过财务数据列表查看! 可通过以下api进行查询 :
内置python
获取财务数据前,请先通过界面端数据管理 - 财务数据下载

提示
财务数据接口通过读取下载本地的数据取数,使用前需要补充本地数据。除公告日期和报表截止日期为时间戳毫秒格式其他单位为元或 %,数据主要包括资产负债表(ASHAREBALANCESHEET)、利润表(ASHAREINCOME)、现金流量表(ASHARECASHFLOW)、股本表(CAPITALSTRUCTURE)的主要字段数据以及经过计算的主要财务指标数据(PERSHAREINDEX)。建议使用本文档对照表中的英文表名和迅投英文字段,表名不区分大小写。
获取财务数据 - ContextInfo.get_financial_data
财务数据接口有两种用法,入参和返回值不同,具体如下
用法1,返回目标数据对象
原型
ContextInfo.get_financial_data(fieldList, stockList, startDate, enDate, report_type = 'announce_time')释义
获取财务数据,方法1
参数
| 字段名 | 类型 | 释义与用例 |
|---|---|---|
fieldList | List(必须) | 财报字段列表:['ASHAREBALANCESHEET.fix_assets', '利润表.净利润'] |
stockList | List(必须) | 股票列表:['600000.SH', '000001.SZ'] |
startDate | Str(必须) | 开始时间:'20171209' |
endDate | Str(必须) | 结束时间:'20171212' |
report_type | Str(可选) | 报表时间类型,可缺省,默认是按照数据的公告期为区分取数据,设置为 'report_time' 为按照报告期取数据,' announce_time' 为按照公告日期取数据 |
提示
选择按照公告期取数和按照报告期取数的区别:
若某公司当年 4 月 26 日发布上年度年报,如果选择按照公告期取数,则当年 4 月 26 日之后至下个财报发布日期之间的数据都是上年度年报的财务数据。
若选择按照报告期取数,则上年度第 4 季度(上年度 10 月 1 日 - 12 月 31 日)的数据就是上年度报告期的数据。
返回值
函数根据stockList代码列表,startDate,endDate时间范围,返回不同的的数据类型。如下:
| 代码数量 | 时间范围 | 返回类型 |
|---|---|---|
| =1 | =1 | pandas.Series (index = 字段) |
| =1 | >1 | pandas.DataFrame (index = 时间, columns = 字段) |
| >1 | =1 | pandas.DataFrame (index = 代码, columns = 字段) |
| >1 | >1 | pandas.Panel (items = 代码, major_axis = 时间, minor_axis = 字段) |
示例
# coding:gbkdef init(C): pass def handlebar(C): #取总股本和净利润 fieldList = ['CAPITALSTRUCTURE.total_capital', '利润表.净利润'] stockList = ["000001.SZ","000002.SZ","430017.BJ"] startDate = '20171209' endDate = '20231204' data = C.get_financial_data(fieldList, stockList, startDate, endDate, report_type = 'report_time') print(data)用法2,返回目标数据单个值
原型
ContextInfo.get_financial_data(tabname, colname, market, code, report_type = 'report_time', barpos)与用法 1 可同时使用
释义
获取财务数据,方法2
参数
| 字段名 | 类型 | 释义与用例 |
|---|---|---|
tabname | Str(必须) | 表名:'ASHAREBALANCESHEET' |
colname | Str(必须) | 字段名:'fix_assets' |
market | Str(必须) | 市场:'SH' |
code | Str(必须) | 代码:'600000' |
report_type | Str(可选) | 报表时间类型,可缺省,默认是按照数据的公告期为区分取数据,设置为 'report_time' 为按照报告期取数据,' announce_time ' 为按照公告日期取数据 |
barpos | number | 当前 bar 的索引 |
返回值
float :所取字段的数值
示例
# coding:gbkdef init(C): pass def handlebar(C): index = C.barpos data = C.get_financial_data('ASHAREBALANCESHEET', 'fix_assets', 'SH', '600000', index) print(data)获取原始财务数据 - ContextInfo.get_raw_financial_data
提示
取原始财务数据,与get_financial_data相比不填充每个交易日的数据
原型
ContextInfo.get_raw_financial_data(fieldList,stockList,startDate,endDate,report_type='announce_time') 释义
取原始财务数据,与get_financial_data相比不填充每个交易日的数据
参数
| 字段名 | 类型 | 释义与用例 |
|---|---|---|
fieldList | List(必须) | 字段列表:例如 ['资产负债表.固定资产','利润表.净利润'] |
stockList | List(必须) | 股票列表:例如['600000.SH','000001.SZ'] |
startDate | Str(必须) | 开始时间:例如 '20171209' |
endDate | Str(必须) | 结束时间:例如 '20171212' |
report_type | Str(可选) | 时间类型,可缺省,默认是按照数据的公告期为区分取数据,设置为 'report_time' 为按照报告期取数据,可选值:'announce_time','report_time' |
返回值
函数根据stockList代码列表,startDate,endDate时间范围,返回不同的的数据类型。如下:
| 代码数量 | 时间范围 | 返回类型 |
|---|---|---|
| =1 | =1 | pandas.Series (index = 字段) |
| =1 | >1 | pandas.DataFrame (index = 时间, columns = 字段) |
| >1 | =1 | pandas.DataFrame (index = 代码, columns = 字段) |
| >1 | >1 | pandas.Panel (items = 代码, major_axis = 时间, minor_axis = 字段) |
示例
#encoding:gbk'''获取财务数据'''import pandas as pdimport numpy as npimport talib def to_zw(a): '''0.中文价格字符串''' import numpy as np try: header = '' if a > 0 else '-' if np.isnan(a): return '问题数据' if abs(a) < 1000: return header + str(int(a)) + "元" if abs(a) < 10000: return header + str(int(a))[0] + "千" if abs(a) < 100000000: return header + str(int(a))[:-4] + "万" + str(int(a))[-4] + '千' else: return header + str(int(a))[:-8] + "亿" + str(int(a))[-8:-4] + '万' except: print(f"问题数据{a}") return '问题数据' def after_init(C): fieldList = ['ASHAREINCOME.net_profit_excl_min_int_inc','ASHAREINCOME.revenue'] # 字段表 stockList = ['000001.SZ'] # 标的 a=C.get_raw_financial_data(fieldList,stockList,'20150101','20300101',report_type = 'report_time') # 获取原始财务数据 # print(a) for stock in a: for key in a[stock]: for t in a[stock][key]: print(key, timetag_to_datetime(int(t),'%Y%m%d'), to_zw(a[stock][key][t])) print('-' *22) print('-' *22) 原生python
from xtquant import xtdataxtdata.get_financial_data(stock_list, table_list=[], start_time='', end_time='', report_type='report_time')提示
选择按照公告期取数和按照报告期取数的区别:
若某公司当年 4 月 26 日发布上年度年报,如果选择按照公告期取数,则当年 4 月 26 日之后至下个财报发布日期之间的数据都是上年度年报的财务数据。
若选择按照报告期取数,则上年度第 4 季度(上年度 10 月 1 日 - 12 月 31 日)的数据就是上年度报告期的数据。
参数
| 参数名称 | 数据类型 | 描述 |
|---|---|---|
stock_list | list | 合约代码列表 |
table_list | list | 财务数据表名称列表,可选:Balance #资产负债表;Income #利润表;CashFlow #现金流量表 |
start_time | string | 起始时间 |
end_time | string | 结束时间 |
report_type | string | 报表筛选方式,可选:report_time #截止日期;announce_time #披露日期 |
返回
dict数据集 { stock1 : datas1, stock2 : data2, ... }- stock1, stock2, ... # 合约代码
- datas1, datas2, ... # dict 数据集 { table1 : table_data1, table2 : table_data2, ... }
示例
from xtquant import xtdata# 取数据前请确保已下载所需要的财务数据xtdata.download_financial_data(["000001.SZ","600519.SH","430017.BJ"], table_list=["Balance","Income"])xtdata.get_financial_data(["000001.SZ","600519.SH","430017.BJ"],["Balance","Income"])财务数据列表
资产负债表
- 内置表名:ASHAREBALANCESHEET
- 原生表名:Balance
| 字段名 | 定义 |
|---|---|
| m_anntime | 披露日期 |
| m_timetag | 截止日期 |
| internal_shoule_recv | 内部应收款 |
| fixed_capital_clearance | 固定资产清理 |
| should_pay_money | 应付分保账款 |
| settlement_payment | 结算备付金 |
| receivable_premium | 应收保费 |
| accounts_receivable_reinsurance | 应收分保账款 |
| reinsurance_contract_reserve | 应收分保合同准备金 |
| dividends_payable | 应收股利 |
| tax_rebate_for_export | 应收出口退税 |
| subsidies_receivable | 应收补贴款 |
| deposit_receivable | 应收保证金 |
| apportioned_cost | 待摊费用 |
| profit_and_current_assets_with_deal | 待处理流动资产损益 |
| current_assets_one_year | 一年内到期的非流动资产 |
| long_term_receivables | 长期应收款 |
| other_long_term_investments | 其他长期投资 |
| original_value_of_fixed_assets | 固定资产原值 |
| net_value_of_fixed_assets | 固定资产净值 |
| depreciation_reserves_of_fixed_assets | 固定资产减值准备 |
| productive_biological_assets | 生产性生物资产 |
| public_welfare_biological_assets | 公益性生物资产 |
| oil_and_gas_assets | 油气资产 |
| development_expenditure | 开发支出 |
| right_of_split_share_distribution | 股权分置流通权 |
| other_non_mobile_assets | 其他非流动资产 |
| handling_fee_and_commission | 应付手续费及佣金 |
| other_payables | 其他应交款 |
| margin_payable | 应付保证金 |
| internal_accounts_payable | 内部应付款 |
| advance_cost | 预提费用 |
| insurance_contract_reserve | 保险合同准备金 |
| broker_buying_and_selling_securities | 代理买卖证券款 |
| acting_underwriting_securities | 代理承销证券款 |
| international_ticket_settlement | 国际票证结算 |
| domestic_ticket_settlement | 国内票证结算 |
| deferred_income | 递延收益 |
| short_term_bonds_payable | 应付短期债券 |
| long_term_deferred_income | 长期递延收益 |
| undetermined_investment_losses | 未确定的投资损失 |
| quasi_distribution_of_cash_dividends | 拟分配现金股利 |
| provisions_not | 预计负债 |
| cust_bank_dep | 吸收存款及同业存放 |
| provisions | 预计流动负债 |
| less_tsy_stk | 减:库存股 |
| cash_equivalents | 货币资金 |
| loans_to_oth_banks | 拆出资金 |
| tradable_fin_assets | 交易性金融资产 |
| derivative_fin_assets | 衍生金融资产 |
| bill_receivable | 应收票据 |
| account_receivable | 应收账款 |
| advance_payment | 预付款项 |
| int_rcv | 应收利息 |
| other_receivable | 其他应收款 |
| red_monetary_cap_for_sale | 买入返售金融资产款 |
| agency_bus_assets | 以公允价值计量且其变动计入当期损益的金融资产 |
| inventories | 存货 |
| other_current_assets | 其他流动资产 |
| total_current_assets | 流动资产合计 |
| loans_and_adv_granted | 发放贷款及垫款 |
| fin_assets_avail_for_sale | 可供出售金融资产 |
| held_to_mty_invest | 持有至到期投资 |
| long_term_eqy_invest | 长期股权投资 |
| invest_real_estate | 投资性房地产 |
| accumulated_depreciation | 累计折旧 |
| fix_assets | 固定资产 |
| constru_in_process | 在建工程 |
| construction_materials | 工程物资 |
| long_term_liabilities | 长期负债 |
| intang_assets | 无形资产 |
| goodwill | 商誉 |
| long_deferred_expense | 长期待摊费用 |
| deferred_tax_assets | 递延所得税资产 |
| total_non_current_assets | 非流动资产合计 |
| tot_assets | 资产总计 |
| shortterm_loan | 短期借款 |
| borrow_central_bank | 向中央银行借款 |
| loans_oth_banks | 拆入资金 |
| tradable_fin_liab | 交易性金融负债 |
| derivative_fin_liab | 衍生金融负债 |
| notes_payable | 应付票据 |
| accounts_payable | 应付账款 |
| advance_peceipts | 预收账款 |
| fund_sales_fin_assets_rp | 卖出回购金融资产款 |
| empl_ben_payable | 应付职工薪酬 |
| taxes_surcharges_payable | 应交税费 |
| int_payable | 应付利息 |
| dividend_payable | 应付股利 |
| other_payable | 其他应付款 |
| non_current_liability_in_one_year | 一年内到期的非流动负债 |
| other_current_liability | 其他流动负债 |
| total_current_liability | 流动负债合计 |
| long_term_loans | 长期借款 |
| bonds_payable | 应付债券 |
| longterm_account_payable | 长期应付款 |
| grants_received | 专项应付款 |
| deferred_tax_liab | 递延所得税负债 |
| other_non_current_liabilities | 其他非流动负债 |
| non_current_liabilities | 非流动负债合计 |
| tot_liab | 负债合计 |
| cap_stk | 实收资本(或股本) |
| cap_rsrv | 资本公积 |
| specific_reserves | 专项储备 |
| surplus_rsrv | 盈余公积 |
| prov_nom_risks | 一般风险准备 |
| undistributed_profit | 未分配利润 |
| cnvd_diff_foreign_curr_stat | 外币报表折算差额 |
| tot_shrhldr_eqy_excl_min_int | 归属于母公司股东权益合计 |
| minority_int | 少数股东权益 |
| total_equity | 所有者权益合计 |
| tot_liab_shrhldr_eqy | 负债和股东权益总计 |
利润表
- 内置表名:ASHAREINCOME
- 原生表名:Income
| 字段名 | 定义 |
|---|---|
| m_anntime | 披露日期 |
| m_timetag | 截止日期 |
| revenue_inc | 营业收入 |
| earned_premium | 已赚保费 |
| real_estate_sales_income | 房地产销售收入 |
| total_operating_cost | 营业总成本 |
| real_estate_sales_cost | 房地产销售成本 |
| research_expenses | 研发费用 |
| surrender_value | 退保金 |
| net_payments | 赔付支出净额 |
| net_withdrawal_ins_con_res | 提取保险合同准备金净额 |
| policy_dividend_expenses | 保单红利支出 |
| reinsurance_cost | 分保费用 |
| change_income_fair_value | 公允价值变动收益 |
| futures_loss | 期货损益 |
| trust_income | 托管收益 |
| subsidize_revenue | 补贴收入 |
| other_business_profits | 其他业务利润 |
| net_profit_excl_merged_int_inc | 被合并方在合并前实现净利润 |
| int_inc | 利息收入 |
| handling_chrg_comm_inc | 手续费及佣金收入 |
| less_handling_chrg_comm_exp | 手续费及佣金支出 |
| other_bus_cost | 其他业务成本 |
| plus_net_gain_fx_trans | 汇兑收益 |
| il_net_loss_disp_noncur_asset | 非流动资产处置收益 |
| inc_tax | 所得税费用 |
| unconfirmed_invest_loss | 未确认投资损失 |
| net_profit_excl_min_int_inc | 归属于母公司所有者的净利润 |
| less_int_exp | 利息支出 |
| other_bus_inc | 其他业务收入 |
| revenue | 营业总收入 |
| total_expense | 营业成本 |
| less_taxes_surcharges_ops | 营业税金及附加 |
| sale_expense | 销售费用 |
| less_gerl_admin_exp | 管理费用 |
| financial_expense | 财务费用 |
| less_impair_loss_assets | 资产减值损失 |
| plus_net_invest_inc | 投资收益 |
| incl_inc_invest_assoc_jv_entp | 联营企业和合营企业的投资收益 |
| oper_profit | 营业利润 |
| plus_non_oper_rev | 营业外收入 |
| less_non_oper_exp | 营业外支出 |
| tot_profit | 利润总额 |
| net_profit_incl_min_int_inc | 净利润 |
| net_profit_incl_min_int_inc_after | 净利润(扣除非经常性损益后) |
| minority_int_inc | 少数股东损益 |
| s_fa_eps_basic | 基本每股收益 |
| s_fa_eps_diluted | 稀释每股收益 |
| total_income | 综合收益总额 |
| total_income_minority | 归属于少数股东的综合收益总额 |
| other_compreh_inc | 其他收益 |
现金流表
- 内置表名:ASHARECASHFLOW
- 原生表名: CashFlow
| 字段名 | 定义 |
|---|---|
| m_anntime | 披露日期 |
| m_timetag | 截止日期 |
| cash_received_ori_ins_contract_pre | 收到原保险合同保费取得的现金 |
| net_cash_received_rei_ope | 收到再保险业务现金净额 |
| net_increase_insured_funds | 保户储金及投资款净增加额 |
| net_increase_in_disposal | 处置交易性金融资产净增加额 |
| cash_for_interest | 收取利息、手续费及佣金的现金 |
| net_increase_in_repurchase_funds | 回购业务资金净增加额 |
| cash_for_payment_original_insurance | 支付原保险合同赔付款项的现金 |
| cash_payment_policy_dividends | 支付保单红利的现金 |
| disposal_other_business_units | 处置子公司及其他收到的现金 |
| cash_received_from_pledges | 减少质押和定期存款所收到的现金 |
| cash_paid_for_investments | 投资所支付的现金 |
| net_increase_in_pledged_loans | 质押贷款净增加额 |
| cash_paid_by_subsidiaries | 取得子公司及其他营业单位支付的现金净额 |
| increase_in_cash_paid | 增加质押和定期存款所支付的现金 |
| cass_received_sub_abs | 其中子公司吸收现金 |
| cass_received_sub_investments | 其中:子公司支付给少数股东的股利、利润 |
| minority_shareholder_profit_loss | 少数股东损益 |
| unrecognized_investment_losses | 未确认的投资损失 |
| ncrease_deferred_income | 递延收益增加(减:减少) |
| projected_liability | 预计负债 |
| increase_operational_payables | 经营性应付项目的增加 |
| reduction_outstanding_amounts_less | 已完工尚未结算款的减少(减:增加) |
| reduction_outstanding_amounts_more | 已结算尚未完工款的增加(减:减少) |
| goods_sale_and_service_render_cash | 销售商品、提供劳务收到的现金 |
| net_incr_dep_cob | 客户存款和同业存放款项净增加额 |
| net_incr_loans_central_bank | 向中央银行借款净增加额(万元) |
| net_incr_fund_borr_ofi | 向其他金融机构拆入资金净增加额 |
| net_incr_fund_borr_ofi | 拆入资金净增加额 |
| tax_levy_refund | 收到的税费与返还 |
| cash_paid_invest | 投资支付的现金 |
| other_cash_recp_ral_oper_act | 收到的其他与经营活动有关的现金 |
| stot_cash_inflows_oper_act | 经营活动现金流入小计 |
| goods_and_services_cash_paid | 购买商品、接受劳务支付的现金 |
| net_incr_clients_loan_adv | 客户贷款及垫款净增加额 |
| net_incr_dep_cbob | 存放中央银行和同业款项净增加额 |
| handling_chrg_paid | 支付利息、手续费及佣金的现金 |
| cash_pay_beh_empl | 支付给职工以及为职工支付的现金 |
| pay_all_typ_tax | 支付的各项税费 |
| other_cash_pay_ral_oper_act | 支付其他与经营活动有关的现金 |
| stot_cash_outflows_oper_act | 经营活动现金流出小计 |
| net_cash_flows_oper_act | 经营活动产生的现金流量净额 |
| cash_recp_disp_withdrwl_invest | 收回投资所收到的现金 |
| cash_recp_return_invest | 取得投资收益所收到的现金 |
| net_cash_recp_disp_fiolta | 处置固定资产、无形资产和其他长期投资收到的现金 |
| other_cash_recp_ral_inv_act | 收到的其他与投资活动有关的现金 |
| stot_cash_inflows_inv_act | 投资活动现金流入小计 |
| cash_pay_acq_const_fiolta | 购建固定资产、无形资产和其他长期投资支付的现金 |
| other_cash_pay_ral_oper_act | 支付其他与投资的现金 |
| stot_cash_outflows_inv_act | 投资活动现金流出小计 |
| net_cash_flows_inv_act | 投资活动产生的现金流量净额 |
| cash_recp_cap_contrib | 吸收投资收到的现金 |
| cash_recp_borrow | 取得借款收到的现金 |
| proc_issue_bonds | 发行债券收到的现金 |
| other_cash_recp_ral_fnc_act | 收到其他与筹资活动有关的现金 |
| stot_cash_inflows_fnc_act | 筹资活动现金流入小计 |
| cash_prepay_amt_borr | 偿还债务支付现金 |
| cash_pay_dist_dpcp_int_exp | 分配股利、利润或偿付利息支付的现金 |
| other_cash_pay_ral_fnc_act | 支付其他与筹资的现金 |
| stot_cash_outflows_fnc_act | 筹资活动现金流出小计 |
| net_cash_flows_fnc_act | 筹资活动产生的现金流量净额 |
| eff_fx_flu_cash | 汇率变动对现金的影响 |
| net_incr_cash_cash_equ | 现金及现金等价物净增加额 |
| cash_cash_equ_beg_period | 期初现金及现金等价物余额 |
| cash_cash_equ_end_period | 期末现金及现金等价物余额 |
| net_profit | 净利润 |
| plus_prov_depr_assets | 资产减值准备 |
| depr_fa_coga_dpba | 固定资产折旧、油气资产折耗、生产性物资折旧 |
| amort_intang_assets | 无形资产摊销 |
| amort_lt_deferred_exp | 长期待摊费用摊销 |
| decr_deferred_exp | 待摊费用的减少 |
| incr_acc_exp | 预提费用的增加 |
| loss_disp_fiolta | 处置固定资产、无形资产和其他长期资产的损失 |
| loss_scr_fa | 固定资产报废损失 |
| loss_fv_chg | 公允价值变动损失 |
| fin_exp | 财务费用 |
| invest_loss | 投资损失 |
| decr_deferred_inc_tax_assets | 递延所得税资产减少 |
| incr_deferred_inc_tax_liab | 递延所得税负债增加 |
| decr_inventories | 存货的减少 |
| decr_oper_payable | 经营性应收项目的减少 |
| others | 其他 |
| im_net_cash_flows_oper_act | 经营活动产生现金流量净额 |
| conv_debt_into_cap | 债务转为资本 |
| conv_corp_bonds_due_within_1y | 一年内到期的可转换公司债券 |
| fa_fnc_leases | 融资租入固定资产 |
| end_bal_cash | 现金的期末余额 |
| less_beg_bal_cash | 现金的期初余额 |
| plus_end_bal_cash_equ | 现金等价物的期末余额 |
| less_beg_bal_cash_equ | 现金等价物的期初余额 |
| im_net_incr_cash_cash_equ | 现金及现金等价物的净增加额 |
| tax_levy_refund | 收到的税费返还 |
股本表
- 内置表名:CAPITALSTRUCTURE
- 原生表名:Capital
| 中文字段 | 迅投字段 |
|---|---|
| 总股本 | total_capital |
| 已上市流通A股 | circulating_capital |
| 限售流通股份 | restrict_circulating_capital |
| 变动日期 | m_timetag |
| 公告日 | m_anntime |
主要指标
- 内置表名:PERSHAREINDEX
- 原生表名:PershareIndex
| 中文字段 | 迅投字段 |
|---|---|
| 每股经营活动现金流量 | s_fa_ocfps |
| 每股净资产 | s_fa_bps |
| 基本每股收益 | s_fa_eps_basic |
| 稀释每股收益 | s_fa_eps_diluted |
| 每股未分配利润 | s_fa_undistributedps |
| 每股资本公积金 | s_fa_surpluscapitalps |
| 扣非每股收益 | adjusted_earnings_per_share |
| 净资产收益率 | du_return_on_equity |
| 销售毛利率 | sales_gross_profit |
| 主营收入同比增长 | inc_revenue_rate |
| 净利润同比增长 | du_profit_rate |
| 归属于母公司所有者的净利润同比增长 | inc_net_profit_rate |
| 扣非净利润同比增长 | adjusted_net_profit_rate |
| 营业总收入滚动环比增长 | inc_total_revenue_annual |
| 归属净利润滚动环比增长 | inc_net_profit_to_shareholders_annual |
| 扣非净利润滚动环比增长 | adjusted_profit_to_profit_annual |
| 加权净资产收益率 | equity_roe |
| 摊薄净资产收益率 | net_roe |
| 摊薄总资产收益率 | total_roe |
| 毛利率 | gross_profit |
| 净利率 | net_profit |
| 实际税率 | actual_tax_rate |
| 预收款营业收入 | pre_pay_operate_income |
| 销售现金流营业收入 | sales_cash_flow |
| 资产负债比率 | gear_ratio |
| 存货周转率 | inventory_turnover |
十大股东/十大流通股东
- 内置表名:TOP10HOLDER/TOP10FLOWHOLDER
- 原生表名:Top10holder/Top10flowholder
| 中文字段 | 迅投字段 |
|---|---|
公告日期 | declareDate |
截止日期 | endDate |
股东名称 | name |
股东类型 | type |
持股数量 | quantity |
变动原因 | reason |
持股比例 | ratio |
股份性质 | nature |
持股排名 | rank |
股东数
- 内置表名:SHAREHOLDER
- 原生表名:Holdernum
| 中文字段 | 迅投字段 |
|---|---|
公告日期 | declareDate |
截止日期 | endDate |
股东总数 | shareholder |
A股东户数 | shareholderA |
B股东户数 | shareholderB |
H股东户数 | shareholderH |
已流通股东户数 | shareholderFloat |
未流通股东户数 | shareholderOther |