news 2026/9/11 20:10:48

Vibe-Trading 数据工程实战:Tushare report_rc 券商盈利预测数据全量提取与量化应用指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vibe-Trading 数据工程实战:Tushare report_rc 券商盈利预测数据全量提取与量化应用指南

Vibe-Trading 数据工程实战:Tushare report_rc 券商盈利预测数据全量提取与量化应用指南

【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading

本篇技术指南以 Vibe-Trading 仓库中 Tushare 技能库的report_rc(券商盈利预测数据)接口文档为核心,系统讲解该接口的字段语义、权限梯次、分页循环提取方案,并在此基础上延伸出一致预期修正、目标价隐含空间、评级跟踪等量化应用思路。读完本文,你将掌握如何在该项目的 Tushare 技能框架(agent/src/skills/tushare/SKILL.md)下,把卖方研报中的盈利预测数据稳定、合规地纳入个人交易 Agent 的研究管线。

一、接口概览:券商盈利预测数据在项目数据资产中的定位

report_rc是 Tushare「股票数据 / 特色数据」分类下的一个高频更新接口,由 券商盈利预测数据文档 收录,并在技能总表(SKILL.md 中 ID 292 行)登记为:

获取券商(卖方)每天研报的盈利预测数据,数据从 2010 年开始,每晚 19~22 点更新当日数据。

从仓库源码结构看,Tushare 被 Vibe-Trading 视为基础财经数据源之一:agent/src/market_data.py 在数据源路由逻辑中把tushare作为默认数据源返回(见 market_data.py 第 70 行return "tushare"),并针对代码后缀做了精细化分发。这意味着通过本文获取的盈利预测数据,可以顺理成章地汇入项目的行情、财务因子流水线,为 Agent 的选股与投研决策提供卖方视角的基本面输入。

接口核心事实(以仓库文档为准):

项目说明
接口名report_rc
数据起始2010 年
更新时点每晚 19~22 点更新当日数据
单次限量最大 3000 条,可分页和循环提取所有数据
试用权限120 积分,每天 10 次请求
正式权限8000 积分,每天可请求 100000 次
高等级权限10000 积分以上无总量限制

需要说明:积分与调用量规则来自当前仓库接口文档的历史登记,实际额度请以 Tushare 官方实时公布的权限体系为准,项目文档仅作参考。

二、输入参数详解与调用方式

接口提供 4 个可选输入参数,全部非必选,可按需组合:

名称类型必选描述
ts_codestrN股票代码
report_datestrN报告日期
start_datestrN报告开始日期
end_datestrN报告结束日期

参数格式遵循 Tushare 通用约定:日期为YYYYMMDD(如20220429);股票代码为ts_code格式(如000733.SZ688385.SH);返回结果为 pandasDataFrame。这些约定在 SKILL.md 的「参数格式说明」一节有统一声明。

2.1 最简调用

原文档给出的标准用法:

pro = ts.pro_api() df = pro.report_rc(ts_code='', report_date='20220429')

即按单个报告日期拉取当日全部券商研报的盈利预测记录。

2.2 按股票代码提取

# 提取单只股票的全部盈利预测记录(不限报告日期) df = pro.report_rc(ts_code='000858.SZ')

2.3 按日期区间提取

# 提取 2022 年 4 月整月的盈利预测数据 df = pro.report_rc(start_date='20220401', end_date='20220430')

三、输出参数全字段解读

接口返回 20 个字段,原文档字段表如下,其中 17 个默认显示,imp_dgcreate_time默认不显示(可通过fields参数显式指定获取):

