- AI 技能
- AI 插件
- 金融科技
【免费下载链接】UZI-Skill
冰冷的钱就这样流进我温暖的口袋-游资(UZI)Skills — 让我们欢迎,股海贼王!66位投资大佬帮你看盘 · 22维数据 × 180条量化规则 × 17种机构分析方法 · A股/港股/美股
本文讲解 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,本方法遵循四条原则:
- 可审计:每一步留
methodology_log,记录"凭什么给这个共识 / 情景 / 波幅"; - 来源透明:一致预期能从
6_research维度拿到的标注来源;拿不到的显式标注「需 web 补充」,绝不静默编造; - 可证伪:每个情景都配明确触发条件——什么发生才走这个情景;
- 多市场自适应:观察指标按行业切换,隐含波动按市场切换(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拼接做子串匹配:
| 行业 | 关注指标 |
|---|---|
| 软件 / SaaS | ARR / 经常性收入、净留存率 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):
- 营收 / EPS vs 一致预期(及 buy-side whisper number,可 web 补充)——首要驱动,importance=high;
- 前瞻指引 vs 共识(全年营收/利润、capex)——买方更看指引而非当期数字,importance=high;
- 行业头号运营指标(②的第一项,领先利润表)——需求真伪最先反映,importance=high;
- 毛利率方向 + 管理层归因——决定盈利弹性,importance=medium;
- 战略 / 叙事变化(并购、回购、新品、产能、诉讼)——仅当
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_2026 | 6_research | 一致预期 EPS / PE |
target_price_avg/research_coverage/buy_rating_pct | 6_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 覆盖六类断言:
- 结构完整性:返回含
consensus_table / watch_metrics / scenarios / catalyst_checklist / implied_move / methodology_log全部键,method固定为"Earnings Preview (pre-earnings)"; - 三情景齐全且单调:
bull > base > bear增速与 EPS 双单调; - 行业指标映射:光模块、白酒命中,冷门行业回退非空;
- 一致预期缺失标注:
consensus_notes非空且source含 "web";并从6_research维度直读consensus_rev_yi验证; - 隐含波动分支:A 股无期权 vs 美股/港股可用 straddle;
- 空输入鲁棒性:
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股/港股/美股
相关推荐
Earnings Preview 财报前瞻实战:基于 financial-services 仓库 earnings-reviewer Agent 构建预财报分析工作流
Earnings Preview 财报前瞻实战:基于 financial services 仓库 earnings reviewer Agent 构建预财报分析
人工智能AI 应用AI 技能/插件AI Agent金融科技如何给游戏里的DLSS换版本:DLSS Swapper版本切换3步上手指南
如何给游戏里的DLSS换版本:DLSS Swapper版本切换3步上手指南 《赛博朋克2077》给你装的DLSS 3.5用着不顺眼,或者游戏还停留在DLSS 2
桌面应用financial-services 仓库 Equity Research 插件实战:用 earnings-preview 技能构建财报前瞻(共识预期、关键指标框架与牛熊情景分析)
financial services 仓库 Equity Research 插件实战:用 earnings preview 技能构建财报前瞻(共识预期、关键指标
人工智能AI 应用AI 技能/插件AI Agent金融科技
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考