☰
UZI-Skill 财报前预览(Earnings Preview):用五步法在季报披露前搭好前瞻框架
2026/10/9 3:15:37 网站建设 项目流程
  • AI 技能
  • AI 插件
  • 金融科技

【免费下载链接】UZI-Skill

冰冷的钱就这样流进我温暖的口袋-游资(UZI)Skills — 让我们欢迎,股海贼王!66位投资大佬帮你看盘 · 22维数据 × 180条量化规则 × 17种机构分析方法 · A股/港股/美股

项目地址:https://gitcode.com/gh_mirrors/uz/UZI-Skill
点击查看免费下载

本文讲解 UZI-Skill 深度分析工作流(skills/deep-analysis)中的财报前预览(Earnings Preview)方法:如何在公司披露季报之前,围绕一致预期对照、行业观察指标、Bull/Base/Bear 三情景、催化剂清单与预期波幅,搭建一套"该盯什么、会怎么动"的前瞻框架。读完本文,你将掌握该方法的方法论文档(earnings-preview.md)、纯函数实现(earnings_preview.py)与配套 slash 命令(commands/earnings-preview.md)三者之间的对应关系,理解每个输出字段的来源、计算口径与多市场(A股/港股/美股)自适应逻辑。

方法定位:财报前的"前瞻镜像"

Earnings Preview 改编自anthropics/financial-services的equity-research/earnings-preview,移植进 UZI-Skill 后适配 A 股 / 港股 / 美股多市场。它在本目录(fin-methods)中的定位是事件前定位方法:

  • research_workflow.build_earnings_analysis是财报后beat/miss 解读,回答"发生了什么";
  • 本方法build_earnings_preview是它的财报前镜像,回答"接下来盯什么、会怎么动";
  • DCF / Comps 是估值方法,而本方法不估值,只做事件前定位,输出可直接喂给交易 / 仓位决策。

两者遵循相同的接口契约:build_X(features, raw_data) -> dict,并携带methodology_log,纯函数、无外部 IO。在 fin-methods/README.md 中,本方法属于 v3.8.0 起引入的Tier-1 续引入方法包(lib/tier1/包),与 AI 就绪度、模型增量更新、收益归因、组合再平衡并列,每个方法均有 slash 命令、方法论文档、纯函数模块与 pytest 四件套。

设计原则:可审计、来源透明、可证伪、多市场自适应

沿用 fin-methods 目录的 CRITICAL CONSTRAINTS,本方法遵循四条原则:

  1. 可审计:每一步留methodology_log,记录"凭什么给这个共识 / 情景 / 波幅";
  2. 来源透明:一致预期能从6_research维度拿到的标注来源;拿不到的显式标注「需 web 补充」,绝不静默编造;
  3. 可证伪:每个情景都配明确触发条件——什么发生才走这个情景;
  4. 多市场自适应:观察指标按行业切换,隐含波动按市场切换(A 股个股无期权,用历史财报日波动代替)。

五步法:从一致预期到预期波幅

① 一致预期对照 Consensus Table

对照表覆盖 EPS、营收与卖方目标价三组数据,每行带source标注:

  • EPS:优先取features.consensus_eps_2026(由 stock_features.py 从6_research维度的consensus_eps_2026归一化而来,同处还有consensus_pe_2026);若拿不到则显式标注「需 web 补充(一致预期)」。
  • 营收:6_research的consensus_rev_yi有则用;无则用最新营收 × (1 + 3yCAGR)外推占位,并标注「需 web 补充」。CAGR 由 stock_features.py 计算:((最新营收 / 4 期前营收) ** (1/3) - 1) * 100。
  • 卖方目标价 / 覆盖家数 / 买入率:从6_research派生(target_price_avg/research_coverage/buy_rating_pct,见 stock_features.py),输出含"覆盖 N 家 / 买入率 X%"的来源描述。

若features.consensus_eps_2026缺失,实现会回退尝试research.consensus_eps(6_research.data原始字段),并追加consensus_notes缺口清单。A 股适配:6_research拿得到的就用,拿不到的标「需 web 补充」。

② 行业观察指标 Watch Metrics(按行业分类)

财报最该盯的运营指标随行业不同。实现(earnings_preview.py)内置_SECTOR_METRICS关键词→指标映射表,用industry + name拼接做子串匹配:

行业关注指标
软件 / SaaSARR / 经常性收入、净留存率 NRR、RPO 在手合同、付费客户数、云收入占比
零售 / 消费同店销售 SSSG、客流量、客单价、线上占比、存货周转
工业 / 制造在手订单 / backlog、book-to-bill、量 vs 价拆分、产能利用率
金融净息差 NIM、不良率 / 拨备、信贷增速、中间业务收入、AUM
医药核心品种放量、处方量 / 入院、集采影响、在研管线进度
白酒(A 股)动销 / 终端动销、渠道库存、吨价 / 提价、预收款(合同负债)
光模块(A 股)800G/1.6T 出货量、高端产品占比、毛利率(供给紧→提价)、大客户订单能见度
新能源(A 股)装机 / 出货量 GW、单位盈利(元/W·Wh)、产能利用率、原材料价格传导
半导体 / 汽车产能利用率、ASP / 提价、库存周期位置 / 销量、单车 ASP、新车型周期

