数据字典与品种数据
下单和行情函数之外,QMT 还提供一套完整的数据字典——覆盖股票、期货、期权、指数、场内基金、可转债、行业概念的基础信息字段,以及迅投因子、BARRA 因子、资金流向等特色数据。这一章帮你搞清各品种的代码格式、能查到什么字段、以及怎么取到这些数据。
数据字典覆盖范围
| 品种类别 | 包含内容 |
|---|---|
| 股票 | 上市/退市日、名称、是否 ST、流通/总股本、涨跌停价、产品类型 |
| 期货 | 合约信息、保证金率、上市/到期日、市场代码 |
| 期权 | 期权标的对应的合约列表、行权价、到期日 |
| 指数 | 迅投指数计算规则、成分、加权方式 |
| 场内基金 | 涨跌停、上市/退市/期权到期日、申赎清单 |
| 可转债 | 转股价、正股代码、发行价、强赎价、到期赎回价 |
| 行业概念 | 行业/概念板块分类、代码、名称 |
市场代码对照
品种代码统一用 '代码.市场' 形式,市场代码要认全:
期货市场简称
| 市场 | 交易所代码 | 迅投市场代码 |
|---|---|---|
| 上期所 | SHFE | SF |
| 大商所 | DCE | DF |
| 郑商所 | CZCE | ZF |
| 中金所 | CFFEX | ZF/IF |
| 上期能源 | INE | NF |
期货合约代码示例:cu2403.SF(上期所铜)、rb2405.SF。
股票/基金/债券市场
| 市场 | 代码 | 示例 |
|---|---|---|
| 沪市 | SH | 600000.SH(浦发银行) |
| 深市 | SZ | 000001.SZ(平安银行) |
| 沪市基金/ETF | SH | 510050.SH(上证 50ETF) |
期权、指数等品种同样遵循
'代码.市场'形式,具体市场后缀以get_instrument_detail返回的ExchangeID为准。
合约基础信息:get_instrument_detail
取合约详细信息,返回字典。该信息每交易日 9 点更新:
info = C.get_instrument_detail('600000.SH') # 内置 Python
# XtQuant: xtdata.get_instrument_detail('600000.SH')
常用返回字段:
| 字段 | 说明 |
|---|---|
ExchangeID | 合约市场代码 |
InstrumentID | 合约代码 |
InstrumentName | 合约名称 |
ProductID / ProductName | 品种 ID / 名称(期货) |
ProductType | 合约类型(默认 -1) |
CreateDate / OpenDate | 创建日 / 上市日 |
ExpireDate | 退市日 / 到期日 |
PreClose | 前收盘 |
UpStopPrice / DownStopPrice | 涨停价 / 跌停价 |
FloatVolume | 流通股本(股) |
TotalVolume | 总股本(股) |
LongMarginRatio / ShortMarginRatio | 多/空保证金率(期货) |
旧版客户端函数名为
get_instrumentdetail,新版统一为get_instrument_detail。部分低版本客户端FloatVolume拼成FloatVolumn。
期权:取合约列表
期权要按标的查对应的合约列表(一个股票/ETF 对应大量行权价和到期月的合约):
# 内置 Python:取某期权标的对应的期权品种列表
options = ... # 传入期权标的代码,返回该标的所有期权合约信息
拿到列表后,再用 get_instrument_detail 查每个合约的行权价、到期日、虚实值等字段。
可转债信息
可转债有专属信息函数,提供转股价、正股代码、发行价、强赎价、到期赎回价等:
# XtQuant
from xtquant import xtdata
xtdata.download_cb_data() # 下载可转债基础信息
info = xtdata.get_cb_info(code) # 取可转债详情
可转债信息函数为 VIP 权限函数,需开通后才能调用。
行业与概念板块
行业/概念板块信息需要先下载板块分类,再查询:
# XtQuant
from xtquant import xtdata
xtdata.download_sector_data() # 下载板块分类
stocks = xtdata.get_stock_list_in_sector('沪深A股') # 取板块成分
也可在界面端「下载中心」手动选「全部板块」。板块数据包含行业代码、名称、概念分类。
指数数据
迅投指数的计算规则:
- 普通代码上市超过 20 个交易日后加入计算,债券为 5 个交易日。
- 涨停打开超过 3 个交易日后加入计算。
指数数据接口可取指数行情、成分、加权方式等。
特色数据
迅投因子
迅投因子是一套因子库,通过 xtdata 下载后使用:
from xtquant import xtdata
# 下载因子数据(具体因子名以数据字典为准)
xtdata.download_factor_data(...)
data = xtdata.get_factor_data(...)
数据浏览器:财务与 BARRA 因子
数据浏览器提供清洗过的财务数据、BARRA 因子等高质量数据,使用流程:
- 开通权限:数据浏览器为高级数据,需先开通权限。
- 刷新列表:在客户端「行情 → 数据」页面,刷新数据浏览器列表,找到需要的高级数据(如 BARRA 因子)。
- 下载使用:选中后下载,再在脚本里调用。
场景化:盘前数据准备
一个完整的盘前数据准备流程(XtQuant 版):
from xtquant import xtdata
# 1. 下载板块分类
xtdata.download_sector_data()
# 2. 取股票池
stocks = xtdata.get_stock_list_in_sector('沪深A股')
# 3. 下载历史行情(按需选周期)
for s in stocks:
xtdata.download_history_data(s, '1d', '20240101', '')
# 4. 下载因子/财务(如需)
# xtdata.download_factor_data(...)
print('盘前数据准备完成,品种数', len(stocks))
数据获取方式总览
| 数据 | 内置 Python | XtQuant | 权限 |
|---|---|---|---|
| 合约基础信息 | get_instrument_detail | xtdata.get_instrument_detail | 普通 |
| 历史/实时 K 线 | get_market_data_ex | xtdata.get_market_data_ex | 普通 |
| 板块成分 | get_stock_list_in_sector | xtdata.get_stock_list_in_sector | 普通 |
| 可转债信息 | 专属函数 | xtdata.get_cb_info | VIP |
| 迅投因子 | get_factor_data | xtdata.get_factor_data | VIP |
| BARRA / 财务 | 数据浏览器 | 数据浏览器 | 数据浏览器权限 |
常见问题
- 「无法连接 xtquant 服务」:报错
请检查 QMT-投研版或 QMT-极简版是否开启——原因是 XtQuant 依赖的 MiniQMT 客户端没启动,把它打开登录即可。 - 取不到合约信息:确认代码格式是
'代码.市场'(如600000.SH),且该信息每交易日 9 点后才更新。 - VIP 函数报错:迅投因子、可转债信息等是 VIP 权限,未开通调用会失败。
下一步
数据和函数都齐了,最后看一组抄起来就能改的实战策略:策略示例与回测。