> 输入股票代码,自动出估值报告
> 基于唐朝《价值投资实战手册》方法论 · 免费使用
一个帮你自动算股票估值的免费AI工具。
你把股票代码输进去,它自动完成——查财报数据 → 检验三大前提 → 算买点卖点 → 出一份完整的估值报告。
> 之前自己算一只股票要半小时,翻年报、算增速、对数据。
> 现在输入代码,1分钟出完整报告。
直接跟AI说:
| 场景 | 你说 |
|---|---|
| :---- | :----- |
| 分析一家公司 | 用老唐估值法分析 贵州茅台 |
| 对比两家公司 | 对比分析 五粮液和泸州老窖 |
| 快速看一家 | 老唐估值法 迈瑞医疗 |
AI会自动:查询财务数据 → 检验三大前提 → 计算买点卖点 → 输出完整报告。
一份完整的估值分析报告,包含:
📊 投资分析报告:贵州茅台
✅ 三大前提全部通过
│ 指标 │ 保守(40倍PE) │ 乐观(50倍PE) │
│ 合理市值 │ 3.83万亿 │ 4.79万亿 │
│ 理想买点 │ 1.91万亿 │ 2.39万亿 │
│ 当前市值 │ 1.57万亿 │ 1.57万亿 │
│ 买点% │ +21.9% │ +52.3% │
│ 结论 │ ✅ 已到买点 │ ✅ 已到买点 │
以下为AI内部指令,用户无需阅读
| 模式 | 位置 | 说明 |
|---|---|---|
| :----: | :----: | ------ |
| Pipeline | 全流程 | Phase 0→1→2→3 顺序走 |
| Gate | Phase 2 前 | 数据完整性Gate |
| Reviewer | 报告输出前 | 对照 references/checklist.md 逐项打勾 |
| Gotchas | 末尾 | 踩坑点,执行前先读 |
用户说"用老唐估值法分析 XX"
↓
Phase 0:首次启动初始化 → 依赖检测 + 前置说明
│
├─ 检测1:询问用户是否有金融数据类skill → 智能路由
│ ├─ 无 → 选路径B(浏览器查询)
│ └─ 有 → 学习该skill用法 → 选路径A(专业skill查询)
│
└─ 检测2:首次使用发送前置说明
│
↓ 🔐 Gate:至少一条路径可用
│
Phase 1:数据获取(按路由结果走对应路径)
│
├─ 路径A(专业skill):调用用户安装的金融skill查数据
│
└─ 路径B(浏览器):网页搜索财务数据
│
↓ 🔐 Gate:核心字段完整
│
Phase 2:三大前提检验 + 估值计算
↓
Phase 3:报告输出 → 按模板生成 + 数据来源标注 + Reviewer自检
直接对AI说:「用老唐估值法分析 贵州茅台」
AI会先询问您是否已安装金融数据类skill:
无需提前准备任何东西,直接输入股票代码即可开始。
本 Skill 支持两种数据获取方式:
mx-data),走 Phase 0 智能路由以下以 mx-data 为例说明路径A的调用方式(用户的实际 skill 用法可能不同)。
# 第0步:读取 mx-data 的实际路径(由 Phase 0 搜索并缓存)
SKILL_DIR="$(cd "$(dirname "$0")/.." 2>/dev/null && pwd)"
MX_PATH=$(python3 -c "import json; d=json.load(open('$SKILL_DIR/.mx_data_path.json')); print(d.get('path',''))" 2>/dev/null)
# 如果路径未缓存,重新搜索一次
if [ -z "$MX_PATH" ]; then
python3 "$SKILL_DIR/scripts/find_mx_data.py" "$SKILL_DIR" >/dev/null 2>&1
MX_PATH=$(python3 -c "import json; d=json.load(open('$SKILL_DIR/.mx_data_path.json')); print(d.get('path',''))" 2>/dev/null)
fi
# 查询机构预测(返回 A/E/E/E 4行)
cd "$MX_PATH" && source ~/.profile 2>/dev/null
python ./mx_data.py "<代码> 机构预测统计" /tmp/mx_output
# 查询财务指标
python ./mx_data.py "<代码> 最新市值 最新年报净利润 经营现金流 资本开支 总资产 有息负债 应收票据及应收账款 非经常性损益" /tmp/mx_output
mx_data 输出的是 .xlsx 文件(Excel),你不要自己写Python脚本转JSON。用以下固定命令直接读:
# 先看description文件获取概要
cat /tmp/mx_output/*_description.txt 2>/dev/null
# 用Python一行命令把xlsx转成文本读(不要自己写复杂转换逻辑)
python3 -c "
import pandas as pd, os
for f in os.listdir('/tmp/mx_output'):
if f.endswith('.xlsx'):
df = pd.read_excel(f'/tmp/mx_output/{f}', engine='openpyxl')
print(f'=== {f} ===')
print(df.to_string(index=False))
" 2>/dev/null
必须读真实输出,不可凭印象填写。 年份根据返回结果动态确认,不要假设。
| 场景 | 用户说 | 操作 |
|---|---|---|
| :----: | -------- | ------ |
| 单企分析 | "用老唐估值法分析 贵州茅台" | 全流程 Phase 0→1→2→3 |
| 双企对比 | "对比分析 贵州茅台 和 五粮液" | 分别走Phase 0-2,报告用双企模板 |
| 三大前提不适合时 | "分析 寒武纪" | 走完Phase 1检查前提,不满足时清楚标注 |
| 情景 | 结论 |
|---|---|
| :---- | :---- |
| 当前市值 < 买点 | ✅ 已到买点,建议买入 |
| 当前市值 > 买点 | ❌ 未到买点,继续等待 |
| 当前市值 < 卖点 | ✅ 可继续持有 |
| 当前市值 > 卖点 | ⚠️ 考虑卖出 |
> ⚠️ 典型错误:当前1.579万亿小于买点1.91万亿时,结论是已到买点(当前比买点低,正是机会),而非未到买点。
references/valuation-guide.md应收票据及应收账款(标准财报字段名),不要用 应收账款(单独查应收账款走的是账龄结构表,字段不对应)。如果批量查询仍取不到,单独查一次 应收票据及应收账款每次执行分析前,先做两步检测。
先询问用户是否已有金融数据类 skill:
> "在开始分析前,请问您是否已经安装了金融数据类 skill(如 mx-data / 东方财富妙想 / 财报查询等)?"
> - 有 → 让我先学习一下它的用法,再用它查专业数据
> - 没有 → 没关系,我直接通过浏览器搜索公开财务数据来帮您分析
根据用户回答选择路由:
当用户表示已有金融数据 skill 时:
> 用户已有金融数据 skill 时优先走此路径,数据更精准。
当用户表示没有金融数据 skill 时:
> 🔐 Gate:路径B确认 — 浏览器搜索耗时较长且有失败风险
>
> 告诉用户:
> "📡 用浏览器搜索财务数据的话有几点需要告知您:
> ① 等待时间长 — 需要在十几个网页间逐个搜索、交叉验证数据,通常需要 3-5 分钟才能完成数据获取
> ② 有失败风险 — 公开网页数据格式不统一,部分字段可能查不到或数据不完整
> ③ 数据精度低 — 浏览器解析的数据可能不完整或有偏差
>
> 您看要不要:
> - 方案A(推荐):我先帮您安装东方财富妙想 skill(免费),之后数据自动获取、精准稳定,以后每次分析都更快更准 → ✅ 推荐
> - 方案B:直接用浏览器搜索,先出报告体验一下(可能会有等待或数据缺失)"
>
> 根据用户选择:
> - 选方案A → 引导用户执行安装流程 → 回到检测1重新走路径A
> - 选方案B → 告知"好的,我直接用浏览器帮您查,如果数据查不全我再告诉您",继续执行
> 路径说明:使用 WebSearch / WebFetch 从东方财富网、新浪财经、雪球等公开来源获取财务数据。数据精度可能略低于专业 skill,但不影响完整的估值分析流程。
> 🔐 Gate:至少一条路径可用 → 始终 true(路径B永远是备选),继续执行
检查标记文件 $SKILL_DIR/.first_run_complete 是否存在(SKILL_DIR 是本 skill 的根目录):
send_file_to_user 发送本技能目录下的 references/前置说明与版本对比.md 文件给用户,然后创建标记文件> 标记文件仅控制前置说明的发送,不影响主流程。
以上检测全部通过后 → 进入 Phase 1 数据获取
根据 Phase 0 路由结果走对应路径:
> 用用户已安装的金融数据 skill 查数据。以下以 mx-data 为例(实际调用方式以用户 skill 为准),假设用户 skill 能返回以下字段:
第1步:查机构预测统计 → 拿到A年(最新年报年份)和E年(未来预测)
→ 应返回4行数据格式:2025A / 2026E / 2027E / 2028E
→ A年(如2025)就是最新年报年份,以此为准
第2步:用A年查年报全套财务数据
→ 经营现金流 | 资本开支 | 总资产 | 有息负债 | 应收票据及应收账款 | 非经常性损益
第3步:查当前市值
> 如果用户 skill 是 mx-data,其具体用法参考 工具定义 章节中的 bash 命令和读数据方式。
用 WebSearch / WebFetch 搜索公开数据。按以下顺序逐个获取:
【搜索策略】
① 机构预测净利润
搜索 "<股票名/代码> 机构预测 净利润 2026 2027 2028"
或从东方财富个股页财务分析-机构预测获取
→ 需要拿到4行(A/E/E/E),年份动态确定
② 最新市值
搜索 "<股票名/代码> 总市值"
或东方财富/新浪财经个股页
③ 最新年报财务数据
搜索 "<股票名/代码> <A年>年报 经营现金流 资本开支 总资产 有息负债"
搜索 "<股票名/代码> 应收票据及应收账款 非经常性损益"
优先从东方财富网个股页 → 财务分析 → 财务指标获取
④ 无风险收益率
搜索 "10年期国债收益率"
搜索 "AAA企业债收益率"
搜索取数规则:
WebSearch 定位页面 → WebFetch 抓取具体数据读取输出格式示例:
📡 数据来源:浏览器搜索(东方财富网 + 新浪财经)
机构预测:2025A=xxx亿 / 2026E=xxx亿 / 2027E=xxx亿 / 2028E=xxx亿
当前市值:xxx亿
经营现金流:xxx亿 | 资本开支:xxx亿 | 总资产:xxx亿
有息负债:xxx亿 | 应收票据及应收账款:xxx亿 | 非经常性损益:xxx亿
10年期国债收益率:x.xx% | AAA企业债收益率:x.xx%
> 注意:浏览器查询的数据在报告中需标注"数据来自公开网络搜索,仅供参考"
> 🔐 数据完整性Gate(适用于两条路径):
>
> 必须字段(缺失 → 暂停,重新查一次;仍查不到则向用户报告):
> - [ ] 最新市值 [ ] 归属净利润(机构预测A年) [ ] 经营现金流
> - [ ] 资本开支 [ ] 总资产 [ ] 有息负债 [ ] 非经常性损益
> - [ ] 机构预测4行数据(A/E/E/E)
>
> 可选字段(缺失 → 标记"⚠️ 未获取",继续执行):
> - [ ] 应收票据及应收账款
>
> 应收票据及应收账款缺失处理:先用主查询查一次,取不到则单独再查一次 应收票据及应收账款(注意字段名,不要用应收账款);仍取不到则标⚠️继续,不影响流程。
| 前提 | 检验项 | 判定标准 | 数据缺失处理 |
|---|---|---|---|
| :----: | ------- | :--------: | :-----------: |
| 前提一:利润为真? | ①经营现金流/净利润 | ✅ > 0.5 / ❌ < 0.5 | 必须字段,缺失不能通过 |
| ②应收票据及应收账款/总资产 | ✅ < 30% / ❌ ≥ 30% | 缺失时标⚠️,此检验项标记为"待确认",前提一结论降级为⚠️ | |
| ③非经常性损益/净利润 | ✅ < 10% / ❌ ≥ 10% | 必须字段,缺失不能通过 | |
| 前提二:利润可持续? | ④被需要? | ✅ / ❌ / ⚠️ | AI自行判断 |
| ⑤很难被替代? | ✅ / ❌ / ⚠️ | AI自行判断 | |
| ⑥价格不受管制? | ✅ / ❌ / ⚠️ | AI自行判断 | |
| 前提三:少资本投入? | ⑦资本开支/净利润 | ✅ < 50% / ⚠️ 50-100% / ❌ > 100% | 必须字段,缺失不能通过 |
结论规则:每个前提的最终结论 = 该前提三个检验项中的最差结果。
有息负债率 = 有息负债 ÷ 总资产
合理市值(双PE轨道):
买点 = 合理市值 × 50%
卖点 = min(合理市值 × 150%, 当年净利润 × 50倍)
> 🔐 计算完成Gate:确认买点/卖点均已计算,继续
格式见 references/report-templates.md。输出前逐项对照 references/checklist.md 自检,全部通过才发送。
> 报告最终上传到IMA订阅库「价值投资与趋势预判→2.个股实盘-唐唐估值法Skill/」展示给用户看。
单企分析:
【你好金乌】个股估值·{公司名}({YYYY.MM.DD}).md
示例: 【你好金乌】个股估值·贵州茅台(2026.06.20).md
双企对比:
【你好金乌】个股估值·{A公司}+{B公司}({YYYY.MM.DD}).md
示例: 【你好金乌】个股估值·贵州茅台+五粮液(2026.06.20).md
企业对比汇总表:
【你好金乌】个股估值·企业对比汇总表({YYYY.MM.DD}).md
命名检查:
../../data/{用户名}/唐唐估值法/reports/ 目录中已有的文件名特别注意:如果有字段缺失(如应收票据及应收账款取不到),必须:
应收票据及应收账款(不要写应收账款)应收票据及应收账款| 文件 | 内容 | 什么时候读 |
|---|---|---|
| :----: | :----: | ----------- |
references/report-templates.md | 单企/双企报告模板 | 写报告时 |
references/checklist.md | 输出前验证清单 | 报告输出前逐项打勾 |
references/valuation-guide.md | PE倍数来源与估值公式详解 | ⚠️ 估值计算前必读 |
references/前置说明与版本对比.md | 方法论原理+开发者介绍+版本对比 | 首次启动时 send_file_to_user |
| 场景 | 策略 |
|---|---|
| :----- | :------ |
| 用户只说"帮我分析"没给代码 | 问企业名称或股票代码 |
| 用户分析的指数/基金/ETF | 告知老唐估值法只适用于个股,不适用于指数/基金/ETF |
| 用户分析的股票代码不存在 | 告知查不到数据,请用户确认代码 |
| 数据获取失败 | 告知是哪类数据取不到,不影响的部分继续分析,缺失字段标注"未获取" |
| 三大前提不满足 | 清楚标注不适合老唐估值法,给出原因,不强行算估值 |
| 用户问"为什么是这个PE" | 用valuation-guide中的公式和实际利率数据解释 |
| 用户问付费版有什么 | 告知付费版含老唐+新唐双轨估值,适用更多企业类型(不具体说价格,让用户去了解) |
共 10 个版本