名称类型默认显示描述
ts_codestrY股票代码
namestrY股票名称
report_datestrY研报日期
report_titlestrY报告标题
report_typestrY报告类型
classifystrY报告分类
org_namestrY机构名称
author_namestrY作者
quarterstrY预测报告期
op_rtfloatY预测营业收入(万元)
op_prfloatY预测营业利润(万元)
tpfloatY预测利润总额(万元)
npfloatY预测净利润(万元)
epsfloatY预测每股收益(元)
pefloatY预测市盈率
rdfloatY预测股息率
roefloatY预测净资产收益率
ev_ebitdafloatY预测 EV/EBITDA
ratingstrY卖方评级
max_pricefloatY预测最高目标价
min_pricefloatY预测最低目标价
imp_dgstrN机构关注度
create_timedatetimeNTS 数据更新时间

3.1 字段分组理解

标识与元信息类ts_codenamereport_datereport_titlereport_typeclassifyorg_nameauthor_namequartercreate_time):描述"哪家机构、哪位分析师、在什么时候、对哪只股票、针对哪个报告期"发布预测,是去重与跟踪的键。其中quarter(如2022Q42024Q4)表示预测所对应的财季,同一天同一机构可能对同一股票输出多个季度预测(见数据样例中五粮液同一报告日有三条不同季度记录)。

预测财务数据类op_rtop_prtpnp):单位均为万元。这是构建一致预期(Consensus Estimates)的核心输入,可通过同股票、同季度、多机构取均值/中位数得到市场一致预期值。

预测估值指标类epsperdroeev_ebitda):分析师在预测利润基础上推导出的每股收益、市盈率、股息率、ROE 与 EV/EBITDA,可用于横向比较不同机构对同一标的的估值判断分歧度。

目标价与评级类ratingmax_pricemin_price):卖方给出的评级结论与目标价区间。max_pricemin_price构成目标价带,可计算相对现价的隐含上行/下行空间。

辅助信号类imp_dg):机构关注度字段,可用于刻画市场关注度分布。

3.2 数据样例还原

原文档给出report_date='20220429'时的部分返回:

ts_code name report_date classify org_name quarter eps pe 0 000733.SZ 振华科技 20220429 一般报告 安信证券 2024Q4 6.7800 14.2000 1 000858.SZ 五粮液 20220429 一般报告 华西证券 2022Q4 6.9800 23.7700 2 000858.SZ 五粮液 20220429 一般报告 华西证券 2023Q4 8.2200 20.1800 3 000858.SZ 五粮液 20220429 一般报告 华西证券 2024Q4 9.5800 17.3100 4 000858.SZ 五粮液 20220429 一般报告 信达证券 2022Q4 7.1100 23.3100 ... 2552 688385.SH 复旦微电 20220429 一般报告 方正证券 2022Q4 0.9100 62.7000 2553 688385.SH 复旦微电 20220429 一般报告 方正证券 2023Q4 1.1600 49.1900 2554 688385.SH 复旦微电 20220429 一般报告 方正证券 2024Q4 1.5800 36.3200 2555 000733.SZ 振华科技 20220429 一般报告 安信证券 2022Q4 4.3000 22.4000 2556 000733.SZ 振华科技 20220429 一般报告 安信证券 2023Q4 5.4100 17.8000

样例清晰地展示了单日 2557 条记录中"一票多季、多机构覆盖"的数据形态——这正是计算一致预期与分歧度的天然样本。

四、环境准备:在 Vibe-Trading 中接入 Tushare

4.1 安装与 Token 配置

按 SKILL.md 的快速上手说明,先安装 Tushare(推荐 Python 3.7+,官方建议从清华 PyPI 镜像安装):

pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple

然后在 Tushare 官网注册获取 token,并配置环境变量:

export TUSHARE_TOKEN=your_token

4.2 项目内 Token 读取惯例

仓库的示例脚本 agent/src/skills/tushare/scripts/stock_data_example.py 给出了项目内的标准初始化方式——优先从项目配置读取tushare_token,其次回退到本地缓存的 token:

import tushare as ts from src.config.accessor import get_env_config # 读取环境变量中的 token,或读取本地记录的 token token = get_env_config().data.tushare_token or ts.get_token() # 初始化 pro 接口 pro = ts.pro_api(token)

