🚀 AI 一键生成 joinquant 策略代码

如何使用 JoinQuant API 获取特定行业或概念板块的全部股票?

joinquant | 发布时间: 2025/11/25
以下内容由 EasyQuant 生成。

问题描述

如何获取所有属于新能源汽车概念的股票列表?

解决方案

在聚宽(JoinQuant)平台中,获取属于“新能源汽车”概念的股票列表通常分为两步:

  1. 查找概念代码:使用 get_concepts() 获取所有概念板块信息,找到“新能源汽车”对应的概念代码(Concept Code)。
  2. 获取成分股:使用 get_concept_stocks() 根据找到的代码获取股票列表。

以下是完整的实现代码,您可以直接在聚宽的研究环境或回测中运行:

# -*- coding: utf-8 -*-
from jqdata import *

# 1. 获取所有概念板块列表
all_concepts = get_concepts()

# 2. 筛选出名称为 "新能源汽车" 的概念信息
# 注意:概念名称必须完全匹配,如果不确定具体名称,可以打印 all_concepts 查看
target_concept = all_concepts[all_concepts['name'] == '新能源汽车']

if not target_concept.empty:
    # 获取概念代码 (index即为概念代码)
    concept_code = target_concept.index[0]
    concept_name = target_concept['name'][0]
    print(f"找到概念: {concept_name}, 代码: {concept_code}")

    # 3. 获取该概念下的所有股票代码
    stock_list = get_concept_stocks(concept_code)
    
    print(f"该概念下共有 {len(stock_list)} 只股票")
    print("股票代码列表 (前10个):", stock_list[:10])
    
    # (可选) 获取股票中文名称以便查看
    stocks_info = get_all_securities(date=None).loc[stock_list]
    print("\n股票详情示例:")
    print(stocks_info[['display_name', 'name']].head())
    
else:
    print("未找到名称为 '新能源汽车' 的概念板块,请检查名称是否正确。")

代码说明:

  1. get_concepts(): 返回一个 DataFrame,索引(index)是概念代码(如 GNxxx),列包含概念名称(name)和起始日期。
  2. get_concept_stocks(concept_code): 传入上一步获取的代码,返回一个包含股票代码(如 000001.XSHE)的列表。
  3. get_all_securities(): 这是一个辅助步骤,用于将代码转换为中文名称(display_name),方便阅读。

提示:

如果您不确定概念的具体名称(例如是叫“新能源”还是“新能源车”),可以使用以下代码进行模糊搜索:

# 模糊搜索包含 "新能源" 的所有概念
search_result = all_concepts[all_concepts['name'].str.contains('新能源')]
print(search_result)