问题描述
from jqdatasdk import finance
finance.run_query(query(finance.STK_XR_XD).filter(finance.STK_XR_XD.code==code).order_by(finance.STK_XR_XD.report_date).limit(n)
记录由上市公司年报、中报、一季报、三季报统计出的分红转增情况。
这不是我需要的,可否列出当日比如 2020-8-14日发生分红的所有上市公司,及其方案?
解决方案
要获取指定日期(例如 2020-08-14)发生除权除息的所有上市公司及其分红方案,您需要将过滤条件从 code(股票代码)或 report_date(报告期)更改为 a_xr_date(A股除权除息日)。
在 JoinQuant 的 finance.STK_XR_XD(分红送万表)中,a_xr_date 字段记录了具体的除息除权日期。您可以通过过滤该字段来获取当日所有分红的股票及其方案详情。
Python 实现代码
以下是查询 2020-08-14 当日所有除权除息股票及其分红方案的完整代码:
from jqdata import finance
# 如果在本地使用 jqdatasdk,请使用:
# from jqdatasdk import finance, query
# 指定要查询的除权除息日期
target_date = '2020-08-14'
# 构建查询语句
q = query(
finance.STK_XR_XD.code, # 股票代码
finance.STK_XR_XD.company_name, # 公司名称
finance.STK_XR_XD.a_xr_date, # A股除权除息日
finance.STK_XR_XD.bonus_ratio_rmb, # 派息比例(税前)(元/10股)
finance.STK_XR_XD.capital_bonus_ratio, # 转增比例(股/10股)
finance.STK_XR_XD.bonus_ratio # 送股比例(股/10股)
).filter(
finance.STK_XR_XD.a_xr_date == target_date
)
# 执行查询
df = finance.run_query(q)
# 打印结果
print(f"{target_date} 除权除息的股票及方案如下:")
print(df)
字段说明
a_xr_date: A股除权除息日。这是股票实际发生除息的日期。bonus_ratio_rmb: 派息比例(每10股派发的现金红利,含税)。capital_bonus_ratio: 转增比例(每10股转增的股数)。bonus_ratio: 送股比例(每10股送红股的股数)。
通过这种方式,您可以轻松拉取任意指定交易日发生分红除息的所有股票列表及其具体的“每10股派息/送股/转增”方案。