🚀 AI 一键生成 joinquant 策略代码

JoinQuant 平台如何查询上市公司的十大股东持股数据?

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

问题描述

如何用代码查询恒瑞医药的十大股东数据?

解决方案

在聚宽(JoinQuant)平台中,查询恒瑞医药(股票代码:600276.XSHG)的十大股东数据,需要使用 finance.run_query 函数配合 finance.STK_SHAREHOLDER_TOP10(十大股东数据表)进行查询。

以下是具体的代码实现及说明:

查询恒瑞医药最新十大股东代码

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

# 设置股票代码:恒瑞医药
stock_code = '600276.XSHG'

# 构建查询语句
q = query(
    finance.STK_SHAREHOLDER_TOP10
).filter(
    finance.STK_SHAREHOLDER_TOP10.code == stock_code
).order_by(
    # 按发布日期降序排列,获取最新的数据
    finance.STK_SHAREHOLDER_TOP10.pub_date.desc()
).limit(10) # 限制返回10条数据

# 执行查询
df = finance.run_query(q)

# 打印结果
print(df)

代码详解

  1. 导入库from jqdata import * 是必须的步骤,用于引入聚宽的数据接口。
  2. 确定表名finance.STK_SHAREHOLDER_TOP10 是存储上市公司十大股东信息的数据库表。
  3. 过滤条件 (filter):使用 code == '600276.XSHG' 锁定恒瑞医药。
  4. 排序 (order_by):使用 pub_date.desc() 按照发布日期从近到远排序,确保获取的是最新的股东名单。
  5. 限制数量 (limit)limit(10) 表示只取前10条记录。由于十大股东通常有10个(有时因并列可能多于10个,或者数据录入分批),这里取前10条通常能覆盖最新的十大股东列表。

返回数据字段说明

查询结果 df 是一个 pandas DataFrame,主要包含以下关键字段:

  • company_name: 公司名称
  • code: 股票代码
  • pub_date: 公告日期
  • end_date: 截止日期(报告期)
  • shareholder_name: 股东名称
  • share_number: 持股数量(股)
  • share_ratio: 持股比例(%)
  • shareholder_rank: 股东排名
  • share_type: 股份性质(如:流通A股)

Q&A

Q: 如何查询特定日期(例如2022年年报)的十大股东?
A: 可以在 filter 中增加日期过滤条件。例如查询截止日期为 2022-12-31 的数据:

q = query(finance.STK_SHAREHOLDER_TOP10).filter(
    finance.STK_SHAREHOLDER_TOP10.code == '600276.XSHG',
    finance.STK_SHAREHOLDER_TOP10.end_date == '2022-12-31'
)

Q: 如何查询十大流通股东而不是总股本的十大股东?
A: 聚宽提供了另一张表 finance.STK_SHAREHOLDER_FLOATING_TOP10 专门用于存储十大流通股东数据。查询方法与上述代码一致,只需将表名替换即可。

Q: 查询结果中的 share_ratio 单位是什么?
A: share_ratio 的单位是百分比(%)。例如,如果值为 15.5,代表持有该上市公司 15.5% 的股份。