:核心概念与基础用法)
在使用 MiniQMT 做量化策略开发时历史行情数据是回测与分析的基础。很多刚接触 MiniQMT 的朋友经常会混淆miniQMT、xtquant、xtdata三者的关系也搞不清下载数据和查询数据的区别。本文就带大家系统梳理 MiniQMT 中历史数据的下载方法讲透核心概念与基础实操。一、先理清关系MiniQMT、XtQuant 与 xtdata很多新手入门的第一个困惑就是这三个名词到底是什么关系其实它们是层层嵌套的「终端 - 接口 - 模块」关系miniQMT量化交易终端软件运行在本地作为服务端负责对接交易所、接收并存储行情数据同时提供数据下载与交易接口能力。XtQuantminiQMT 的 Python 接口库是 Python 程序和 miniQMT 本地服务之间的通信桥梁通过 TCP 连接交互内部包含两大核心模块行情模块xtdata和交易模块xttrader。xtdataXtQuant 中专职行情数据的模块提供各类行情数据的 API 接口本质是向 miniQMT 发送数据请求并处理返回结果同时支持历史数据查询和实时行情订阅。简单理解miniQMT 是后台数据源XtQuant 是 Python 对接工具xtdata 是工具里专门拿行情数据的功能包。二、xtdata 模块核心功能全景xtdata 是 MiniQMT 体系里的行情数据核心覆盖了从行情到基本面、从股票到衍生品的全品类数据能力历史行情数据支持日线、分钟线、周线等多周期 K 线以及分笔成交 Tick 数据同时提供前复权、后复权等多种复权方式。实时行情订阅支持单标的单周期订阅、全市场 Tick 订阅两种模式额外支持 Level2 深度行情获取需单独开通权限满足高频交易数据需求。基本面与基础数据提供资产负债表、利润表、现金流量表等完整财务报表及核心财务指标同时支持股票列表、交易日历、除权除息等基础信息查询。指数与板块数据支持指数成分股、成分股权重、指数行情获取覆盖行业分类、概念板块、地域板块等多维度板块数据。基金与衍生品数据支持 ETF 申赎清单、成分股、净值数据同时提供期货主力合约、期权链、商品期权等衍生品数据查询。三、历史数据获取的底层逻辑缓存 查询两步走xtdata 获取历史数据的核心逻辑分为两步这是很多新手容易踩坑的地方第一步缓存历史数据调用下载函数从服务器拉取数据缓存到 miniQMT 安装目录下的userdata_mini文件夹中数据为二进制格式无法直接读取和处理。第二步查询历史数据调用查询函数从本地缓存中读取数据转化为可处理的格式如 DataFrame支持多标的、多字段、多周期读取也可设置复权方式。注意必须先执行下载缓存才能成功查询到历史数据同时由于接口迭代目前存在多组功能相近但细节有别的下载 / 查询函数需要根据需求选择。四、步骤一缓存历史数据下载到本地数据缓存阶段核心有两个函数download_history_data()和download_history_data2()执行完成后数据就会持久化存储到本地。两者的核心差异如下函数支持标的数量执行方式核心特点download_history_data单只股票 / 标的同步执行用法简单适合单标的少量数据下载download_history_data2批量多标的异步执行可监控下载进度适合多标的、长周期批量下载两个函数均支持增量下载设置incrementallyTrue和全量下载日常维护数据时用增量下载可以大幅提升效率。五、步骤二查询历史数据读取本地数据数据缓存到本地后需要通过查询函数读取为可分析的数据常用的查询函数有三个get_market_data()基础查询函数支持指定标的、周期、时间范围、字段和复权方式。get_market_data_ex()增强版查询函数返回格式更丰富适配更多进阶参数。get_local_data()纯本地数据读取直接从本地缓存拉取不触发服务器请求。六、实操案例单只股票日线数据下载与读取下面以平安银行000001.SZ为例演示「下载 - 查询」的完整基础流程代码可直接复制运行需先启动 MiniQMT 并安装 xtquant。from xtquant import xtdata # # 1. 下载并缓存历史数据 # xtdata.download_history_data( stock_code000001.SZ, # 股票代码格式代码.交易所 period1d, # 数据周期1d日线 start_time20240101, # 起始日期 end_time20240301 # 结束日期 ) # # 2. 查询本地已缓存的数据 # data xtdata.get_market_data( field_list[time, close], # 需要获取的字段时间、收盘价 stock_list[000001.SZ], # 股票代码列表 period1d, # 数据周期与下载保持一致 start_time20240101, # 起始日期 end_time20240301 # 结束日期 ) # # 3. 打印结果 # print(平安银行日线收盘价数据) print(data[close])七、总结与下篇预告本文梳理了 MiniQMT 中历史数据获取的核心体系重点讲解了「下载缓存 本地查询」的两步逻辑以及基础函数的用法和单标的实操。在下篇内容中我会继续讲解批量下载函数download_history_data2的用法、多标的批量数据获取实操以及不同查询函数的适用场景和进阶参数帮助大家高效搭建本地行情数据库。本文为「MiniQMT 量化入门」系列文章后续会持续更新数据处理、策略回测、实盘交易相关内容欢迎关注专栏一起交流。投资有风险入市需谨慎本文只做教学不做投资建议。