/ XTDATA 行情接口速查 📝 策略记录 v2024-05-15
📡订阅行情4个
📊获取行情5个
⬇️下载历史4个
📋合约信息2个
🏛️板块信息6个
💰财务数据2个
📋 接口概述 Overview

xtdata 是 QMT 量化交易平台提供的 Python 行情数据模块

  • 📈 K线数据(历史+实时,分钟/日/周/月/季/年线)
  • 📉 分笔数据(Tick级行情)
  • 💰 财务数据(资产负债表、利润表、现金流量表等)
  • 🏛️ 板块分类(行业、概念、地区等)
  • 📋 合约基础信息(代码、名称、保证金率等)
💡 运行逻辑:xtdata 本质是与 MiniQMT 建立连接,由 MiniQMT 处理数据请求。
使用前需确保 MiniQMT 已有所需数据,不足时用 download_xxx 补充。
🏷️ 合约代码格式 stock_code
# 格式:code.market "000001.SZ" # 深圳股票 "600000.SH" # 上海股票 "000300.SH" # 沪深300指数 "510300.SH" # 沪深300ETF "AU2506.SGEX" # 期货(上海金) "100050.SH" # 期权
市场代码: SZ=深圳 SH=上海 BJ=北交所 CF=中金所 SF=上海期货 DF=大连期货 ZF=郑州期货 SGEX=上海金
⏱️ 周期类型 period
tick分笔
1m1分钟
5m5分钟
15m15分钟
30m30分钟
1h1小时
1d日线
1w周线
1mon月线
1q季度线
1hy半年线
1y年线
🏎️ 投研版特色数据: warehousereceipt=期货仓单 | futureholderrank=期货席位 | transactioncount1m=逐笔成交统计
🔄 除权方式 dividend_type
none不复权
front前复权
back后复权
front_ratio等比前复权
back_ratio等比后复权
📌 注意:复权方式仅对K线数据有效,对tick等其他周期数据无效
📡 订阅接口 Subscribe
subscribe_quote 订阅 int (订阅号)

订阅单股行情数据,数据推送从 callback 返回

参数类型说明
stock_codestr合约代码,如 "000001.SZ"
periodstr周期,默认 "1d"
start_timestr起始时间,格式 "20200101" 或 "20200101000000"
end_timestr结束时间
countint数据个数,-1=全部,0=仅订阅实时
callbackfunc回调函数,格式 def on_data(datas):
示例代码
def on_data(datas): for stock_code in datas: print(stock_code, datas[stock_code]) xtdata.subscribe_quote("000001.SZ", period="1d", count=100, callback=on_data) xtdata.run() # 阻塞线程维持运行
subscribe_whole_quote 订阅 int (订阅号)

订阅全推行情数据(市场全部合约切面数据),适合高订阅数场景

参数类型说明
code_listlist市场代码 ["SH", "SZ"] 或合约代码 ["600000.SH", "000001.SZ"]
callbackfunc回调函数
⚡ 性能提示:单股订阅建议不超过50个,超过建议用全推数据
unsubscribe_quote None

取消订阅行情数据

参数类型说明
seqint订阅时返回的订阅号
run None

阻塞当前线程,维持订阅运行状态,持续处理回调

典型用法
xtdata.subscribe_quote("000001.SZ", callback=on_data) # ... 其他订阅 ... xtdata.run() # 放在最后,阻塞维持运行
📊 获取行情数据 Get Data
get_market_data 获取 L1 dict

从缓存获取行情数据,是主动获取行情的主要接口

参数类型说明
field_listlist数据字段列表,传空则全部字段
stock_listlist合约代码列表
periodstr周期
start_timestr起始时间
end_timestr结束时间
countint数据个数,-1=全部
dividend_typestr除权方式,默认 "none"
fill_databool是否向后填充空缺数据,默认 True
示例代码
# 获取日线数据 data = xtdata.get_market_data( stock_list=["000001.SZ", "600000.SH"], period="1d", start_time="20240101", end_time="20241231" ) # 返回: {'open': DataFrame, 'close': DataFrame, 'high': ..., 'low': ..., 'volume': ...} # 获取分笔数据 tick = xtdata.get_market_data(stock_list=["000001.SZ"], period="tick")
返回值:
K线:dict { field: DataFrame },index=stock_list,columns=time_list
Tick:dict { stock: np.ndarray },按时间戳升序
get_local_data 获取 L1 dict

