🚀 AI 一键生成 qmt 策略代码
立即体验

如何在 QMT 中使用 get_industry 获取证监会行业成份股并进行选股?

qmt | 发布时间: 2026/7/26
以下内容由 EasyQuant 生成。

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: QMT 行业选股:基于 CSRC 证监会行业分类的股票筛选实战

Question: 如何在 QMT 中使用 get_industry 获取证监会行业成份股并进行选股?

解决方案

如何在 QMT 中使用 get_industry 获取证监会行业成份股并进行选股?

在 QMT(迅投量化交易系统)中,基于板块和行业筛选标的是构建多因子策略、行业轮动策略的基础。QMT Python API 提供了 ContextInfo.get_industry() 接口,可以方便地按 CSRC(中国证监会)行业分类提取对应的成份股列表。


一、核心 API 接口解析

ContextInfo.get_industry(industry)

  • 功能:获取指定证监会行业的成份股列表。
  • 参数
    • industry (string):行业名称,必须以 'CSRC' 开头,例如 'CSRC采矿业''CSRC软件和信息技术服务业'
  • 返回值
    • list:包含股票代码的列表,格式为 '000002.SZ''600000.SH' 等。

注意:常用的证监会行业包括 CSRC采矿业CSRC金融业CSRC医药制造业CSRC软件和信息技术服务业 等。


二、实战策略:证监会行业筛选 + 财务/行情因子策略

以下策略展示了如何在 init 中通过 ContextInfo.get_industry() 获取特定行业(如“CSRC软件和信息技术服务业”)的股票作为股票池,并在 handlebar 中结合行情数据进行选股与下单。

策略代码示例(Python)

#encoding:gbk
import pandas as pd

def init(ContextInfo):
    # 1. 设定资金账号
    ContextInfo.account = '6000000248'
    ContextInfo.set_account(ContextInfo.account)
    
    # 2. 获取 CSRC 软件和信息技术服务业的成份股
    industry_name = 'CSRC软件和信息技术服务业'
    stock_list = ContextInfo.get_industry(industry_name)
    print(f"获取到 {industry_name} 行业股票共 {len(stock_list)} 只")
    
    # 3. 设置股票池
    ContextInfo.set_universe(stock_list)
    ContextInfo.selected_stocks = []

def handlebar(ContextInfo):
    # 仅在最后一根 Bar 执行选股逻辑
    if not ContextInfo.is_last_bar():
        return
        
    stocks = ContextInfo.get_universe()
    if not stocks:
        return
        
    # 获取股票池中所有股票最近 20 个交易日的收盘价
    history_data = ContextInfo.get_history_data(20, '1d', 'close')
    
    selected = []
    for stock in stocks:
        if stock in history_data and len(history_data[stock]) >= 20:
            prices = history_data[stock]
            # 计算 20 日动量(涨幅)
            momentum = (prices[-1] - prices[0]) / prices[0]
            # 筛选动量大于 5% 的股票
            if momentum > 0.05:
                selected.append(stock)
                
    print(f"今日精选行业强粹股: {selected}")
    ContextInfo.selected_stocks = selected
    
    # 示例买入:对精选出的第一只股票进行下单(按最新价买入 100 股)
    if selected:
        target_stock = selected[0]
        passorder(23, 1101, ContextInfo.account, target_stock, 5, -1, 100, ContextInfo)

三、常见问题与注意事项

  1. 数据补充:运行行业选股策略前,请确保已在 QMT 客户端的【数据管理】中补充了对应市场的历史行情数据及财务数据。
  2. 行业名称前缀:调用 get_industry 时必须带有 'CSRC' 前缀(如 'CSRC房地产业'),否则可能无法正确返回成份股。
  3. get_stock_list_in_sector 的区别
    • get_industry 专注于证监会标准行业划分。
    • get_stock_list_in_sector 支持客户端左侧列表中的任意自定义板块或概念板块(如 '沪深300'、'我的自选')。