🚀 AI 一键生成 joinquant 策略代码

为什么在 JoinQuant 使用 get_concepts() 会提示“无法获取概念板块列表”?

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

问题描述

get_concepts()函数返回“无法获取概念板块列表”

如为什么我用get_concepts()函数返回“无法获取概念板块列表”这个错误信息?
请管理员解答一下为盼

解决方案

在 JoinQuant (聚宽) 平台上使用 get_concepts() 函数时遇到“无法获取概念板块列表”的错误,通常是由以下几个原因引起的。请按照以下步骤进行排查和解决:

1. 未正确导入 jqdata 库

get_concepts()jqdata 模块下的函数。如果在调用该函数之前没有正确导入库,系统将无法识别并获取数据。
解决方法:确保在代码的开头(或 initialize 函数外部)添加了以下导入语句:

from jqdata import *

2. 平台服务器或网络临时波动

有时候,聚宽的数据服务器可能会进行短暂的维护或遇到网络波动,导致数据请求超时或失败,从而抛出该错误。
解决方法

  • 稍等片刻后重新运行代码(点击“编译运行”或重新执行研究环境的 Cell)。
  • 如果是在研究环境中,可以尝试重启 Kernel。

3. 运行环境限制

请确认您运行代码的环境。get_concepts() 支持在回测环境模拟交易以及投资研究模块中使用。如果您在本地脱机环境(未使用 jqdatasdk 且未正确配置账号)中直接运行,是无法获取到官网数据的。

4. 正确的代码示例

以下是在研究环境或策略中获取概念板块列表的标准写法:

# 导入聚宽数据包
from jqdata import *

def initialize(context):
    # 获取所有的概念板块列表
    df_concepts = get_concepts()
    
    # 打印前5行数据查看
    log.info(df_concepts.head())
    
    # 获取特定概念板块(例如:风电概念 'SC0084')的成分股
    # stocks = get_concept_stocks('SC0084', date=context.current_dt)
    # log.info(stocks)

补充说明

get_concepts() 函数返回的是一个 pandas.DataFrame,包含以下列:

  • index: 概念代码(如 'SC0084')
  • name: 概念名称(如 '风电概念')
  • start_date: 开始日期

如果您确认代码无误且持续报错,建议检查日志中是否有其他关联的 TimeoutErrorOperationalError,这通常意味着需要减少单次查询的数据量或联系聚宽官方客服反馈服务器状态。