【聚宽 JoinQuant】聚宽如何获取行业成分股?get_industry_stocks()完整教程

📅 发布时间:2026/8/14 14:49:37
【聚宽 JoinQuant】聚宽如何获取行业成分股?get_industry_stocks()完整教程
本方案由EasyQuant AI量化助手提供。问题背景行业轮动、行业中性选股和主题策略都需要先构建行业股票池。聚宽可通过get_industry_stocks()获取指定行业在某一日期的全部成分股。完整代码示例def initialize(context): # 聚宽一级行业信息技术 g.industry_code HY008 g.industry_stocks [] # 每日盘前更新行业股票池 run_daily( update_industry_pool, timebefore_open ) def update_industry_pool(context): # 使用上一交易日避免当日数据风险 trade_date context.previous_date stocks get_industry_stocks( g.industry_code, datetrade_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( namejq_l1 ) print(industry_df)注意事项行业代码必须使用聚宽支持的分类体系例如HY008。行业成分股会变化回测时建议传入对应历史日期。股票池使用前应过滤停牌、ST 和退市整理股票。同一公司可能跨多个行业分类需明确采用的行业体系。行业股票池通常只是策略起点还应叠加估值、动量或风险因子。总结get_industry_stocks()是聚宽行业轮动和主题选股的基础接口。通过行业代码获取成分股再结合交易状态过滤即可构建动态行业股票池。