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

joinquant 平台如何根据特定行业代码筛选股票池?

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

问题描述

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

Title: joinquant 行业选股指南:get_industry_stocks 获取申万与聚宽行业成分股

Question: joinquant 如何根据特定行业代码筛选股票池?

解决方案

在聚宽(JoinQuant)量化交易平台中,可以通过调用 API 函数 get_industry_stocks(industry_code, date=None) 来根据特定行业代码快速筛选该行业在指定日期的所有成分股。

1. API 函数说明

get_industry_stocks(industry_code, date=None)
  • industry_code: 行业编码(如申万一级行业代码 '801780'、聚宽一级代码 'HY007' 或证监会行业代码 'I64' 等)。
  • date: 查询日期,支持字符串(如 '2023-01-01')或 datetime.date/datetime.datetime 对象。在回测模块中默认为 context.current_dt,在研究模块中默认为当天。
  • 返回值: 包含股票代码的 list

2. 获取行业列表与行业代码

在筛选股票之前,可以使用 get_industries() 获取完整的行业列表和对应的代码:

from jqdata import *

# 获取证监会行业列表
zjw_industries = get_industries(name='zjw')

# 获取申万一级行业列表
sw_l1_industries = get_industries(name='sw_l1')

# 获取聚宽一级行业列表
jq_l1_industries = get_industries(name='jq_l1')

3. 代码示例:筛选行业股票池与构建策略

以下是一个简单的聚宽策略示例,演示如何在开盘前获取计算机/互联网行业(证监会行业代码 'I64''I65')的成分股并构建动态股票池:

import jqdata

def initialize(context):
    # 设定基准
    set_benchmark('000300.XSHG')
    # 开启动态复权模式(真实价格)
    set_option('use_real_price', True)
    
    # 设置定时运行函数:每天开盘前更新股票池
    run_daily(before_market_open, time='09:00')

def before_market_open(context):
    # 根据行业代码获取信息技术/互联网行业成分股
    stocks_i64 = get_industry_stocks('I64', date=context.current_dt)
    stocks_i65 = get_industry_stocks('I65', date=context.current_dt)
    
    # 合并股票池并去重
    g.stocks = list(set(stocks_i64 + stocks_i65))
    log.info("今日获取到的行业成分股数量:", len(g.stocks))

def handle_data(context, data):
    # 在此处根据 g.stocks 编写买卖逻辑
    pass

4. 注意事项

  1. 行业标准变更:申万行业分类在历史上曾进行过调整(如 2014 年调整),传入 date 参数可有效防止未来函数,确保获取的是历史上当天的真实成分股。
  2. 多行业去重:如果需要组合多个行业的股票,建议使用 set() 进行去重,防止重复下单。