3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
您好!聚宽的 ROE 计算口径与业界标准是一致的。您获取到的茅台 ROE 数据之所以只有 8%~10% 左右,是因为您获取到的是「单季度」的 ROE,而不是「年度」的 ROE。
观察您代码的输出结果,statDate 列显示的时间全是 03-31(如 2022-03-31),这代表您获取的是**第一季度(Q1)**的财务报表数据。
在聚宽的 get_history_fundamentals 函数中,默认参数 stat_by_year=False。这意味着函数默认返回的是按季度统计的数据。当您设置 interval='1y' 时,它的逻辑是“每隔一年取一次单季度数据”,所以它取出了过去 10 年里每一年的第一季度(Q1)的 ROE。茅台一季度的 ROE 大概在 8%~10% 左右,全年四个季度累加起来自然就是 30% 左右了。
如果您想获取年度财务数据(即年报中的全年 ROE),需要满足以下几个条件:
stat_by_year=True。interval 必须是 '1y'。stat_date 参数指定年份(例如 '2022'),而不能使用 watch_date。请使用以下代码来获取茅台近十年的年度 ROE:
from jqdata import *
import datetime
# 获取茅台近10年的年度ROE
df = get_history_fundamentals(
security=['600519.XSHG'],
fields=[indicator.roe],
stat_date='2022', # 指定从2022年报开始往前推
count=10, # 获取10年的数据
interval='1y', # 间隔为1年
stat_by_year=True # 开启按年度统计
)
print(df)
根据聚宽 API 文档中关于 get_history_fundamentals 的说明:
True:
interval 必须是 '1y'stat_date 的话, stat_date 必须是一个代表年份整数、字符串,表明统计的年份,比如 2019, '2019'。通过上述修改,您就可以获取到茅台常年高于 20% 的真实年度 ROE 数据了!