MiniQMT获取全市场所有行业分类

对应实盘演示视频与完整运行代码见 A股自动化交易QMT教程

最终数据集也可直接 下载

首先需要打开小qmt,公共模拟账号点 这里 也可以联系客服直接申请实盘账号或者自用模拟账号

具体函数介绍

   xtdata.download_sector_data()
    # 获取所有板块名称
    sectors = xtdata.get_sector_list()

可获取所有板块名称
在这里插入图片描述
获取该板块下所有股票列表接口如下

            # 获取该板块下的股票列表
            stocks = xtdata.get_stock_list_in_sector(sector)

如何获取个股的名称

            detail = xtdata.get_instrument_detail(stock_code)

可以直接拿里面的InstrumentName字段,为个股的名称
在这里插入图片描述
主要函数如下,原理:获取所有板块,遍历所有板块,得到板块个股,同时每个个股属性上加上这个板块名称

def get_all_stocks_with_industry():
    """
    获取所有个股的代码、名称(通过get_instrument_detail)和所属行业
    """
    # 下载最新板块分类信息
    print("正在下载板块数据...")
    xtdata.download_sector_data()

    # 获取所有板块名称
    sectors = xtdata.get_sector_list()
    print(f"共获取到 {len(sectors)} 个板块")

    # 将sectors保存到本地文件
    save_sectors_to_file(sectors, 'qmt_概念版块.txt')

    # 存储所有股票信息
    all_stocks_info = {}

    # 遍历所有板块,收集股票信息
    for i, sector in enumerate(sectors):
        try:
            # 获取该板块下的股票列表
            stocks = xtdata.get_stock_list_in_sector(sector)

            for stock_code in stocks:
                if stock_code not in all_stocks_info:
                    all_stocks_info[stock_code] = {
                        'code': stock_code,
                        'name': '',  # 稍后通过get_instrument_detail获取名称
                        'industries': []  # 可能属于多个行业
                    }
                all_stocks_info[stock_code]['industries'].append(sector)

            print(f"进度: {i + 1}/{len(sectors)} - 板块 '{sector}' 有 {len(stocks)} 只股票")

            # 添加延迟避免请求过于频繁
            time.sleep(0.01)

        except Exception as e:
            print(f"处理板块 '{sector}' 时出错: {e}")
        # break

    # 获取股票名称(改用get_instrument_detail)
    print("正在获取股票名称...")
    for idx, stock_code in enumerate(list(all_stocks_info.keys())):
        try:
            # 调用get_instrument_detail获取详细信息
            detail = xtdata.get_instrument_detail(stock_code)
            # 提取名称(字段为InstrumentName)
            stock_name = detail.get('InstrumentName', '未知')
            all_stocks_info[stock_code]['name'] = stock_name

            # 打印进度(每100只股票显示一次)
            if (idx + 1) % 100 == 0:
                print(f"已获取 {idx + 1}/{len(all_stocks_info)} 只股票名称")

        except Exception as e:
            print(f"获取股票 {stock_code} 名称失败: {e}")
            all_stocks_info[stock_code]['name'] = '未知'

        # 控制请求频率,避免接口限制
        # time.sleep(0.005)

    return all_stocks_info

最终获取所有个股的所属指数与行业分类
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值