从本地数据文件获取行情数据,用于快速批量获取历史部分的行情数据

参数类型说明
field_listlist数据字段列表,传空则全部
stock_listlist合约代码列表
periodstr周期
start_timestr起始时间
end_timestr结束时间
countint数据个数,-1=全部
dividend_typestr除权方式
fill_databool是否向后填充空缺数据
data_dirstrMiniQMT数据路径,默认自动获取
📌 注意:仅用于获取level1数据
get_full_tick 获取 dict

获取全推数据

参数类型说明
code_listlist市场代码 ["SH", "SZ"] 或合约代码列表
示例代码
# 获取全市场分笔数据 data = xtdata.get_full_tick(["SH", "SZ"]) # 获取指定合约 data = xtdata.get_full_tick(["600000.SH", "000001.SZ"])
get_full_kline 获取 L1 dict

获取最新交易日K线全推数据,仅支持最新一个交易日,不包含历史值

参数类型说明
field_listlist数据字段列表,传空则全部
stock_listlist合约代码列表
periodstr周期,默认 "1m"
start_timestr起始时间
end_timestr结束时间
countint数据个数,默认1
dividend_typestr除权方式,默认 "none"
fill_databool是否填充空缺数据
get_divid_factors 获取 DataFrame

获取除权数据(分红、拆分等)

参数类型说明
stock_codestr合约代码
start_timestr起始时间
end_timestr结束时间
示例代码
df = xtdata.get_divid_factors("000001.SZ", start_time="20200101")
⬇️ 下载历史数据 Download
download_history_data 下载 None

补充历史行情数据,同步执行,补充数据完成后返回

参数类型说明
stock_codestr合约代码
periodstr周期
start_timestr起始时间
end_timestr结束时间
incrementallybool/None是否增量下载,None时start_time为空则增量
示例代码
# 增量下载(从本地最后一条往后下载) xtdata.download_history_data("000001.SZ", period="1d") # 指定时间范围下载 xtdata.download_history_data("000001.SZ", period="1d", start_time="20200101", end_time="20241231")
download_history_data2 下载 None

补充历史行情数据,批量版本,支持进度回调

参数类型说明
stock_listlist合约列表
periodstr周期
start_timestr起始时间
end_timestr结束时间
callbackfunc进度回调,参数 {total, finished, stockcode, message}
incrementallybool/None是否增量下载
示例代码
def on_progress(data): print(f"进度: {data['finished']}/{data['total']} - {data['stockcode']}") xtdata.download_history_data2( stock_list=["000001.SZ", "600000.SH"], period="1d", callback=on_progress )
download_sector_data 下载 None

下载板块分类信息,同步执行,下载完成后返回

📌 提示:板块分类信息更新频率低,建议按周或按日定期下载更新即可
💰 财务数据 Financial
get_financial_data 财务 dict

获取财务数据

参数类型说明
stock_listlist合约代码列表
table_listlist财务表名列表
start_timestr起始时间
end_timestr结束时间
report_typestr报表筛选方式:report_time(截止日期) / announce_time(披露日期)
table_list 可选值: Balance=资产负债表 | Income=利润表 | CashFlow=现金流量表 | Capital=股本表 | Holdernum=股东数 | Top10holder=十大股东 | Top10flowholder=十大流通股东 | Pershareindex=每股指标
示例代码
data = xtdata.get_financial_data( stock_list=["000001.SZ"], table_list=["Balance", "Income"], start_time="20200101", end_time="20241231" ) # 返回: { stock_code: { "Balance": DataFrame, "Income": DataFrame, ... } }
download_financial_data2 下载 None

下载财务数据,支持进度回调

参数类型说明
stock_listlist合约列表
table_listlist财务表名列表
start_timestr起始时间(按披露日期筛选)
end_timestr结束时间
callbackfunc进度回调函数
📋 合约信息 Instrument
get_instrument_detail 信息 dict

获取合约基础信息,可用于检查合约代码是否正确

