XtData(XtQuant行情数据模块)
INLINECODE0 is the market data module of XtQuant, providing real-time and historical market data through the local miniQMT client.
⚠️ Requires miniQMT running locally. xtdata communicates with miniQMT via TCP to retrieve data.
安装
CODEBLOCK0
连接
CODEBLOCK1
Optionally specify a data directory:
CODEBLOCK2
API分类
The xtdata API is divided into three main categories:
- - Subscription —
subscribe_quote, subscribe_whole_quote: Register real-time data callbacks; data is continuously pushed until unsubscribed - Retrieval —
get_market_data_ex, get_local_data, get_full_tick, get_financial_data: Read data from local cache; returns immediately - Download —
download_history_data, download_financial_data: Download data from the server to local cache; blocks synchronously until complete
Key Pattern: When retrieving historical data, you must first download to local cache, then get from cache. For real-time data, use subscribe.
通用类型约定
- - stockcode:
'SecurityCode.MarketCode' format, e.g. '600000.SH', INLINECODE14 - period:
'tick', '1m', '5m', '15m', '30m', '1h', '1d', '1w', INLINECODE23 - starttime / endtime:
'YYYYMMDDHHmmss' or 'YYYYMMDD' format strings - dividendtype:
'none' (no adjustment), 'front' (forward adjustment), 'back' (backward adjustment), 'front_ratio' (proportional forward adjustment), 'back_ratio' (proportional backward adjustment)
请求限制
- - Historical data download requests are rate-limited; avoid excessive concurrent downloads.
- Batch queries (multiple stocks) are more efficient than looping one by one; batch mode is recommended.
- Full-market subscription (
subscribe_whole_quote) may require Level2 data permissions for some data types.
下载历史数据
You must download data before retrieving it locally:
CODEBLOCK3
下载退市/到期合约数据
CODEBLOCK4
获取K线数据
CODEBLOCK5
获取最新交易日K线
CODEBLOCK6
获取本地缓存数据
CODEBLOCK7
实时行情订阅
订阅单只股票
CODEBLOCK8
订阅全市场行情(全推)
CODEBLOCK9
取消订阅
CODEBLOCK10
获取全市场快照
CODEBLOCK11
财务数据
CODEBLOCK12
可用财务报表
| Statement | Description |
|---|
| INLINECODE32 | Balance Sheet |
| INLINECODE33 |
Income Statement |
|
CashFlow | Cash Flow Statement |
|
PershareIndex | Per-Share Indicators |
|
CapitalStructure | Capital Structure |
|
TOP10HOLDER | Top 10 Shareholders |
|
TOP10FLOWHOLDER | Top 10 Tradable Shareholders |
|
SHAREHOLDER | Shareholder Count |
资产负债表关键字段
CODEBLOCK13
利润表关键字段
CODEBLOCK14
现金流量表关键字段
CODEBLOCK15
每股指标关键字段
CODEBLOCK16
股本结构字段
CODEBLOCK17
前十大股东字段
CODEBLOCK18
除权除息数据
CODEBLOCK19
合约信息
CODEBLOCK20
板块管理
CODEBLOCK21
指数成分股
CODEBLOCK22
可转债信息
CODEBLOCK23
新股申购信息
CODEBLOCK24
ETF申赎清单
CODEBLOCK25
可用数据周期
INLINECODE40 , 1m, 5m, 15m, 30m, 1h, 1d, 1w, 1mon
数据字段参考
Tick数据字段
CODEBLOCK26
K线数据字段(1m / 5m / 1d等)
CODEBLOCK27
证券状态码
CODEBLOCK28
Level2数据
If your broker supports Level2 data:
l2quote — Level2实时行情快照
CODEBLOCK29
l2order — Level2逐笔委托
CODEBLOCK30
l2transaction — Level2逐笔成交
CODEBLOCK31
l2quoteaux — 买卖汇总
CODEBLOCK32
l2orderqueue — 最优买卖委托队列
CODEBLOCK33
l2transactioncount — 逐笔成交统计
Includes ddx/ddy/ddz indicators, net order/cancellation volumes, and buy/sell statistics categorized by order size (extra-large / large / medium / small orders).
l2thousand — 千档盘口
Up to 1000 levels of bid/ask prices and volumes.
limitupperformance — 涨停连板数据
CODEBLOCK34
snapshotindex — 快照指标
CODEBLOCK35
announcement — 公告与新闻
CODEBLOCK36
hfiopv — 高频IOPV(100ms推送频率)
ETF IOPV data, including dynamic IOPV, limit-up/down IOPV, and premium/discount estimates.
fullspeedorderbook — 全速盘口(20档)
CODEBLOCK37
合约信息 Fields
CODEBLOCK38
ETF现金替代标志
CODEBLOCK39
时间戳转换工具
CODEBLOCK40
使用技巧
- - Before retrieving data for the first time, always call
xtdata.download_history_data() to download to local cache. - Downloaded data is cached locally — subsequent reads are extremely fast.
- INLINECODE50 blocks the current thread — if you need to trade simultaneously, run it in a separate thread.
- Prefer
get_market_data_ex (recommended) over get_local_data — the former supports more features like dividend adjustment. - For delisted/expired contract data, use
download_history_data2. - Financial data timestamp notes:
m_anntime = disclosure date, m_timetag = reporting period end date. - Documentation: http://dict.thinktrader.net/nativeApi/xtdata.html
进阶示例
批量下载多只股票历史数据
CODEBLOCK41
实时行情监控 + 条件预警
CODEBLOCK42
Level2逐笔成交分析(大单跟踪)
CODEBLOCK43
财务数据筛选 — 低估值高成长选股
CODEBLOCK44
板块管理 — Custom Stock Pools
CODEBLOCK45
多周期K线数据对比分析
CODEBLOCK46
可转债数据分析
CODEBLOCK47
ETF申赎清单与套利分析
CODEBLOCK48
🤖 AI Agent 高阶使用指南
对于 AI Agent,在使用该量化/数据工具时应遵循以下高阶策略和最佳实践,以确保任务的高效完成:
1. 数据校验与错误处理
在获取数据或执行操作后,AI 应当主动检查返回的结果格式是否符合预期,以及是否存在缺失值(NaN)或空数据。
- * 示例策略:在通过 API 获取数据框(DataFrame)后,使用
if df.empty: 进行校验;捕获 Exception 以防网络或接口错误导致进程崩溃。
2. 多步组合分析
AI 经常需要进行宏观经济分析或跨市场对比。应善于将当前接口与其他数据源或工具组合使用。
- * 示例策略:先获取板块或指数的宏观数据,再筛选成分股,最后对具体标的进行深入的财务或技术面分析,形成完整的决策链条。
3. 构建动态监控与日志
对于交易和策略类任务,AI 可以定期拉取数据并建立监控机制。
- * 示例策略:使用循环或定时任务检查特定标的的异动(如涨跌停、放量),并在发现满足条件的信号时输出结构化日志或触发预警。
社区与支持
由 大佬量化 维护 — 量化交易教学与策略研发团队。
微信客服: bossquant1 · Bilibili · 搜索 大佬量化 — 微信公众号 / Bilibili / 抖音
XtData(XtQuant行情数据模块)
xtdata 是 XtQuant 的行情数据模块,通过本地 miniQMT 客户端提供实时和历史行情数据。
⚠️ 需要本地运行 miniQMT。xtdata 通过 TCP 与 miniQMT 通信以获取数据。
安装
bash
pip install xtquant
连接
python
from xtquant import xtdata
连接到本地 miniQMT 行情数据服务
xtdata.connect()
可选地指定数据目录:
python
手动指定 miniQMT 数据目录路径
xtdata.data
dir = rD:\QMT\userdatamini
API分类
xtdata API 分为三大类:
- - 订阅 — subscribequote, subscribewholequote:注册实时数据回调;数据持续推送,直到取消订阅
- 获取 — getmarketdataex, getlocaldata, getfulltick, getfinancialdata:从本地缓存读取数据;立即返回
- 下载 — downloadhistorydata, downloadfinancialdata:从服务器下载数据到本地缓存;同步阻塞直到完成
关键模式:获取历史数据时,必须先 download 到本地缓存,然后从缓存 get。对于实时数据,使用 subscribe。
通用类型约定
- - stockcode:证券代码.市场代码 格式,例如 600000.SH, 000001.SZ
- period:tick, 1m, 5m, 15m, 30m, 1h, 1d, 1w, 1mon
- starttime / endtime:YYYYMMDDHHmmss 或 YYYYMMDD 格式字符串
- dividendtype:none(不复权), front(前复权), back(后复权), frontratio(等比前复权), backratio(等比后复权)
请求限制
- - 历史数据下载请求有速率限制;避免过多并发下载。
- 批量查询(多只股票)比逐个循环更高效;建议使用批量模式。
- 全市场订阅(subscribewholequote)可能需要某些数据类型的 Level2 数据权限。
下载历史数据
在本地获取数据之前,必须先下载:
python
下载日K线数据
xtdata.download
historydata(000001.SZ, 1d, start
time=20240101, endtime=20240630)
下载1分钟K线数据
xtdata.download
historydata(000001.SZ, 1m, start
time=20240101, endtime=20240630)
下载Tick数据
xtdata.download
historydata(000001.SZ, tick, start
time=20240601, endtime=20240630)
下载退市/到期合约数据
python
使用 downloadhistorydata2 下载退市或到期合约的数据
xtdata.download
historydata2([IC2312.IF], 1d, start
time=20230101, endtime=20231231)
获取K线数据
python
获取市场数据(返回以股票代码为键的 DataFrame 字典)
data = xtdata.get
marketdata_ex(
[], # field_list,空列表表示所有字段
[000001.SZ], # stock_list,股票代码列表
period=1d, # 周期:tick, 1m, 5m, 15m, 30m, 1h, 1d, 1w, 1mon
start_time=20240101,
end_time=20240630,
count=-1, # -1 表示获取所有数据
dividend
type=front, # 复权类型:none, front, back, frontratio, back_ratio
fill_data=True # 是否填充停牌数据
)
df = data[000001.SZ]
返回字段:open, high, low, close, volume, amount, settelementPrice, openInterest, preClose, suspendFlag
获取最新交易日K线
python
count=1 获取最新的单根K线
data = xtdata.get
marketdata_ex([], [000001.SZ], period=1d, count=1)
获取本地缓存数据
python
如果数据已缓存,直接从本地存储读取(无需再次下载)
data = xtdata.get
localdata(
field_list=[],
stock_list=[000001.SZ],
period=1d,
start_time=20240101,
end_time=20240630
)
实时行情订阅
订阅单只股票
python
def on_data(datas):
行情回调函数,接收推送的实时数据
for stock_code, data in datas.items():
print(stock_code, data)
subscribequote(stockcode, period, starttime, endtime, count, callback)
xtdata.subscribe
quote(000001.SZ, period=tick, callback=ondata)
xtdata.run() # 阻塞当前线程,持续接收回调数据
订阅全市场行情(全推)
python
订阅全市场行情推送
xtdata.subscribe
wholequote([SH, SZ], callback=on_data)
市场代码:SH(上海), SZ(深圳), BJ(北京)
xtdata.run()
取消订阅
python
使用 subscribe_quote 返回的序列号取消订阅
seq = xtdata.subscribe
quote(000001.SZ, period=tick, callback=ondata)
xtdata.unsubscribe_quote(seq)
获取全市场快照
python
获取全市场最新的 Tick 快照
data = xtdata.get
fulltick([SH, SZ])
返回一个字典:{股票代码: tick_data, ...}
财务数据
python
首先将财务数据下载到本地缓存
xtdata.download
financialdata([000001.SZ])
然后从本地缓存获取财务数据
data = xtdata.get
financialdata([000001.SZ])
可用财务报表
利润表 |
| CashFlow | 现金流量表 |
| PershareIndex | 每股指标 |
| CapitalStructure | 股本结构 |
| TOP10HOLDER | 前十大股东 |
| TOP10FLOWHOLDER | 前十大流通股东 |
| SHAREHOLDER | 股东户数 |
资产负债表关键字段
python
cash_equivalents # 现金及现金等价物
tradablefinassets # 交易性金融资产
account_receivable # 应收账款
inventories # 存货
totalcurrentassets # 流动资产合计
fix_assets # 固定资产
intang_assets # 无形资产
tot_assets # 总资产
shortterm_loan # 短期借款
totalcurrentliability # 流动负债合计
tot_liab # 负债合计
cap_stk # 实收资本(或股本)
undistributed_profit # 未分配利润
total_equity # 所有者权益合计
totliabshrhldr_eqy # 负债和股东权益总计
利润表关键字段
python
revenue # 营业总收入
revenue_inc # 营业收入
total_expense # 营业成本
sale_expense # 销售费用
lessgerladmin_exp # 管理费用
financial_expense # 财务费用
oper_profit # 营业利润
tot_profit # 利润总额
netprofitinclminint_inc # 净利润
netprofitexclminint_inc # 归属于母公司所有者的净利润
sfaeps_basic # 基本每股收益
sfaeps_diluted # 稀释每股收益
现金流量表关键字段
python
goodssaleandservicerender_cash # 销售商品、提供劳务收到的现金
netcashflowsoperact # 经营活动产生的现金流量净额
netcash