这种写法同时兼容"环境变量注入"与"项目配置注入"两种部署形态,是接入项目其他数据管线的推荐姿势。

五、突破单次 3000 条限制:分页循环全量提取

单次调用上限 3000 条,而单日全市场研报预测数据常常超过该量级(如样例单日即达 2557 条,且这是多家机构、多季度叠加的结果)。要完整提取,必须按日期逐日分页循环。以下是一个可直接运行的工程化版本:

import time import tushare as ts import pandas as pd from src.config.accessor import get_env_config pro = ts.pro_api(get_env_config().data.tushare_token or ts.get_token()) def fetch_report_rc_by_date(start_date, end_date): """ 按日期区间循环提取券商盈利预测数据。 单次请求最多 3000 条,逐日请求天然规避超限,并便于断点续传。 """ all_frames = [] # 逐日请求(示例中用交易日历自行过滤,这里用简单日期生成示意) # 实际生产环境建议配合 trade_cal 接口获取交易日历后逐交易日请求 for day in pd.date_range(start_date, end_date, freq='D'): day_str = day.strftime('%Y%m%d') try: df = pro.report_rc(report_date=day_str) except Exception as exc: print(f"{day_str} 请求失败:{exc}") time.sleep(1) # 失败后退避,避免触发频控 continue if df is not None and not df.empty: all_frames.append(df) print(f"{day_str} -> {len(df)} 条") time.sleep(0.2) # 温和限速,照顾每日调用量配额 if not all_frames: return pd.DataFrame() return pd.concat(all_frames, ignore_index=True) result = fetch_report_rc_by_date('20220401', '20220430') print(result)

要点说明:

  • report_date为循环键:单日数据量通常可控,逐日请求即可把每次返回压在 3000 条以内,无需再处理offset翻页;
  • 温和限速与失败退避:试用权限每天仅 10 次请求,正式权限为每天 10 万次,脚本中的time.sleep与异常捕获用于防止突发频控;
  • 断点续传友好:逐日独立请求天然支持"失败日期记录后重试",适合长期增量采集任务。

六、数据字段在量化研究中的典型用法

6.1 构建一致预期(Consensus)

同一ts_code+ 同一quarter下有多家机构的多条预测,可按np/eps聚合出市场一致预期:

consensus = df[df['quarter'] == '2024Q4'] \ .groupby('ts_code') \ .agg(consensus_np=('np', 'mean'), consensus_eps=('eps', 'mean'), n_analysts=('eps', 'count'), eps_std=('eps', 'std')) \ .reset_index()

eps_std / consensus_eps可刻画分析师分歧度——分歧度本身就是一个低频但有效的横截面信号。

6.2 目标价隐含空间

结合daily_basic(每日指标)的收盘价,可计算目标价带隐含的涨跌空间:

# 以 max_price 与当前价构造隐含上行空间 df['implied_upside_max'] = df['max_price'] / price - 1

该指标适合在 Agent 的研究纪要中作为"卖方乐观情形"的参考锚点,与rating评级分布一起构成情绪面证据链。

6.3 盈利预测修正跟踪

对同一标的、同一quarter,跨report_date跟踪np/eps的修正方向(上调/下调),是事件驱动与基本面选股中常用的 Alpha 来源。由于report_rc每晚 19~22 点更新当日数据,次日开盘前即可消费最新预测变动,天然适配日频研究节奏。

七、与仓库内相关数据接口的协同

report_rc并非孤立接口,在 Tushare 技能库中可以与其他卖方相关数据形成完整链路:

接口文档位置与盈利预测的协同点
research_report(券商研究报告)references/大模型语料专题数据/券商研究报告.md提供研报摘要、标题、作者与下载链接,可对report_title/author_name交叉印证,定位预测背后的完整研报原文
broker_recommend(券商月度金股)references/股票数据/特色数据/券商月度金股.md提供券商月度荐股名单,可与盈利预测数据叠加分析"被推荐标的的盈利预期质量"
fina_indicator(财务指标)见 SKILL.md 数据接口列表用实际财务数据校验预测的命中率,评估卖方预测的长期系统性偏差
daily_basic(每日指标)同上提供现价、市值,用于计算目标价隐含空间与预测 PE 的合理性校验