未命中行业时落到通用默认(earnings_preview.py):营收 vs 共识、毛利率趋势、经营性现金流、前瞻指引 vs 共识。测试(test_tier1_earnings_preview.py)专门断言了"光模块→出货/1.6T/800G""白酒→动销"的命中与冷门行业回退非空。

③ Bull / Base / Bear 三情景

基于历史营收增速 + 毛利率趋势构造三档情景(earnings_preview.py):

  • Base 增速=(3yCAGR + 最近一期增速) / 2(更贴近趋势);Bull = Base + 8pt,Bear = Base − 8pt;
  • 营收区间= 最新营收 × (1 + 增速);EPS 用毛利杠杆放大:Bull ×1.12 / Base ×1.0 / Bear ×0.85(营收超预期时盈利弹性更大);
  • 每个情景配齐四要素:触发条件(triggers列表,如"量价齐升 + 上修指引"/"基本符合 ±2%"/"不及共识或环比走弱")、毛利率假设(扩张 / 持平 / 收缩)、历史财报后股价反应(用年化波动 ÷ √252 近似单日,√252 ≈ 16),并附可 web 核对的检索提示。

测试断言三情景bull/base/bear齐全、结构字段完整、增速与 EPS 均单调(bull > base > bear),见 test_tier1_earnings_preview.py。

④ 催化剂清单 Catalyst Checklist

3-5 个决定财报日股价反应的看点(earnings_preview.py):

  1. 营收 / EPS vs 一致预期(及 buy-side whisper number,可 web 补充)——首要驱动,importance=high;
  2. 前瞻指引 vs 共识(全年营收/利润、capex)——买方更看指引而非当期数字,importance=high;
  3. 行业头号运营指标(②的第一项,领先利润表)——需求真伪最先反映,importance=high;
  4. 毛利率方向 + 管理层归因——决定盈利弹性,importance=medium;
  5. 战略 / 叙事变化(并购、回购、新品、产能、诉讼)——仅当has_positive_catalyst/has_negative_catalyst事件流命中才加入,importance=medium。

清单截断至 5 项,测试断言数量在 3~5 之间且每项含item/why/importance三字段。

⑤ 预期波幅 Implied Move

按市场分支(earnings_preview.py):

  • A 股个股:多数无期权 →options_available=False,方法标注"A 股无个股期权,用历史财报日波动代替",以年化波动 ÷ √252 给出单日 ±幅度(如年化 55% → 单日约 ±3.4%)。
  • 美股 / 港股:options_available=True,可用财报到期ATM straddle反推期权隐含波动(需 web 补充期权链),历史波动作下限参考。

测试分别断言 A 股分支options_available is False且方法含"无期权/历史",美股分支options_available is True且方法含"期权/straddle"(test_tier1_earnings_preview.py)。

返回结构:一个字段对齐的 dict 契约

build_earnings_preview(features, raw_data)返回结构如下(源码逐字段对应):