参数类型说明
stock_codestr合约代码
iscompletebool是否获取全部字段,默认False
返回字段(iscomplete=False)
{ "ExchangeID": "SZ", # 交易所代码 "InstrumentID": "000001", # 合约代码 "InstrumentName": "平安银行", # 合约名称 "ProductID": "", # 品种ID(期货) "ProductName": "", # 品种名称(期货) "ExpireDate": 0, # 退市日/到期日 "UpStopPrice": 0.0, # 涨停价 "DownStopPrice": 0.0, # 跌停价 "OpenInterestMultiple": 0, # 交割月持仓倍数 "LongMarginRatio": 0.0, # 多头保证金率 "ShortMarginRatio": 0.0, # 空头保证金率 "PriceTick": 0.01, # 最小价格变动单位 "VolumeMultiple": 1, # 合约乘数 "MainContract": 0, # 主力合约标记 1/2/3 "IsTrading": True, # 是否可交易 "IsRecent": True, # 是否近月合约 }
示例代码
info = xtdata.get_instrument_detail("000001.SZ") print(info["InstrumentName"]) # 平安银行
get_instrument_type 信息 dict

获取合约类型

参数类型说明
stock_codestr合约代码
返回值:
index: True=指数 | stock: True=股票 | fund: True=基金 | etf: True=ETF
示例代码
xtdata.get_instrument_type("000001.SZ") # {'index': False, 'stock': True, 'fund': False, 'etf': False}
📅 交易日历 Calendar
get_trading_dates 日历 list (时间戳)

获取交易日列表

参数类型说明
marketstr市场代码,如 "SZ", "SH"
start_timestr起始时间
end_timestr结束时间
countint数据个数,-1=全部
get_trading_calendar 日历 list (8位日期字符串)

获取指定市场交易日历

参数类型说明
marketstr市场代码
start_timestr起始时间,8位字符串,为空表示市场首个交易日
end_timestr结束时间,8位字符串,为空表示当前时间
📌 提示:结束时间可以填写未来时间,获取未来交易日(需要下载节假日列表)
get_holidays 日历 list (8位日期字符串)

获取截止到当年的节假日日期

🏛️ 板块信息 Sector
get_sector_list 板块 list

获取板块列表

示例代码
sectors = xtdata.get_sector_list() print(sectors[:5]) # ['地域板块', '行业板块', '概念板块', '上证A股', '深证A股', ...]
get_stock_list_in_sector 板块 list

获取板块成分股列表

参数类型说明
sector_namestr板块名称,如 "上证A股"、"行业板块"、"华为概念"
示例代码
# 获取所有A股 stocks = xtdata.get_stock_list_in_sector("上证A股") # 获取行业板块 industry = xtdata.get_stock_list_in_sector("行业板块") # 获取概念板块 concept = xtdata.get_stock_list_in_sector("华为概念")
自定义板块操作 板块
create_sector(parent_node, sector_name, overwrite)
创建板块,parent_node为空表示"我的"
add_sector(sector_name, stock_list)
添加自定义板块
remove_stock_from_sector(sector_name, stock_list)
移除板块成分股
remove_sector(sector_name)
移除自定义板块
📌 其他接口 ETF/CB/IPO
get_etf_info ETF dict

获取ETF申赎清单信息(需先调用 download_etf_info() 下载)

get_cb_info 可转债 dict

获取可转债基础信息(需先调用 download_cb_data() 下载)

参数类型说明
stockcodestr合约代码,如 "600000.SH"
get_ipo_info IPO list[dict]

获取新股申购信息

参数类型说明
start_timestr开始日期,如 "20230327"
end_timestr结束日期
返回字段:
securityCode-证券代码 | codeName-代码简称 | market-所属市场
actIssueQty-发行总量(股) | onlineIssueQty-网上发行量 | publishPrice-发行价格
isProfit-是否盈利 | afterPE-发行后市盈率
🧮 公式/模型接口 Formula
subscribe_formula 订阅 int

订阅VBA模型运行结果,需连接投研端使用

📌 注意:使用该函数时需要补充本地K线或分笔数据
call_formula 调用 dict

获取VBA模型运行结果

参数类型说明
formula_namestr模型名称
stock_codestr模型主图代码,如 "000300.SH"
periodstrK线周期
start_timestr起始时间,形如 "20200101"
end_timestr结束时间
countint向前count根bar,-1=全部
📌 注意:使用该函数时需要补充本地K线或分笔数据