示例脚本 stock_data_example.py 展示了stock_basicdailyfina_indicator的完整串联模式,可参照其结构把report_rc接入同一研究流程。

八、注意事项与最佳实践

  1. 更新时点纪律:数据每晚 19~22 点更新,增量任务应安排在 22 点之后执行,确保当日数据完整入库;
  2. 权限梯次管理:试用期(120 积分 / 每天 10 次)只适合小范围验证;规模化采集需升级至正式权限(8000 积分 / 每天 10 万次)或 10000 积分以上的无限量档位,务必在代码中按配额做限速;
  3. 单位陷阱op_rtop_prtpnp均为万元eps单位为元,做横截面比较前需先统一量纲;
  4. 多季度并存:同一记录日可能同时输出未来多个季度的预测,构建因子时务必按quarter对齐,避免跨期混淆;
  5. 数据版权:盈利预测数据来源于券商公开研报,属卖方知识产权,仅供个人研究与策略开发使用,商业化使用前需确认数据授权边界。

九、小结

report_rc是 Vibe-Trading Tushare 技能库中少有的"卖方预测类"特色数据接口,其价值在于把分散在数千份研报中的盈利预测、目标价与评级,以结构化表格的形式统一暴露给量化管线。结合本文的分页循环提取方案、字段对齐规则与一致预期构建思路,你可以把"卖方怎么看"这一维度的信息,稳定地纳入个人交易 Agent 的日常研究循环之中,与行情、财务、资金流向等数据共同构成多源证据链。

延伸阅读:Tushare 技能入口 · 券商盈利预测数据接口文档 · 股票数据获取示例 · 券商研究报告接口

【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 20:09:54

AI设备巡检,先撕掉了“巡而不检”的遮羞布!?

设备巡检最尴尬的,不是没人巡。 而是每天都有人巡,巡检表也一张不少,设备却还是会突然停机。 员工到了现场,拿着巡检表看一圈,温度正常、压力正常、润滑正常,全部打勾,签字提交。 从管理记录来看…

作者头像 李华
网站建设 2026/9/11 20:09:14

分布式ID生成方案全解析:从数据库自增到雪花算法

1. 分布式ID的典型业务场景与核心挑战在分布式系统中生成全局唯一ID这件事,听起来简单但实际暗藏玄机。我经历过一个电商项目,初期直接用数据库自增ID,结果分库分表后出现大量ID冲突,促销活动时订单系统直接瘫痪。这才意识到分布式…

作者头像 李华
网站建设 2026/9/11 20:06:49

智慧园区管理系统落地避坑:别只盯着大屏,先看这3个底层能力

智慧园区管理系统落地避坑:别只盯着大屏,先看这3个底层能力 “智慧园区"这几个字,这几年在园区圈子里越来越火。很多园区运营方一听"智慧”,第一反应就是:先建个指挥中心、上块炫酷的大屏,数据实…

作者头像 李华
网站建设 2026/9/11 20:04:56

2025数据中心核心技术:湖仓一体与智能更新引擎解析

1. 项目背景与核心价值2025年企业级数据中心正面临前所未有的变革窗口期。根据第三方调研机构统计,全球数据中心基础设施市场规模将在2025年突破2500亿美元,其中互联网相关数据服务占比预计达到62%。这个看似简单的数据更新项目,实际上涉及三…

作者头像 李华
网站建设 2026/9/11 20:01:15

pytorch 适合初学者 0基础学习

1.Dataset类代码作用:把一个图片文件夹包装成 PyTorch 数据集,让你能查询图片数量,并按编号取出图片标签。# 导入 PyTorch 的 Dataset 类,用来定义自己的数据集 from torch.utils.data import Dataset# 导入图片处理工具 Image&am…

作者头像 李华