{ "method": "Earnings Preview (pre-earnings)", "company": {"name", "code", "industry", "market"}, "report_quarter": "2026 Q2", # 由当前时间粗略推断的下一季度 "generated_at": "2026-10-08", "consensus_table": [{"metric", "consensus", "yoy_pct", "source"}, ...], "consensus_notes": ["...需 web 补充..."], "watch_metrics": {"sector": "光模块", "metrics": [...]}, "scenarios": [ # bull / base / bear 三项齐全 {"scenario", "label", "revenue_yi", "revenue_growth_pct", "eps", "gross_margin_assumption", "triggers", "expected_stock_reaction", "reaction_note"}, ], "catalyst_checklist": [{"item", "why", "importance"}, ...], "implied_move": {"method", "options_available", "implied_move_pct", "historical_proxy_pct", "note"}, "methodology_log": [...], # 5 步推导链:公司/行业 → 共识行数 → 行业指标数 → 三情景增速 → 催化剂数+波幅方法 }

其中methodology_log由主函数(earnings_preview.py)逐步拼接:Step 1 公司/市场/行业/预览季度 → Step 2 共识行数与缺口数 → Step 3 行业指标归属与数量 → Step 4 三情景营收增速 → Step 5 催化剂数 + 隐含波动方法,保证"每步在算什么"都可审计。

调用方式与上下游数据流

入口函数(earnings_preview.py):

from lib.tier1.earnings_preview import build_earnings_preview result = build_earnings_preview(features, raw_data) # features: 扁平特征;raw_data: 含 dimensions 的原始数据

关键输入特征的来源(均由 stock_features.py 归一化产出):

特征来源维度说明
consensus_eps_2026/consensus_pe_20266_research一致预期 EPS / PE
target_price_avg/research_coverage/buy_rating_pct6_research卖方目标价、覆盖家数、买入率
revenue_latest_yi/revenue_growth_3y_cagr/revenue_growth_latest财务历史最新营收、3 年 CAGR、最近一期增速
volatility_1y行情统计年化波动,用于单日财报波幅近似
has_positive_catalyst/has_negative_catalyst事件流决定催化剂清单第 5 项是否加入

slash 命令(commands/earnings-preview.md):/earnings-preview <股票代码>触发,工作流为 ① 采集 22 维数据(一致预期优先取6_research)→ ② 调用build_earnings_preview→ ③ 对标注「需 web 补充」的一致预期 / 历史财报日股价反应 / 期权隐含波动用 web 搜索补全后成稿。与/earnings(财报后解读)互为镜像。

一个可复现的示例(中际旭创 300308.SZ)

模块自带__main__演示(earnings_preview.py),测试基线同款(test_tier1_earnings_preview.py):A 股 · 光模块,价格 120、EPS 4.5、一致预期 EPS 6.2、最新营收 240 亿、3yCAGR 45%、最近增速 60%、毛利率 33%、年化波动 55%。输出要点:

  • 一致预期:EPS 6.2(YoY +37.8%,来源 6_research);营收 348 亿(YoY +45%),⚠️ 无一致预期 → 3yCAGR 外推,需 web 补充;卖方目标价 ¥150(覆盖 28 家 / 买入率 90%);
  • 行业观察指标(光模块):800G/1.6T 出货量 · 高端占比 · 毛利率 · 大客户能见度;
  • 三情景(营收增速 / EPS):🟢 Bull +60.5% / 6.94(触发:量价齐升 + 上修指引)· ⚪ Base +52.5% / 6.20(触发:基本符合,指引维持)· 🔴 Bear +44.5% / 5.27(触发:不及共识 / 毛利受压);
  • 预期波幅:A 股无个股期权 → 历史财报日 ±3.4%(年化波动 55% ÷ 16 近似单日)。

其中 Base 增速 52.5% = (45% + 60%) / 2,Bull/Bear 各 ±8pt,EPS 按 ×1.12 / ×1.0 / ×0.85 的毛利杠杆缩放——与文档公式逐项对应。

测试覆盖与鲁棒性

配套测试 test_tier1_earnings_preview.py 覆盖六类断言:

  1. 结构完整性:返回含consensus_table / watch_metrics / scenarios / catalyst_checklist / implied_move / methodology_log全部键,method固定为"Earnings Preview (pre-earnings)";
  2. 三情景齐全且单调:bull > base > bear增速与 EPS 双单调;
  3. 行业指标映射:光模块、白酒命中,冷门行业回退非空;
  4. 一致预期缺失标注:consensus_notes非空且source含 "web";并从6_research维度直读consensus_rev_yi验证;
  5. 隐含波动分支:A 股无期权 vs 美股/港股可用 straddle;
  6. 空输入鲁棒性:build_earnings_preview({}, {})不崩溃且三情景仍齐全。

适用前提与限制

  • 本方法输出的是事件前定位框架而非结论:情景、催化剂与波幅都是可证伪的假设,成稿前必须补全标注「需 web 补充」的数据(一致预期、历史财报日反应、期权链);
  • 单日财报波幅用年化波动 ÷ √252 是近似代理(√252 ≈ 16),仅作量级参考;
  • report_quarter由当前时间粗略推断(当前季度),正式披露前应核对实际财报周期;
  • 若标的是 ETF / LOF / 可转债,应遵循 SKILL.md 的 HARD-GATE-NON-STOCK 引导到成分股,而非直接跑本方法。

若需将本方法接入完整报告流水线,可参考lib/tier1/__init__.py的统一导出、compute_deep_methods.py的纯计算接入方式,以及 commands/earnings-preview.md 的成稿规范。

  • AI 技能
  • AI 插件
  • 金融科技

【免费下载链接】UZI-Skill

冰冷的钱就这样流进我温暖的口袋-游资(UZI)Skills — 让我们欢迎,股海贼王!66位投资大佬帮你看盘 · 22维数据 × 180条量化规则 × 17种机构分析方法 · A股/港股/美股

项目地址:https://gitcode.com/gh_mirrors/uz/UZI-Skill
点击查看免费下载

相关推荐

上一篇:R-CNN 开源项目安装与使用指南
下一篇:RITM 交互式分割项目使用教程

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询