🚀 AI 一键生成 joinquant 策略代码

如何用 JoinQuant API 查询股票的上市日期和退市日期?(get_security_info)

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

问题描述

我想查询一只股票的上市日期等基本信息,应该怎么做?

解决方案

在 JoinQuant 聚宽平台上,查询一只股票的上市日期等基本信息,主要使用 get_security_info 函数。如果您需要查询全市场所有标的的信息,可以使用 get_all_securities 函数。

以下是具体的代码示例和说明:

1. 查询单只股票信息 (get_security_info)

该函数用于获取单个标的(股票、基金、指数等)的详细信息对象。

代码示例:

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

# 以平安银行(000001.XSHE)为例
code = '000001.XSHE'

# 获取标的信息对象
info = get_security_info(code)

# 打印各项基本信息
print("代码: %s" % code)
print("中文名称: %s" % info.display_name)
print("缩写简称: %s" % info.name)
print("上市日期: %s" % info.start_date)
print("退市日期: %s" % info.end_date) # 如果未退市,通常显示为 2200-01-01
print("类型: %s" % info.type)         # stock(股票), fund(基金), index(指数) 等

返回值说明:
返回的是一个对象,包含以下属性:

  • display_name: 中文名称
  • name: 缩写简称(拼音首字母)
  • start_date: 上市日期 (datetime.date 类型)
  • end_date: 退市日期 (datetime.date 类型)
  • type: 标的类型(如 'stock')
  • parent: 分级基金的母基金代码

2. 查询所有或多只股票信息 (get_all_securities)

如果您需要以列表形式查看大量股票的上市日期,使用 get_all_securities 会更高效,它返回一个 pandas.DataFrame

代码示例:

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

# 获取当前市场上所有股票的信息
# date参数可选,指定日期表示获取该日期还在上市的股票,不填则获取所有历史股票
df = get_all_securities(types=['stock'], date='2023-01-01')

# 打印前5行查看
print(df.head())

# 如果想查看特定几只股票的信息,可以通过索引筛选
codes = ['000001.XSHE', '600519.XSHG']
print(df.loc[codes, ['display_name', 'start_date']])

返回值说明:
返回 pandas.DataFrame,包含以下列:

  • display_name: 中文名称
  • name: 缩写简称
  • start_date: 上市日期
  • end_date: 退市日期
  • type: 类型

Q&A

Q: get_security_info 只能查询股票吗?
A: 不止。它还可以查询基金(fund)、指数(index)、期货(futures)、ETF 等标的的信息。

Q: 如果查询的股票代码不存在会发生什么?
A: 如果传入错误的代码,get_security_info 通常会返回 None。在使用返回对象属性前(如 .start_date),建议先判断对象是否为 None

Q: start_date 返回的数据类型是什么?
A: 返回的是 Python 的 datetime.date 对象(例如 datetime.date(1991, 4, 3)),而不是字符串。如果需要字符串格式,可以使用 str(info.start_date) 转换。