跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

QMT 原生接口实战:获取股票池、申万行业及概念数据

通过 QMT 原生接口直接获取股票基础数据,涵盖全市场股票列表、申万一级至三级行业分类及个股概念标签。无需第三方数据源,利用 xtquant 库下载板块数据并匹配个股信息,导出 CSV 便于后续策略读取。支持数据库存储拓展,解决接口卡死问题,适合量化策略搭建的基础数据准备。

t ag发布于 2026/3/26更新于 2026/10/17112 浏览
QMT 原生接口实战:获取股票池、申万行业及概念数据

不少量化朋友在搭建策略时,常需要全市场股票列表、个股对应的申万行业分类以及概念标签。这类数据变动频率低,却是行业轮动或题材筛选的基础素材。今天分享一套完整的 Python 实现方案,直接调用 QMT 原生接口,无需额外对接第三方数据源。

环境准备

核心依赖是 xtquant(QMT 官方库)和 pandas(数据处理)。安装命令如下:

pip install xtquant pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

运行前请确保已安装并登录 QMT 终端,接口依赖客户端连接环境。建议终端版本为 QMT 8.0+,行业和概念数据更新较少,每周同步一次即可。

核心逻辑与代码实现

1. 下载板块基础数据

QMT 内置的板块数据有时会导致接口卡死,这里封装一个函数替代原生 download_sector_data(),确保数据拉取稳定。

from xtquant import xtdata
import pandas as pd

def down_load_sector():
    client = xtdata.get_client()
    client.down_all_sector_data()
2. 获取沪深 A 股股票池

返回全部沪深 A 股的股票代码和名称(不含北交所),导出为 CSV 文件方便后续读取。

def get_stock_pool():
    stocks = xtdata.get_stock_list_in_sector("沪深 A 股")
    info_list = xtdata.get_instrument_detail_list(stocks)
    ret = []
    for stock in stocks:
        name = info_list[stock]['InstrumentName']
        ret.append({"stock": stock, "name": name})
    df = pd.DataFrame(ret)
    df = df.sort_values(by="stock")
    df.to_csv("沪深 A 股股票池.csv", index=False)
    return df
3. 匹配申万行业分类

通过筛选 SW2 或 SW3 前缀的板块数据,建立个股与申万二级/三级行业的对应关系。逻辑类似,以二级行业为例:

def get_sw2_industry():
    down_load_sector()
    sector_list = xtdata.get_sector_list()
    sw2_list = [s for s in sector_list  s[:].lower() ==      s]
    stocks = xtdata.get_stock_list_in_sector()
    ret = []
     sw2  sw2_list:
        s_list = xtdata.get_stock_list_in_sector(sw2)
         stock  stocks:
             stock  s_list:
                ret.append({: stock, : sw2[:]})
    df = pd.DataFrame(ret)
    df = df.sort_values(by=)
    df.to_csv(, index=)
     df
if
3
'sw2'
and
'加权'
not
in
"沪深 A 股"
for
in
for
in
if
in
'stock'
"industry_sw2"
3
"stock"
"沪深 A 股申万二级行业.csv"
False
return

同理,获取申万三级行业只需将 sw2 改为 sw3。获取概念标签则筛选 GN 前缀的板块。

4. 批量执行与数据读取

主程序依次调用上述函数,所有数据默认保存在当前目录。后续策略中可直接用 pandas 读取 CSV,无需重复调用接口:

if __name__ == "__main__":
    get_stock_pool()
    get_sw2_industry()
    get_sw3_industry()
    get_gainian()
    print("所有数据已导出为 CSV 文件,可在当前目录查看!")

读取示例:

import pandas as pd
sw3_df = pd.read_csv("沪深 A 股申万三级行业.csv")
gn_df = pd.read_csv("沪深 A 股所属概念.csv")
stock_data = pd.merge(sw3_df, gn_df, on="stock", how="left")
print(stock_data.head())

进阶拓展与注意事项

对于高频使用场景,建议将数据存入数据库(如 SQLite、MySQL)。例如写入 SQLite 表:

import sqlite3
conn = sqlite3.connect("stock_basic_data.db")
df.to_sql("sw3_industry", conn, if_exists="replace", index=False)
conn.close()

常见问题排查:

  1. 接口调用失败:检查 QMT 终端是否登录,或重启后重试。
  2. 数据为空:确认'沪深 A 股'板块名称正确,或升级 xtquant 至最新版本。
  3. 文件无法打开:注意导出文件的后缀名应为 .csv,避免格式错误。

如果需要申万一级行业数据,参考二级/三级逻辑修改 sw2/sw3 为 sw1 即可。这套流程适合量化新手快速搭建数据基础,代码可直接复用。

目录

  1. 环境准备
  2. 核心逻辑与代码实现
  3. 1. 下载板块基础数据
  4. 2. 获取沪深 A 股股票池
  5. 3. 匹配申万行业分类
  6. 4. 批量执行与数据读取
  7. 进阶拓展与注意事项

更多推荐文章

查看全部
  • 国产 AI 副业通路全解析:12 条实用变现路径
  • 用 PyMobileDevice3 管理 iOS 设备
  • Windows 环境下安装 Pandas 的常见坑点与解决方案
  • Flutter 三方库 ethereum_addresses 的鸿蒙化适配指南
  • GitHub 项目源码查找与下载指南
  • NWPU VHR-10 遥感目标检测数据集详解及 YOLOv8 训练实战
  • Ultralytics Utils 核心子模块代码解析:autobatch、autodevice 等
  • Python 安装 Pandas 常见错误与解决方案
  • 大模型技术入门与进阶学习指南
  • Java 后端 Web API 开发全流程实战
  • PostgreSQL 哈希与复合分区实践
  • Java 集合核心:HashMap、HashTable 与 ConcurrentHashMap 原理
  • PyCharm 中 GitHub Copilot 插件安装与配置指南
  • OpenAI Whisper 语音转文本工具使用指南
  • XRoboToolkit 基于 PICO 4 Ultra 的机器人遥操作方案
  • 《利用 Python 进行数据分析》阅读心得与技术实践指南
  • ChatGPT 提示词技巧:优化简历通过 AI 筛选
  • 鲁大魔 AI 视频处理工具:安卓端智能二创与去重
  • 基于 XGBoost 算法的糖尿病数据集分类预测模型实践
  • Python 海龟绘图实战:绘制哆啦 A 梦、海绵宝宝与皮卡丘

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online