Install
openclaw skills install stock-ai-analyzerA股股票基本面投研分析方法论。当用户要求按股票名称或代码分析中国A股、判断公司成长性与核心亮点、评估估值阶段与隐含预期、分析财务质量与业务结构、判断股票是否处于当前市场主线内、做竞争格局分析或风险排查,或基于Tushare/公开市场数据生成股票基本面分析时使用。用户提问形式包括"帮我分析XX股票""XX的基本面怎么样""XX成长性如何""XX估值贵不贵""XX为什么值得买""XX是不是当前主线""XX所在行业景气度如何"等。当用户要求"深度分析""深挖""把异常/业绩变化查清楚""读年报找线索""挖未被定价的看点"时,进入 Deep 模式(见 references/deep_mode.md)做命题先行的主动调研。该技能要求分析流程、判断框架、内容输出全部写在SKILL.md中;脚本只允许做原子数据获取与确定性扫描。
openclaw skills install stock-ai-analyzer把这个技能当作股票基本面投研方法论使用。不要依赖脚本生成报告、提示词、投资结论、组合分析或推荐。脚本只能取数;你作为智能体负责解释数据、判断重点,并直接写出最终内容。
SKILL.md 中:分析路径、判断标准、报告结构、措辞边界。scripts/data_fetcher.py 获取单一数据集,或解析股票名称/代码。环境变量:
TUSHARE_TOKEN=your_token
默认一次只获取一个数据集;需要完整单股分析时,使用 pack 生成完整 evidence、轻量 analysis_context 和模块级 JSON。
python scripts/data_fetcher.py search 贵州茅台
python scripts/data_fetcher.py fetch company 600519.SH
python scripts/data_fetcher.py fetch financial 600519.SH --limit 8
python scripts/data_fetcher.py fetch income 600519.SH --limit 8
python scripts/data_fetcher.py fetch balance 600519.SH --limit 8
python scripts/data_fetcher.py fetch cashflow 600519.SH --limit 8
python scripts/data_fetcher.py fetch daily-basic 600519.SH --limit 60
python scripts/data_fetcher.py fetch valuation-band 600519.SH --years 5
python scripts/data_fetcher.py fetch main-business-product 600519.SH --limit 30
python scripts/data_fetcher.py fetch top10-holders 600519.SH --limit 4
python scripts/data_fetcher.py fetch managers 600519.SH
python scripts/data_fetcher.py fetch rewards 600519.SH
python scripts/data_fetcher.py fetch holder-number 600519.SH --limit 20
python scripts/data_fetcher.py fetch holder-trade 600519.SH --limit 30
python scripts/data_fetcher.py fetch share-float 600519.SH --limit 20
python scripts/data_fetcher.py fetch block-trade 600519.SH --limit 30
python scripts/data_fetcher.py fetch report-list 600519.SH --report-type all --limit 8
python scripts/data_fetcher.py fetch report-text 600519.SH --report-type annual --report-index 1 --max-pages 80 --max-chars 60000
python scripts/data_fetcher.py fetch announcements 600519.SH --date 2026-01-01~2026-05-16 --searchkey 回购 --limit 20
python scripts/data_fetcher.py fetch announcement-text 600519.SH --date 2026-01-01~2026-05-16 --searchkey 监管函 --announcement-index 1
python scripts/data_fetcher.py fetch institutional-research 600519.SH --start-date 20250101 --end-date 20260516 --limit 30
python scripts/data_fetcher.py pack 600519.SH --date 2026-01-01~2026-05-16 --evidence-out reports/evidence_600519.json --context-out reports/context_600519.json --module-context-dir reports/module_context_600519
默认使用 JSON 输出。只有在表格查看更方便时才使用 --format csv。
| 维度 | dataset | 用途 |
|---|---|---|
| 股票识别 | search | 名称/代码解析,确认 ts_code、地区、行业、市场、上市日期和板块 |
| 公司画像 | company | 公司简介、行业、注册地、主营概况 |
| 财务指标 | financial | ROE、毛利率、净利率、成长、偿债、周转等财务指标 |
| 三大报表 | income、balance、cashflow | 利润表、资产负债表、现金流量表,用于增长质量、利润质量和财务健康验证 |
| 行情估值 | daily、daily-basic | 日线、换手率、PE/PB/PS、股息率、市值、股本结构 |
| 历史估值分位 | valuation-band | 从多年 daily_basic 确定性计算 PE/PB/PS/股息率的近 1/3/5 年区间与当前分位(PE band)。Tushare 无现成分位接口,由脚本计算 |
| 主营结构 | main-business-product、main-business-region | 产品和地区收入/利润结构,判断业务驱动和集中风险 |
| 股东治理 | top10-holders、managers、rewards | 十大股东、董监高、管理层薪酬和持股 |
| 筹码变化 | holder-number、holder-trade | 股东户数、重要股东增减持 |
| 交易与供给压力 | share-float、block-trade | 限售股解禁、大宗交易 |
| 年报季报 | report-list、report-raw、report-text | 巨潮定期报告列表、PDF 下载、PDF 文本抽取 |
| 个股公告 | announcements、announcement-raw、announcement-text | 仅按个股查询巨潮公告,按标题规则标记问询回复、监管函、回购、减持、股权激励、定增、重大合作、业绩快报等 |
| 机构调研 | institutional-research | Tushare stk_surv,用于观察调研频率、参与机构、接待方式和调研内容关键词 |
| 上下文包 | pack | 单股完整 evidence、轻量 analysis_context 和模块级 JSON,供 subagent 或低上下文顺序分析 |
announcements 只支持按个股查询。不要用本 skill 做全市场公告扫描。tabtype=fulltext 用于公告全文列表;tabtype=relation 仅作为互动易/调研相关列表的辅助入口。PyPDF2 文本抽取,不跨 skill 引用。写完 Markdown 研报后,可用 render_report_html.py 渲染成自包含的单页 HTML(Claude UI 风格),并自动从 evidence 里嵌入两类图表:PE/PB/PS 估值带时间序列(valuation-band 的 series + 历史分位带,横轴日期、纵轴估值倍数,叠加 P25–P75 带与当前分位)、营收/归母净利/同比增速/盈利能力财务趋势(income+financial)。
python scripts/render_report_html.py -i reports/report_600519.md --evidence reports/evidence_600519.json
# 不传 --evidence 时,会自动找同目录的 evidence_<代码>.json;找不到则只渲染正文、不嵌图表
内容与输出格式解耦(重要):HTML 渲染器对正文是"只读装饰"——它不改写任何文字,只把 Markdown 转成 HTML,并在客户端用 JS 注入图表与 hero 卡片。因此写研报时不需要为 HTML 迁就措辞或结构:
--no-validate 完全跳过,--strict 才在不一致时报错),正文内容怎么改都不会导致 HTML 生成失败。仅 Deep 模式用,方法论见 references/deep_mode.md:
python scripts/thesis_scan.py --evidence reports/evidence_<code>.json:对 evidence pack 做确定性扫描,输出命题原型(含预期差 A1/A2/B)、异常旗标(业绩/利润质量/营运资本/减值/资本结构)和每条的 probe 建议。只 surfacing,不下结论。fetch report-text … --section <章节/关键词> [--to-markdown]:把"盲读前 6 万字"升级为定向读章节。年报标准章节别名 mda/财务报告/重要事项/公司治理/股东;不命中(如季报、或"研发"/"AI"等子主题)自动降级为关键词窗口。引擎优先级 pymupdf4llm → PyMuPDF → PyPDF2,缺高级库自动回退。fetch daily <code> --limit 0:取全量日线,供"月线横盘/价格 vs 盈利"等长周期判断(pack 默认仅 60 日)。pack,再按模块级 JSON 分析,避免一次加载完整 evidence。默认先看公告/报告元数据。只有出现以下情况,才升级读取 PDF 原文:
需要原文时:
announcements 或 report-list 定位候选。announcement-text 或 report-text 读取 PDF 文本。使用 pack 后,主 agent 得到三类产物:
evidence:归档证据,不直接整体塞进模型上下文。analysis_context:单会话分析时优先加载。module_contexts/:供 subagent 分模块撰写。分发前先定初步分型:主 agent 在拆分 subagent 之前,先用增速、股息率、行业地位、主线做一次初步分型(4.1),并把"该公司初步判定为 X 型"写进每个 subagent 的指令——这样模块 1(定性侧重)和模块 2(估值模式)才能在同一透镜下展开,而不是各自默认成长股口径。
有 subagent 编排能力时,每个 subagent 只读取自己的模块 JSON 和本 SKILL.md 对应方法论:
| 模块 | JSON | 任务 |
|---|---|---|
| 1 | module1_growth_financial.json | 成长性、财务质量、业务结构 |
| 2 | module2_valuation_market.json | 估值快照、隐含预期、市场定价 |
| 3 | module3_governance.json | 股东结构、管理层、筹码、解禁、大宗交易 |
| 4 | module4_announcements.json | 公告事件筛查、原文升级候选、定期报告候选 |
| 5 | module5_research_mainline.json | 机构调研、主线连接线索、市场关注度 |
没有 subagent 能力时,按同样模块顺序逐段加载模块 JSON。聚合阶段只读取模块结论、analysis_context、必要的公告/报告原文摘录。
先按 4.1 做初步分型,再按下文第四节(定性框架,重心随类型调整)和第五节(定量框架,估值模式随类型选择)的方法论展开分析。
骨架流程产出"骨头架子"。当用户要求深度分析 / 深挖 / 把异常或业绩变化查清楚 / 读年报找线索 / 挖未被定价的看点时,进入 Deep 模式,按 references/deep_mode.md 做命题先行的主动调研:
python scripts/thesis_scan.py --evidence reports/evidence_<code>.json → 得到命题原型(含预期差 A1/A2/B)、异常旗标、每条的 probe 建议。fetch report-text <code> --report-type annual --section mda|财务报告、fetch announcement-text ... --searchkey 减值——定位业绩暴增/暴跌、商誉计提、OCF 背离、应收/存货异常的成因。fetch report-text <code> --section <主线词> 从年报/季报捞出公司自述、与主线相关但骨架漏掉的线索(尤其 B 型"未被定价的期权")。完整 playbook、命题原型表、--section 用法、停止条件见 references/deep_mode.md。
定性分析的核心任务是回答两个问题:这家公司在成长吗?为什么值得关注?
完整方法论见 references/qualitative_framework.md。本节保留纲要:
脚本已做确定性计算:pack 产出的 business_structure.product_analysis(产品结构跨期变化)和 region_analysis(地区结构与出海趋势)可直接引用,无需手动重算。
定量分析的核心任务是回答:当前价格隐含了什么样的未来预期?这个预期合理吗?
完整方法论见 references/quantitative_framework.md。本节保留纲要:
valuation-band 提供 PE/PB/PS/股息率的近 1/3/5 年区间与当前分位python scripts/data_fetcher.py fetch valuation-band 600519.SH --years 5
输出落位:报告第三部分「背景与风险」,作为背景与风险信号(管理层激励、大股东增减持对成长股/红利股判断有信息量的,可在定性里点一句)。
使用 top10-holders、managers、rewards、holder-number、holder-trade、share-float、block-trade。
holder-trade 大额减持需关注原因;增持通常是信心信号(但也可能是护盘)。share-float 近期有大额解禁 → 供给压力。block-trade 频繁出现且折价明显,需结合股东变动和公告判断是否存在减持压力。输出落位:报告第一部分「近期动态:公告事件与机构调研」,作为对公司现状的补充;其中与主线相关的佐证在定量「主线归属修正」处被引用。
使用 announcements 先定位事件,再决定是否读取 announcement-text。
公告标题只是索引。对公司基本面、估值或风险有影响的结论,必须来自公告原文、定期报告正文或其他可验证来源。
使用 institutional-research 观察市场关注度和产业问题焦点。
下面模板里的几个小标题同时是 HTML 渲染(2.3 节)的图表锚点:「核心判断」→ hero 卡片,「估值快照与历史分位」→ PE/PB/PS 估值带时间序列图,「成长性与财务质量诊断」→ 财务趋势图。沿用这些命名能让图表自动落位;但锚点是尽力而为,命名变了也只是少几张图,不影响正文。
# [公司名称]([股票代码])基本面研究
## 核心判断
[2-4 句结论先行:公司类型(成长股/成熟龙头/红利价值)+ 一句话看点 + 行业地位 + 估值状态(贵/合理/便宜,当前价格是否合理)+ 最关键的变量。标注总体置信度:高/中/低]
---
## 第一部分 · 定性:这是一家什么公司,好在哪
### 1. 公司速览
[一句话说清主营做什么;主营产品/收入结构、所属行业、总市值、上市时间等关键事实。克制,不堆 `company` 原始字段]
### 2. 公司分型
[归入成长股/成熟龙头/红利价值哪一型 + 依据(增速/股息率/行业地位/主线)。这是后续定性侧重与定量估值模式的纲。标注置信度,并说明是否处于类型切换期]
### 3. 行业地位与竞争格局
[行业景气度与所处阶段;公司是领导者/挑战者/跟随者;护城河类型与强弱;市占率/份额趋势。外部事实需联网检索并引用来源]
### 4. 成长性与财务质量诊断
[五维度评估(按分型调整权重):收入增长质量/利润含金量/现金流验证/业务结构/再投资能力与 ROE;并入财务健康:偿债安全/利润质量/资本效率。最后归入成长阶段,并核对与分型是否自洽]
### 5. 核心看点
[2-4 条亮点,落在该类型的核心矛盾上(成长股=成长动力与远期空间、成熟龙头=盈利稳定与股东回报、红利价值=可持续现金分红)。每条附数据和最强反方观点]
### 6. 近期动态:公告事件与机构调研
[作为对公司现状的补充:近期重大公告事件(区分原文事实 vs 推断,必要时读原文);机构调研频率、参与机构、问题关键词。注明这些只反映关注度与现状,不等同业绩改善]
---
## 第二部分 · 定量:贵不贵,当前价格合不合理
### 1. 估值模式
[依据第一部分的分型,说明这家公司适用哪种估值法:成长股=隐含预期/三情景、成熟龙头=PE/PB 历史分位、红利价值=股息率分位/利差/DDM]
### 2. 估值快照与历史分位
[PE/PB/PS/股息率/市值,标注日期;按类型给出关键指标近 1/3/5 年分位——贵不贵先对自身历史(及同业,如有)。成长股说明 band 仅作下行参考]
### 3. 隐含预期分析
[从当前市值/PE 反推市场隐含的增长预期,与第一部分判断的实际成长能力对比。增速假设需显式标注为假设]
### 4. 主线归属修正(A股关键调节项)
- 当前市场主线:[简要说明,附依据]
- 与主线连接强度:[强/弱/无连接]
- 验证信号:[机构调研/公司催化公告/相对涨跌;北向、研报需联网,注明数据边界]
- 主线判断置信度:[高/中/低]
- 对估值的修正:[膨胀容忍度/谨慎程度]
### 5. 三情景推演
[基准/乐观/压力情景的假设、推算与对当前价的偏离]
### 6. 估值结论
[收口:当前估值处于哪个阶段(深度低估/合理偏低/合理/偏高/极度乐观),当前价格是否合理;说明主线归属如何修正了这个判断;第一部分若有财务异常,在此下调置信度]
---
## 第三部分 · 背景与风险
### 1. 股东与治理
[股权结构/管理层激励/股东户数/重要股东增减持/限售解禁/大宗交易。作为背景与风险信号]
### 2. 风险提示
[针对这家公司的具体风险,包括主线轮换风险]
---
以上基于公开数据和当前可得信息,不构成投资建议。数据存在滞后性,主线判断带有主观性,分析结论可能因新信息而改变。