【聚宽 JoinQuant】聚宽如何获取行业成分股?get_industry_stocks()完整教程
2026/8/29 22:43:38 网站建设 项目流程

本方案由EasyQuant AI量化助手提供。

问题背景

行业轮动、行业中性选股和主题策略,都需要先构建行业股票池。聚宽可通过get_industry_stocks()获取指定行业在某一日期的全部成分股。

完整代码示例

def initialize(context): # 聚宽一级行业:信息技术 g.industry_code = "HY008" g.industry_stocks = [] # 每日盘前更新行业股票池 run_daily( update_industry_pool, time="before_open" ) def update_industry_pool(context): # 使用上一交易日,避免当日数据风险 trade_date = context.previous_date stocks = get_industry_stocks( g.industry_code, date=trade_date ) if not stocks: log.info("未获取到行业成分股") g.industry_stocks = [] return current_data = get_current_data() valid_stocks = [] for stock in stocks: # 过滤停牌、ST和退市标记股票 if current_data[stock].paused: continue if current_data[stock].is_st: continue if "退" in current_data[stock].name: continue valid_stocks.append(stock) g.industry_stocks = valid_stocks set_universe(g.industry_stocks) log.info( "行业=%s,原始股票数=%d,可交易股票数=%d" % ( g.industry_code, len(stocks), len(g.industry_stocks) ) ) def handle_data(context, data): # 示例:输出前5只行业股票的价格 for stock in g.industry_stocks[:5]: if stock not in data: continue log.info( "%s 当前价格:%.2f" % (stock, data[stock].close) )

查看行业代码示例

from jqdata import get_industries # 获取聚宽一级行业列表 industry_df = get_industries( name="jq_l1" ) print(industry_df)

注意事项

  1. 行业代码必须使用聚宽支持的分类体系,例如HY008

  2. 行业成分股会变化,回测时建议传入对应历史日期。

  3. 股票池使用前应过滤停牌、ST 和退市整理股票。

  4. 同一公司可能跨多个行业分类,需明确采用的行业体系。

  5. 行业股票池通常只是策略起点,还应叠加估值、动量或风险因子。

总结

get_industry_stocks()是聚宽行业轮动和主题选股的基础接口。通过行业代码获取成分股,再结合交易状态过滤,即可构建动态行业股票池。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询