Vibe-Trading 实战:Tushare 业绩预告(forecast)接口全解析——从单股历史查询到全市场批量提取 Vibe-Trading 实战Tushare 业绩预告forecast接口全解析——从单股历史查询到全市场批量提取【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading业绩预告是 A 股上市公司在正式财报披露前提前向市场预告报告期净利润变动区间的强制性披露信息是量化研究中最具时效性的基本面事件信号之一。本文以 Vibe-Trading 仓库中 业绩预告接口文档 为核心系统拆解 Tushareforecast接口的权限要求、输入输出参数、单股与全市场两种调用方式并结合仓库内 ST 风险预测框架 与 盈利预测与一致预期分析 两个技能的实际用法帮助你掌握业绩预告数据的工程化取数与策略应用。接口概述业绩预告数据的核心价值Tushare 的forecast接口用于获取上市公司业绩预告数据。在 A 股信息披露体系中业绩预告处于事件时间线的最前沿业绩预告1 月底 / 7 月中旬 / 10 月底高发→ 业绩快报 → 正式财报业绩预告比正式财报更早释放盈利信号但精度相对较低。在 Vibe-Trading 的 盈利预测技能 中业绩预告被明确列为比正式报告更早的信号源年报预告集中于 1 月中旬披露中报预告集中于 7 月中旬抢先捕捉预期差是 PEAD盈余公告后漂移策略建仓的关键前置步骤。该接口在 Tushare 技能索引 中的注册 ID 为 45归属于股票数据 / 财务数据分类可通过pro.forecast(...)直接调用。权限与积分要求使用forecast接口需要满足 Tushare 平台的积分门槛数据范围接口最低积分要求单只股票历史数据forecast2000 积分某一季度全市场上市公司forecast_vip5000 积分两点需要特别注意单股限制标准forecast接口只能按单只股票ts_code获取其历史数据无法一次拉取某季度全部上市公司的业绩预告批量通道如需获取某一季度全部上市公司数据必须使用forecast_vip接口参数与forecast完全一致对应 5000 积分档位。在 ST 风险预测框架 的依赖的 tushare 接口清单中forecast明确标注为 2000 积分接口与income利润表、express业绩快报处于同一积分档位。输入参数详解forecast接口的输入参数全部为可选参数可通过不同参数组合实现不同粒度的数据查询名称类型必选描述ts_codestrN股票代码二选一如000001.SZ、600000.SHann_datestrN公告日期二选一如20190131start_datestrN公告开始日期end_datestrN公告结束日期periodstrN报告期取每个季度最后一天的日期。例如20171231表示年报、20170630表示半年报、20170930表示三季报typestrN预告类型预增 / 预减 / 扭亏 / 首亏 / 续亏 / 续盈 / 略增 / 略减参数使用要点ts_code与ann_date为二选一主键按股票代码查询其历史全部业绩预告或按公告日期查询当日全市场受积分限制的预告数据period的日期约定必须使用季度最后一天且与报告期语义绑定——1231结尾为年报、0630结尾为半年报、0930结尾为三季报。在 ST 风险预测框架 中正是利用这一约定通过ts_code 最近 2 个 period{Y}0630/{Y}0930/{Y}1231拉取业绩预告数据type的八种枚举覆盖了业绩预告的全部法定分类可用于定向筛选预增 / 扭亏等正向预告。输出参数详解接口返回的字段覆盖了预告的类型 净利润区间 上年同期基准 文本摘要四个维度名称类型描述ts_codestrTS 股票代码ann_datestr公告日期end_datestr报告期typestr业绩预告类型预增 / 预减 / 扭亏 / 首亏 / 续亏 / 续盈 / 略增 / 略减p_change_minfloat预告净利润变动幅度下限%p_change_maxfloat预告净利润变动幅度上限%net_profit_minfloat预告净利润下限万元net_profit_maxfloat预告净利润上限万元last_parent_netfloat上年同期归属母公司净利润first_ann_datestr首次公告日summarystr业绩预告摘要change_reasonstr业绩变动原因输出字段的业务含义区间型字段p_change_min/p_change_max净利润同比变动幅度区间与net_profit_min/net_profit_max净利润绝对额区间成对出现反映上市公司给出的预测范围。当p_change_min p_change_max时表示预告为精确值非区间基准字段last_parent_net为上年同期归属母公司净利润是计算同比增幅的基准文本字段summary与change_reason提供了预告摘要和业绩变动原因可支撑自然语言级的归因分析时间字段first_ann_date首次公告日与ann_date本次公告日区分可用于识别上市公司对预告的后续修正。在 ST 风险预测框架 中有明确的应用约定若forecast给出了net_profit_min/net_profit_max则直接取该区间作为全年归母净利润预测称为forecast 直采法可信度判定为高禁止再用三季报机械年化去覆盖已有预告的数据这体现了业绩预告数据在财务预测中的优先级。接口用法基础调用示例标准调用方式通过ts.pro_api()创建接口实例后直接调用import os import tushare as ts # 初始化 pro 接口实例token 取自环境变量或本地记录 token os.getenv(TUSHARE_TOKEN) or ts.get_token() pro ts.pro_api(token) # 按公告日期查询2019-01-31 当天发布业绩预告的股票 pro.forecast( ann_date20190131, fieldsts_code,ann_date,end_date,type,p_change_min,p_change_max,net_profit_min )调用要点fields参数用于精简返回列在数据量较大时可显著降低传输开销建议按需选取返回结果为 pandasDataFrame可直接进行筛选、排序与透视日期参数统一使用YYYYMMDD格式股票代码使用ts_code格式如000001.SZ、600000.SH与 Tushare 技能文档 中约定的参数格式规范一致。全市场批量获取forecast_vip 用法需要获取某一季度全部上市公司的业绩预告时改用forecast_vip接口参数与forecast一致# 获取 2018 年年报报告期 20181231全部上市公司的业绩预告 df pro.forecast_vip( period20181231, fieldsts_code,ann_date,end_date,type,p_change_min,p_change_max,net_profit_min )该方式的典型应用场景是构建全市场事件截面例如在 1 月底业绩预告高发期一次性拉取某报告期全市场预告再按type筛选预增 / 扭亏股票池或按p_change_min排序寻找超预期标的。需要留意的是forecast_vip需要 5000 积分且当前接口仅支持通过period参数按报告期维度拉取全市场数据。数据样例解析以ann_date20190131查询得到的 2018 年年报预告数据为例部分ts_codeann_dateend_datetypep_change_minp_change_max000005.SZ2019013120181231预增618.5600945.1800000825.SZ2019013120181231略增3.850012.5100000566.SZ2019013120181231预增50.0000100.0000600127.SH2019013120181231首亏-601.5517-510.3604002336.SZ2019013120181231续亏33.136747.9952600531.SH2019013120181231预减-61.8800-54.3200300157.SZ2019013120181231扭亏107.3969108.5176300052.SZ2019013120181231略减-30.00000.0000300109.SZ2019013120181231续盈-13.81007.7300从样例数据可以验证几个数据特征同一公告日覆盖全市场多种预告类型预增、略增、首亏、续亏、预减、扭亏、略减、续盈同时出现type字段可用于快速分类预告精度不统一部分公司给出精确值如000557.SZ的p_change_min p_change_max 66.68多数公司给出区间变动幅度跨度大从 -600% 量级的首亏到 900% 量级的预增直接排序即可形成预告弹性排行榜。仓库实战业绩预告数据的两大应用场景场景一ST 风险预测中的前置财务证据在 ashare-pre-st-filter 技能 中forecast是 R1 营收与净利润预测的核心证据源之一端到端调用伪代码如下import os import tushare as ts ts_code 000729.SZ pro ts.pro_api(os.environ[TUSHARE_TOKEN]) # 拉取业绩预告按公告日期倒序最新预告排在最前 forecast pro.forecast(ts_codets_code).sort_values(ann_date, ascendingFalse) express pro.express(ts_codets_code).sort_values(ann_date, ascendingFalse)该技能的工程化约定非常值得借鉴时间窗口过滤只取ann_date 当前年度 1 月 1 日的记录按ann_date倒序取最新一条避免老 period 的预告干扰当前财年预测证据优先级forecast / express 三季报 中报 去年年报 经验外推业绩预告的优先级高于一切报表数据的外推直采法forecast给出net_profit_min/net_profit_max时直接取区间作为全年归母净利润预测扣非部分用过去两年扣非率中位数折算。场景二盈余公告后漂移PEAD与预期差交易在 earnings-forecast 技能 中业绩预告被纳入 A 股财报日历的核心事件节点时间事件策略动作1 月中旬年报业绩预告披露高峰抢先捕捉预期差3-4 月年报正式发布确认 SUEPEAD 建仓7 月中旬中报业绩预告半年度预期修正8 月 31 日中报截止日同上10 月 31 日三季报截止日Q3 数据验证全年预期业绩预告数据在该框架中承担提前确认预期差的角色正式财报发布前通过forecast接口得到的净利润区间与市场一致预期对比即可在预告披露日抢先触发 SUE 信号比等正式财报再建仓提前数周——这正是业绩预告事件时效性价值的量化体现。实战技巧与注意事项基于接口文档与仓库实践总结以下工程要点积分规划仅需单股研究时使用forecast2000 积分全市场截面研究需升级至forecast_vip5000 积分两者参数完全一致代码切换成本为零字段裁剪大数据量拉取务必使用fields参数仅保留ts_code, ann_date, end_date, type, p_change_min, p_change_max, net_profit_min等必要列排序与去重按ts_code查询历史时用sort_values(ann_date, ascendingFalse)保证最新公告在前多 report period 数据需结合end_date去重避免同一报告期的多次修正互相干扰时间语义ann_date公告日与end_date报告期、first_ann_date首次公告日三者语义不同筛选最新预告时应以ann_date为准识别预告修正时应比对first_ann_date数据优先级业绩预告的净利润区间数据优先级高于任何报表外推但预告精度低于正式财报若后续发布业绩快报express接口应更新为快报数据合规与用途业绩预告数据来源于上市公司公开披露可用于个人与机构研究勿用于商业转售。总结Tushareforecast接口为 A 股业绩预告数据提供了结构化的取数通道单股历史查询走forecast2000 积分全市场批量提取走forecast_vip5000 积分。通过period、type、p_change_min等参数的组合可以快速构建报告期 × 预告类型 × 净利润变动幅度的多维事件面板服务于 ST 风险预测、PEAD 策略、预期差交易等场景。仓库中 ashare-pre-st-filter 与 earnings-forecast 两个技能文档给出了完整的工程化落地范式可作为进一步参考。【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考