Source: research/004-ashare-earnings-reviewer/phase0_data_feasibility.md
Last modified: 2026-06-12 10:29:05 · 4,158 bytes

A 股 Earnings Reviewer Phase 0 数据可行性

日期:2026-06-12

结论

Phase 1 可以用 RQData-only 先上线。定期报告、业绩预告、业绩快报、预约/实际披露日、审计意见、公告元数据和 PDF 链接都可用。Phase 2 的巨潮/交易所 PDF 文本层也可行,但需要加 PDF parser、下载缓存、限频与异常重试。

RQData 结构化通道

本地环境:.venv-task5 + rqdatac 3.5.2,使用现有 ops/rqdata.env

可用接口:

需求 RQData 接口 Phase 0 结果
定期报告三表/PIT 数字 get_pit_financials_ex + 已有 daily factors 可用,适合作为资格 diff 主通道
业绩预告 performance_forecast 可用,含预告类型、描述、利润/收入/净利/EPS 区间、同比区间、入库时间
业绩快报 current_performance 可用,含收入、净利、扣非、EPS、ROE、经营现金流及同比
预约/实际披露日 get_forecast_report_date 可用,含首次预约、变更、实际披露日
审计意见 get_audit_opinion 可用,含财报审计/内控审计、审计机构、意见类型
公告元数据/PDF 链接 get_announcement 可用,含标题、类别、信息类型、媒体、PDF 链接、入库时间

当前监控范围 smoke:2026-06-11 current_signal_scan 42 只 + P1 持仓 11 只,去重 44 只。

覆盖样本:

检查项 返回
get_forecast_report_date(2025q1-2026q2) 220 行,覆盖 44/44
performance_forecast(info_date=2026-06-12) 118 行
current_performance(info_date=2026-06-12) 34 行,覆盖 34/44
get_audit_opinion(2024q4-2025q4) 176 行,覆盖 44/44
get_announcement(2026-06-01..2026-06-12) 236 行,覆盖 40/44

说明:performance_forecastcurrent_performance 返回“最近一期/已披露事件”,不是每个股票每天都有记录;这符合事件驱动 review 的零噪音原则。

公告/PDF 文本层

RQData get_announcement 已直接返回交易所/巨潮 PDF URL。样本 300502.XSHE 新易盛 2026-06-11 公告下载结果:

- URL 来源:深圳证券交易所 PDF 直链

- HTTP 状态:200

- Content-Type:application/pdf

- 文件大小:138,383 bytes

- 当前 .venv-task5 原本没有 PDF parser;已用 python -m pip install pypdf 做 smoke

- pypdf 可抽取中文文本:样本 3 页,前 2 页抽取 1,634 字

Phase 2 建议:

- 用 RQData get_announcement 做元数据与 URL 主入口,不直接依赖未授权网页爬取。

- 本地缓存 PDF 和抽取文本,key 用 order_book_id + info_date + title + announcement_link hash

- 加 pypdf 为轻量默认 parser;如遇扫描件/文本层差,再评估 pymupdf 或 OCR。

- 先按标题/info_type 做红旗过滤,只下载需要文本审阅的公告,避免噪音和限频。

MVP 建议

Phase 1 范围建议锁定:

1. 监控集合:strict_breakout ∪ early_watchlist ∪ P1 holdings,每日 EOD 后刷新。

2. 事件源:performance_forecastcurrent_performanceget_forecast_report_date.actual_info_date + get_pit_financials_exget_audit_opinion

3. 公告元数据:用 get_announcement 标注是否同日有标题级红旗,但 Phase 1 不读 PDF 正文。

4. 价格反应:复用现有 EOD OHLCV,输出披露日/次交易日收益、成交额/20d 成交额比。

5. 输出:仅事件日附加 review card;无事件日不输出。

边界:Phase 1 是信息层/研究层,不进入生产交易规则;downgrade 不自动触发卖出。

风险与待确认

- performance_forecast 的“无记录”不能解释为“业绩无变化”,只代表无预告/无新预告。

- current_performance 覆盖取决于公司是否披露快报,不能替代正式定期报告。

- 定期报告正式数字应以 get_pit_financials_ex 为准,get_forecast_report_date 只负责披露日历。

- Phase 2 文本层需要安装并固定 PDF parser 依赖;当前发现 .venv-task5/bin/pip shebang 仍指向旧 .slock 路径,安装依赖应使用 .venv-task5/bin/python -m pip ...