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

为什么 JoinQuant 的 get_all_securities 取不到科创板股票?

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

问题描述

get_all_securities怎么取不到科创板股票

解决方案

在 JoinQuant (聚宽) 平台上,使用 get_all_securities 函数是可以获取到科创板股票的。如果您发现取不到,通常是由于以下几个原因导致的:

1. date 参数设置过早

科创板于 2019年7月22日 正式开市。如果您在调用 get_all_securities 时,传入的 date 参数早于这个日期,那么返回的股票列表中自然不会包含科创板股票。

解决方法:确保传入的 date 参数在 2019-07-22 之后,或者直接不传 date 参数(默认获取所有日期上市过的股票信息)。

2. 未正确筛选科创板代码

get_all_securities(['stock']) 会返回所有的 A 股股票(包括主板、创业板、科创板等)。科创板股票的代码特征是 688 开头,后缀为 .XSHG。您需要从返回的 DataFrame 中自行筛选出科创板股票。

正确获取科创板股票的代码示例

以下是一个完整的代码示例,展示如何获取当前上市的所有科创板股票:

from jqdata import *

def initialize(context):
    # 获取当前日期(或者指定一个 2019-07-22 之后的日期)
    current_date = context.current_dt.date()
    
    # 获取所有股票信息
    all_stocks = get_all_securities(types=['stock'], date=current_date)
    
    # 筛选出科创板股票 (代码以 '688' 开头)
    # all_stocks 的 index 是股票代码
    star_market_stocks = [code for code in all_stocks.index if code.startswith('688')]
    
    log.info(f"当前日期 {current_date} 共有 {len(star_market_stocks)} 只科创板股票。")
    log.info(f"科创板股票示例: {star_market_stocks[:5]}")

总结

  • 确保 types=['stock']
  • 确保 date 参数在 2019年7月22日之后。
  • 通过判断股票代码是否以 688 开头来提取科创板股票列表。