【股票同业对比分析】
使用场景
当用户需要对比某只股票与其同行业/同概念竞争对手的综合表现时触发本技能,具体包括:
| 场景 | 说明 | 典型问题 | |------|------|----------| | 选股决策 | 在同行业中筛选最优标的 | "白酒行业哪只股票最好"、"新能源行业龙头是谁" | | 持仓诊断 | 对比持仓股与行业龙头的差距 | "我持有的 XX 在行业里算什么水平" | | 估值分析 | 判断个股相对同行业的估值高低 | "XX 估值贵不贵,和同行比怎么样" | | 财务对比 | 对比营收、利润、毛利率等核心财务指标 | "XX 的盈利能力在行业里排第几" | | 市场表现 | 对比股价涨跌幅、成交量、资金流向 | "最近 XX 为什么跑输同行" | | 机构态度 | 对比研报评级、机构持仓变化 | "机构更看好 XX 还是它的竞争对手" |
触发词
以下关键词或短语可触发本技能:
"同业对比"、"行业对比"、"竞争对手对比"、"和 XX 比怎么样"、
"XX 在行业里排第几"、"同行业股票对比"、"概念成分股对比"、
"XX 和它的竞争对手比"、"行业龙头对比"、"估值对比"、
"财务指标对比"、"同行业谁更好"、"XX 的同行有哪些"
示例查询:
- "贵州茅台同业对比"
- "宁德时代和它的竞争对手比怎么样"
- "比亚迪在行业里排第几"
- "同行业股票对比:白酒行业"
- "估值对比:贵州茅台 vs 五粮液 vs 泸州老窖"
核心功能
| 功能模块 | 说明 | 输出内容 | |----------|------|----------| | 同业识别 | 自动识别目标股票所属行业/概念,获取成分股列表 | 行业名称、概念名称、同业公司列表(5-10 家) | | 基本信息对比 | 对比公司市值、股本、上市时间、主营业务 | 基本信息对比表 | | 财务数据 | 罗列对比各公司近 3 年核心财务指标数据 | 近 3 年财务数据对比表(营收、净利润、毛利率等) | | 财务指标对比 | 对比营收、归母净利润、毛利率、净利率、ROE 等 | 财务数据对比表(带同比增速) | | 估值水平对比 | 对比 PE(TTM)、PB、PS、PEG 等估值指标 | 估值对比表 + 行业分位数 | | 市场表现对比 | 对比近期涨跌幅、成交量、换手率、振幅 | 市场表现对比表(近 5 日/20 日/60 日) | | 资金流向对比 | 对比主力资金净流入、北向资金持仓变化 | 资金流对比表 | | 机构态度对比 | 对比研报评级分布、目标价、机构调研频次 | 机构评级对比表 | | 综合评分 | 基于以上维度生成综合竞争力评分 | 雷达图 + 排名 |
数据源
所有工具均来自恒生聚源 MCP 服务,无第三方 API。工具名称必须准确,不可捏造!
必选工具(核心功能)
| 工具名称 | 所属服务 | 用途 | 查询示例 |
|----------|----------|------|----------|
| StockBelongIndustry | jy-financedata-api | 获取股票所属行业 | 贵州茅台 行业分类 |
| StockBelongConcept | jy-financedata-api | 获取股票所属概念 | 贵州茅台 概念板块 |
| IndustryConstituentStocks | jy-financedata-api | 获取行业成分股列表 | 白酒行业成分股 |
| ConceptConstituentStocks | jy-financedata-api | 获取概念成分股列表 | 人工智能概念成分股 |
| CompanyBasicInfo | jy-financedata-api | 获取公司基本信息 | 贵州茅台 公司简介 |
| FinancialStatement | jy-financedata-api | 获取财务报表数据 | 贵州茅台 财务报表 |
| StockValueAnalysis | jy-financedata-api | 获取估值分析数据 | 贵州茅台 估值分析 |
| AShareLiveQuote | jy-financedata-api | 获取 A 股实时行情 | 贵州茅台 实时行情 |
| RealStockFundFlow | jy-financedata-api | 获取实时资金流 | 贵州茅台 资金流 |
| InstitutionalRating | jy-financedata-api | 获取机构评级 | 贵州茅台 机构评级 |
可选工具(增强功能)
| 工具名称 | 所属服务 | 用途 | 查询示例 |
|----------|----------|------|----------|
| IndustryFinancialAnalysis | jy-financedata-api | 获取行业财务分析 | 白酒行业财务分析 |
| HSGTTradeStats | jy-financedata-api | 获取沪深港通持仓 | 最近 3 天沪深股通交易统计 |
| AgentOrgRanking | jy-financedata-api | 获取机构排名/持仓 | 贵州茅台 机构排名 |
| HKCompanyBasicInfo | jy-financedata-api | 港股公司简介(港股) | 腾讯控股 公司简介 |
| HKFinancialStatement | jy-financedata-api | 港股财务报表(港股) | 腾讯控股 财务报表 |
| HKStockValueAnalysis | jy-financedata-api | 港股估值分析(港股) | 腾讯控股 估值分析 |
环境检查与配置
每次使用本技能前,必须先检查 mcporter 安装和 MCP 服务配置状态!
步骤 1:检查 mcporter 是否安装
mcporter --version
如未安装:
npm install -g mcporter
mcporter --version
步骤 2:检查 MCP 服务配置
mcporter list
预期输出:
- jy-financedata-tool
- jy-financedata-api
如服务未配置,需先申请 JY_API_KEY:
| 项目 | 内容 | |------|------| | 申请邮箱 | datamap@gildata.com | | 邮件标题 | 数据地图 KEY 申请 -XX 公司 - 申请人姓名 | | 正文模板 | 姓名、手机号、公司/单位全称、所属部门、岗位、MCP_KEY 申请用途、Skill 申请列表 |
步骤 3:配置 MCP 服务
mcporter config add jy-financedata-tool --url "https://api.gildata.com/mcp-servers/jy-financedata-tool?token=你的 JY_API_KEY"
mcporter config add jy-financedata-api --url "https://api.gildata.com/mcp-servers/jy-financedata-api?token=你的 JY_API_KEY"
mcporter list # 验证配置
核心工作流程
工具调用原则:能并发的尽量并发调用,提速!
步骤 1:识别目标股票所属行业/概念
# 并发调用
mcporter call jy-financedata-api.StockBelongIndustry query="{股票名称}"
mcporter call jy-financedata-api.StockBelongConcept query="{股票名称}"
步骤 2:获取同业公司列表
# 按行业获取(优先)
mcporter call jy-financedata-api.IndustryConstituentStocks query="{行业名称}"
# 或按概念获取
mcporter call jy-financedata-api.ConceptConstituentStocks query="{概念名称}"
筛选规则: 从成分股中选取 5-10 家市值相近、业务相似的代表性同业公司
步骤 3:并发获取各维度数据
# 步骤 3.1:公司基本信息(并发调用所有同业公司)
mcporter call jy-financedata-api.CompanyBasicInfo query="{公司 1 名称}"
mcporter call jy-financedata-api.CompanyBasicInfo query="{公司 2 名称}"
# ...
# 步骤 3.2:财务指标数据(并发调用)
mcporter call jy-financedata-api.FinancialStatement query="{公司 1 名称} 财务报表"
# ...
步骤 4:获取近 3 年财务数据并执行验证(新增)
目标: 获取各公司近 3 年核心财务指标,反映长期经营趋势
必选指标:
- 营业收入(3 年数据 + 3 年 CAGR)
- 归母净利润(3 年数据 + 3 年 CAGR)
- 毛利率(3 年数据 + 趋势)
- 净利率(3 年数据 + 趋势)
- ROE(3 年数据 + 趋势)
调用方式:
# 对每个同业公司调用 FinancialStatement,获取近 3 年年报数据
mcporter call jy-financedata-api.FinancialStatement query="{公司 1 名称} 财务报表"
# 从返回结果中提取 2023 年、2024 年、2025 年年报数据
数据提取说明:
- 从 FinancialStatement 返回结果中筛选
报告期=年报的记录 - 提取最近 3 个完整会计年度的数据
- 计算 3 年 CAGR = (2025 年值/2023 年值)^(1/2) - 1
- 判断趋势:2025 年值 > 2023 年值 为↑,反之为↓,变化<5% 为→
数据验证流程(新增 - 强制):
# 步骤 4.1:原始数据完整性检查
# - 检查必需科目是否存在(OperatingRevenue、OperatingCost、NPParentCompanyOwners)
# - 检查币种、单位字段是否存在
# - 检查报告期是否正确(年报/中报/季报)
# 步骤 4.2:科目层级验证
# - 验证:OperatingRevenue ≈ SalesRevenue + OtherOperatingIncome (允许±1% 误差)
# - 验证:OperatingCost ≈ SalesCost + OtherOperationalCost (允许±1% 误差)
# 步骤 4.3:计算指标验证
# - 计算毛利率 = (OperatingRevenue - OperatingCost) / OperatingRevenue × 100%
# - 计算净利率 = NPParentCompanyOwners / OperatingRevenue × 100%
# - 如 MCP 返回了对应指标,进行对比验证(误差>0.5% 记录警告)
# 步骤 4.4:同比增速验证(关键)
# - 自行计算同比增速 = (本期值 - 上年同期值) / |上年同期值| × 100%
# - 与 MCP 返回的同比增速对比
# - 误差>1% 时使用计算值,并在报告中标注
# 步骤 4.5:跨科目一致性检查
# - 利润表内部一致性:利润总额 ≈ 营业利润 + 营业外收入 - 营业外支出
# - 现金流与利润合理性:经营活动现金流净额 / 归母净利润
# 步骤 4.6:跨期一致性检查
# - 营收连续性:如相邻两年增长率>100% 或<-50%,记录警告
# - 毛利率稳定性:如近 3 年毛利率波动>10%,记录警告
# 步骤 4.7:生成验证日志
# - 所有验证结果汇总
# - 警告/错误信息记录
验证日志示例:
## 数据验证日志 - 宁德时代
| 验证项目 | 状态 | 说明 |
|----------|------|------|
| 原始数据完整性 | ✅ 通过 | 所有必需科目均存在 |
| 科目层级验证 | ✅ 通过 | 2 级科目与 3 级科目差异<0.5% |
| 毛利率计算验证 | ✅ 通过 | 计算值 26.3% vs MCP 返回 26.3% |
| 净利率计算验证 | ✅ 通过 | 计算值 17.0% vs MCP 返回 17.0% |
| 同比增速验证 | ✅ 通过 | 计算值 17.0% vs MCP 返回 17.0% |
| 跨科目一致性 | ✅ 通过 | 利润表内部一致性良好 |
财务指标计算规范(强制)
核心原则:所有计算指标必须基于 MCP 返回的原始数据正确计算,不得使用缓存或估算值!
规范引用: 本技能遵循《财务数据规范通用标准》(v3.0),详见 ~/openclaw-skills/common-financial-standards/SKILL.md
必须计算的财务指标
| 指标 | 计算公式 | 数据源 (财务科目代码) | 注意事项 |
|------|----------|----------------------|----------|
| 毛利率 | (营业收入 - 营业成本) / 营业收入 × 100% | OperatingRevenue (营业收入 2 级)<br>OperatingCost (营业成本 2 级) | ⚠️ 必须使用 2 级科目,不可使用 3 级"主营业务收入/成本" |
| 净利率 | 归母净利润 / 营业收入 × 100% | NPParentCompanyOwners (归母净利润)<br>OperatingRevenue (营业收入) | 净利润可能为负值 |
| ROE | 归母净利润 / 净资产 × 100% | NPParentCompanyOwners (归母净利润)<br>NetAssets (净资产) | 如 MCP 直接返回 ROE 则优先使用 |
| 3 年 CAGR | (2025 年值/2023 年值)^(1/2) - 1 | 近 3 年年报数据 | 仅用于营收、净利润等核心指标 |
| 同比增速 | (本期值 - 上年同期值) / \|上年同期值\| × 100% | 当期和上年同期数据 | ⚠️ 必须与 MCP 返回的同比增速对比验证(见数据验证流程) |
数据验证流程(新增 - 强制)
执行时机: 每次调用 FinancialStatement 接口后,生成报告前
验证步骤:
步骤 1:原始数据完整性检查
- 检查必需科目是否存在(OperatingRevenue、OperatingCost、NPParentCompanyOwners)
- 检查币种、单位字段是否存在
- 检查报告期是否正确(年报/中报/季报)
步骤 2:科目层级验证
- 验证:OperatingRevenue ≈ SalesRevenue + OtherOperatingIncome (允许±1% 误差)
- 验证:OperatingCost ≈ SalesCost + OtherOperationalCost (允许±1% 误差)
- 如误差超限,记录警告并优先使用 2 级科目
步骤 3:计算指标验证
- 计算毛利率、净利率、ROE
- 如 MCP 返回了对应指标,进行对比验证
- 误差>0.5% 时记录警告并使用计算值
步骤 4:同比增速验证(新增 - 关键)
- 自行计算同比增速 = (本期值 - 上年同期值) / |上年同期值| × 100%
- 与 MCP 返回的同比增速对比
- 误差判断:
- ≤ 0.1%:✅ 验证通过,使用 MCP 值
- 0.1%-1%:⚠️ 记录警告,使用 MCP 值
- > 1%:❌ 验证失败,使用计算值,并在报告中标注"同比增速经重新计算"
步骤 5:跨科目一致性检查
- 利润表内部一致性:利润总额 ≈ 营业利润 + 营业外收入 - 营业外支出
- 现金流与利润合理性:经营活动现金流净额 / 归母净利润,如<0.5 或>2.0 记录警告
步骤 6:跨期一致性检查
- 营收连续性:如相邻两年增长率>100% 或<-50%,记录警告
- 毛利率稳定性:如近 3 年毛利率波动>10%,记录警告
步骤 7:同业对比一致性检查
- 毛利率、净利率、ROE 与同业对比
- 如偏离同业平均>50%,记录警告并提示关注
验证容差标准:
| 验证项目 | 通过容差 | 警告容差 | 失败处理 | |----------|----------|----------|----------| | 科目层级验证(2 级 vs 3 级) | ≤ 0.5% | 0.5%-1% | >1% 时使用 2 级科目,记录警告 | | 毛利率计算验证 | ≤ 0.1% | 0.1%-0.5% | >0.5% 时使用计算值,记录警告 | | 净利率计算验证 | ≤ 0.1% | 0.1%-0.5% | >0.5% 时使用计算值,记录警告 | | ROE 计算验证 | ≤ 0.5% | 0.5%-1% | >1% 时使用计算值,标注"基于期末净资产" | | 同比增速验证 | ≤ 0.1% | 0.1%-1% | >1% 时使用计算值,报告中标注 | | 跨科目一致性 | ≤ 1% | 1%-5% | >5% 时记录警告 |
验证日志格式(内部使用):
## 数据验证日志
**验证时间:** 2026-04-22 14:30
**目标公司:** 宁德时代(300750.SZ)
### 验证结果汇总
| 验证项目 | 状态 | 说明 |
|----------|------|------|
| 原始数据完整性 | ✅ 通过 | 所有必需科目均存在 |
| 科目层级验证 | ✅ 通过 | 2 级科目与 3 级科目差异<0.5% |
| 毛利率计算验证 | ✅ 通过 | 计算值与 MCP 返回值一致 |
| 净利率计算验证 | ✅ 通过 | 计算值与 MCP 返回值一致 |
| ROE 计算验证 | ⚠️ 警告 | 计算值与 MCP 返回值差异 0.8%,使用 MCP 返回值 |
| 同比增速验证 | ✅ 通过 | 计算值与 MCP 返回值一致 |
| 跨科目一致性 | ✅ 通过 | 利润表内部一致性良好 |
| 跨期一致性 | ✅ 通过 | 营收、毛利率趋势正常 |
| 同业对比一致性 | ✅ 通过 | 指标在同业合理范围内 |
最终报告中的验证说明(如验证通过):
> **数据质量说明:**
> - 所有财务指标均经过交叉验证 ✅
> - 同比增速经重新计算,与 MCP 返回值一致 ✅
> - 毛利率、净利率基于 MCP 返回的 2 级科目正确计算 ✅
> - ROE 使用 MCP 直接返回值(基于平均净资产计算)
最终报告中的验证说明(如验证失败):
> **数据质量说明:**
> - ⚠️ 营业收入同比增速验证失败(计算值 15.2% vs MCP 返回 17.0%),已使用重新计算值
> - 毛利率基于 MCP 返回的 2 级科目正确计算 ✅
财务科目取值规范(强制)
规范引用: 本技能遵循《财务数据规范通用标准》(v3.0),详见 ~/openclaw-skills/common-financial-standards/SKILL.md
A 股财务科目取值规范
必须使用的财务科目代码:
| 指标 | 科目代码 | 科目名称 | 科目层级 | 常见错误 | 验证规则 |
|------|----------|----------|----------|----------|----------|
| 营业收入 | OperatingRevenue | 营业收入 | 2 级 | ❌ 误用 SalesRevenue (主营业务收入 3 级) | OperatingRevenue ≈ SalesRevenue + OtherOperatingIncome (±1%) |
| 营业成本 | OperatingCost | 营业成本 | 2 级 | ❌ 误用 SalesCost (主营业务成本 3 级) | OperatingCost ≈ SalesCost + OtherOperationalCost (±1%) |
| 归母净利润 | NPParentCompanyOwners | 归属于母公司所有者的净利润 | 3 级 | ❌ 误用 NetProfit (净利润 1 级) | 必须使用归母净利润,而非净利润 |
| 净利润 | NetProfit | 净利润 | 1 级 | - | 用于计算整体净利率(如需要) |
| 净资产 | NetAssets | 净资产 | 2 级 | ❌ 误用 TotEquity (所有者权益合计) | 优先使用 MCP 直接返回的 ROE |
重要说明:
OperatingRevenue(营业收入 2 级) =SalesRevenue(主营业务收入 3 级) +OtherOperatingIncome(其他业务收入 3 级)OperatingCost(营业成本 2 级) =SalesCost(主营业务成本 3 级) +OtherOperationalCost(其他业务成本 3 级)- 计算毛利率时必须使用 2 级科目,否则会遗漏其他业务收入/成本
港股财务科目取值规范
必须使用的财务科目代码:
| 指标 | 科目代码 | 科目名称 | 科目层级 | 常见错误 | 验证规则 |
|------|----------|----------|----------|----------|----------|
| 营业收入 | OperatingRevenue | 营业收入/Revenue | 2 级 | ❌ 误用 SalesRevenue | 同 A 股 |
| 营业成本 | OperatingCost | 营业成本/Cost of Sales | 2 级 | ❌ 误用 SalesCost | 同 A 股 |
| 归母净利润 | NPParentCompanyOwners | 母公司拥有人应占溢利 | 3 级 | ❌ 误用 NetProfit | 同 A 股 |
| 每股收益 | EPS | 每股盈利/Earnings Per Share | - | ❌ 自行计算 | 优先使用 MCP 直接返回值 |
港股特殊注意事项:
| 项目 | 说明 | 处理方式 |
|------|------|----------|
| 币种多样性 | 港股公司财报可能使用人民币、美元、港元 | ✅ 必须读取 币种 字段,表头明确标注<br>❌ 禁止擅自进行货币转换 |
| 会计准则 | 港股采用 HKFRS/IFRS,与 A 股 CAS 有差异 | ✅ 在报告中注明"港股采用国际财务报告准则" |
| 单位差异 | 可能使用"千元"、"百万元"、"亿元" | ✅ 必须读取 单位 字段<br>✅ 统一转换为"亿元"并在表头标注 |
数据提取要求
必须从 MCP 返回数据中提取以下基础科目:
| 科目代码 | 科目名称 | 用途 |
|----------|----------|------|
| OpeRev | 营业收入 | 计算毛利率、净利率 |
| OpeaCost | 营业成本 | 计算毛利率 |
| NetProfit | 净利润 | 计算净利率 |
| TotProfit | 利润总额 | 备用 |
| OpeProfit | 营业利润 | 备用 |
计算验证示例
再鼎医药 2025 年毛利率计算:
MCP 返回数据:
- 营业收入 (OpeRev): 4.6 亿美元
- 营业成本 (OpeaCost): 1.91 亿美元
正确计算:
毛利率 = (4.6 - 1.91) / 4.6 × 100% = 58.5%
错误示例(禁止):
- ❌ 使用缓存值 82.5%
- ❌ 使用估算值
- ❌ 使用其他数据源的值
检查清单(生成报告前必须确认)
基础验证:
- ✅ 已读取 MCP 返回数据中的
币种字段 - ✅ 已读取 MCP 返回数据中的
单位字段 - ✅ 必需科目均存在(OperatingRevenue、OperatingCost、NPParentCompanyOwners)
科目验证:
- ✅ 毛利率已从 MCP 提取营收和营业成本后正确计算
- ✅ 净利率已从 MCP 提取净利润和营收后正确计算
- ✅ 已验证 2 级科目与 3 级科目一致性(误差≤1%)
- ✅ 如误差超限,已优先使用 2 级科目
计算验证:
- ✅ 所有计算指标都有 MCP 原始数据支撑
- ✅ 计算过程可追溯、可验证
- ✅ 如 MCP 直接返回某指标,优先使用 MCP 返回值
- ✅ ROE 已验证(如 MCP 返回,对比验证;否则自行计算)
同比增速验证(新增):
- ✅ 已自行计算同比增速
- ✅ 已与 MCP 返回的同比增速对比
- ✅ 误差≤0.1%:验证通过
- ✅ 误差 0.1%-1%:记录警告,使用 MCP 值
- ✅ 误差>1%:使用计算值,报告中标注
一致性检查(新增):
- ✅ 跨科目一致性检查通过(利润表内部勾稽)
- ✅ 跨期一致性检查通过(营收、毛利率趋势正常)
- ✅ 同业对比一致性检查通过(指标在合理范围)
输出验证:
- ✅ 表格表头已明确标注币种和单位
- ✅ 验证日志已生成(内部使用)
- ✅ 如有关键验证失败,已在报告中标注
财务数据货币单位规范(强制)
规范引用: 本技能遵循《财务数据规范通用标准》(v3.0),详见 ~/openclaw-skills/common-financial-standards/SKILL.md
核心原则:以 MCP 返回的实际数据和单位为准,不得擅自进行货币转换!
| 要求 | 说明 | 示例 |
|------|------|------|
| 读取币种字段 | 必须从返回数据中读取 币种 字段 | 币种:美元、币种:人民币、币种:港元 |
| 保留原始单位 | 输出时必须保留 MCP 返回的原始单位 | 4.6 亿美元、33.4 亿元人民币 |
| 禁止擅自转换 | 不得将美元/港元自动转换为人民币 | ❌ 禁止将 4.6 亿美元转换为 33.4 亿元人民币 |
| 明确标注币种 | 表格表头必须明确标注币种 | 营业收入 (亿美元)、归母净利润 (亿元人民币) |
| 混合市场处理 | 当同业公司涉及不同币种时,分别标注 | A 股公司用人民币,港股公司用美元/港元 |
| 单位统一检查 | 同一表格内单位必须一致 | 如都是"亿元",不能混用"万元" |
| 单位读取验证 | 必须从 MCP 返回数据中读取 单位 字段 | 单位:亿元、单位:百万元、单位:千元 |
数据解析示例:
<!-- 正确:保留原始币种 -->
| 公司 | 营业收入 (亿美元) | 归母净利润 (亿美元) |
|------|-----------------|-------------------|
| 再鼎医药 | 4.6 | -1.76 |
| 百济神州 | 35.2 | -8.5 |
<!-- 错误:擅自转换币种 -->
| 公司 | 营业收入 (亿元人民币) | 归母净利润 (亿元人民币) |
|------|---------------------|-----------------------|
| 再鼎医药 | 33.4 (原 4.6 亿美元) | -12.8 (原 -1.76 亿美元) |
输出模板中的标注要求:
### 3.1 营业收入对比
| 公司 | 2023 年 (亿美元) | 2024 年 (亿美元) | 2025 年 (亿美元) | 3 年 CAGR(%) |
|------|---------------|---------------|---------------|-------------|
| 再鼎医药 | 2.67 | 3.99 | 4.6 | 31.2 |
> 数据来源:恒生聚源财务报表数据库 [3],各年年报
> **币种说明**:再鼎医药为港股上市公司,财务报表以美元计价
检查清单(生成报告前必须确认):
- ✅ 已读取 MCP 返回数据中的
币种字段 - ✅ 表格表头已明确标注币种(如"亿美元"、"亿元人民币")
- ✅ 未擅自进行货币转换
- ✅ 同一表格内单位一致
- ✅ 如有不同币种,已在表格下方添加币种说明
步骤 5-9:获取其他维度数据
# 步骤 5:估值分析数据(并发调用)
mcporter call jy-financedata-api.StockValueAnalysis query="{公司 1 名称} 估值分析"
# ...
# 步骤 6:市场表现数据(并发调用)
mcporter call jy-financedata-api.AShareLiveQuote query="{公司 1 名称}"
# ...
# 步骤 7:资金流向数据(并发调用)
mcporter call jy-financedata-api.RealStockFundFlow query="{公司 1 名称} 资金流"
# ...
# 步骤 8:机构评级数据(并发调用)
mcporter call jy-financedata-api.InstitutionalRating query="{公司 1 名称} 机构评级"
# ...
# 步骤 9:生成综合评分与排名
评分权重:
- 财务指标:30%(含近 3 年财务数据趋势 15% + 最新财务指标 15%)
- 估值水平:20%
- 市场表现:20%
- 资金流向:15%
- 机构态度:15%
【输出格式要求】(强制)
1. 必须同时输出两种格式
| 格式 | 用途 | 要求 | |------|------|------| | Markdown | 阅读和版本控制 | 完整报告内容 | | HTML | 交互式浏览 | 含 ECharts 图表、交互功能 |
2. 必须自动保存文件
保存路径: {workspace}\reports\ 目录
{workspace}= 当前工作空间根目录(通常是C:\Users\你的用户名\.openclaw\workspace\)- 如
reports/目录不存在,需先创建
文件命名规范:
{股票名称} 同业对比分析报告_{YYYYMMDD}.md
{股票名称} 同业对比分析报告_{YYYYMMDD}.html
示例:
C:\Users\liust\.openclaw\workspace\reports\宁德时代同业对比分析报告_20260420.md
C:\Users\liust\.openclaw\workspace\reports\宁德时代同业对比分析报告_20260420.html
3. 不能仅在聊天界面输出
- ❌ 禁止仅在聊天界面输出而不保存文件
- ✅ 必须先保存文件,再在聊天界面输出摘要和文件路径
4. HTML 格式必须包含的交互功能
| 功能 | 说明 |
|------|------|
| 角标跳转 | 点击 [1]、[2] 等角标跳转至文末数据来源 |
| 返回顶部按钮 | 固定在页面右下角,点击滚动到顶部 |
| 表格排序 | 点击表头可按列排序(升序/降序切换) |
| 响应式设计 | 适配桌面端(≥1200px)和移动端(<1200px) |
5. 必须包含 ECharts 图表
必选图表:
- 估值对比柱状图 - 各公司 PE(TTM) 对比,标注行业平均值,目标公司高亮
- 综合评分雷达图 - 各维度得分对比,目标公司高亮显示
- 财务数据趋势图 - 近 3 年营收/净利润对比折线图,展示各公司成长趋势
可选图表:
- 近 60 日相对走势对比折线图
- 近 20 日主力资金净流入趋势面积图
- 毛利率/净利率/ROE 趋势对比图
6. 输出流程
1. 收集数据 → 2. 生成 Markdown 内容 → 3. 生成 HTML 内容
↓
4. 保存 .md 文件 → 5. 保存 .html 文件 → 6. 在聊天界面输出摘要 + 路径
【数据溯源要求】(强制)
1. 数据源角标标注规则
必须在以下位置标注角标:
| 位置 | 标注方式 | 示例 |
|------|----------|------|
| 每个数据表格下方 | 标注数据来源 | > 数据来源:恒生聚源 XX 数据库 [1],截至 2026-04-20 |
| 核心摘要中的关键数据 | 在数据后标注 | 市值约 19592 亿元 [1] |
| 综合评分表下方 | 标注评分依据 | > 数据来源:评分基于恒生聚源财务 [3]、估值 [4]、行情 [5] 数据库综合计算 |
角标编号规则:
| 角标 | 数据类型 | 工具名称 |
|------|----------|----------|
| [1] | 行业分类 | StockBelongIndustry/StockBelongConcept |
| [2] | 公司基本信息 | CompanyBasicInfo |
| [3] | 财务数据 | FinancialStatement |
| [4] | 估值数据 | StockValueAnalysis |
| [5] | 行情数据 | AShareLiveQuote/StockDailyQuote |
| [6] | 资金流向 | RealStockFundFlow |
| [7] | 机构评级 | InstitutionalRating |
2. 文末必须列出数据源清单
每个报告末尾必须包含以下表单:
## 数据来源
### 数据源清单
| 角标 | 数据类型 | MCP 服务 | 工具名称 | 查询时间 | 数据更新时间 |
|------|----------|----------|----------|----------|--------------|
| [1] | 行业分类 | jy-financedata-api | StockBelongIndustry | 2026-04-20 11:02 | 2026-04-20 |
| [2] | 公司基本信息 | jy-financedata-api | CompanyBasicInfo | 2026-04-20 11:02 | 最新财报 |
| [3] | 财务数据 | jy-financedata-api | FinancialStatement | 2026-04-20 11:02 | 2025 年年报 |
| [4] | 估值数据 | jy-financedata-api | StockValueAnalysis | 2026-04-20 11:02 | 2026-04-19 |
| [5] | 行情数据 | jy-financedata-api | AShareLiveQuote | 2026-04-20 11:02 | 实时 |
| [6] | 资金流向 | jy-financedata-api | RealStockFundFlow | 2026-04-20 11:03 | 实时 |
| [7] | 机构评级 | jy-financedata-api | InstitutionalRating | 2026-04-20 11:03 | 2026-04-20 |
**数据说明:**
- 所有数据均来自恒生聚源 MCP 金融数据库,无第三方数据源
- 财务数据来自公司定期报告,估值数据基于最新财报计算
- 行情数据为交易时段实时数据(9:30-11:30, 13:00-15:00),非交易时段为最新收盘价
- 资金流向数据每 3 秒刷新一次
- 机构评级数据每日更新
### 数据时效性说明
| 数据类型 | 更新频率 | 延迟说明 |
|----------|----------|----------|
| 行情数据 | 实时 | 交易时段无延迟,非交易时段为收盘价 |
| 资金流向 | 实时 | 每 3 秒刷新 |
| 估值数据 | T+1 | 每个交易日早 6:00 更新 |
| 财务数据 | 季报/年报 | 财报披露后 1-2 个工作日 |
| 机构评级 | 每日 | 研报发布后 1 个工作日内 |
3. HTML 版本中的角标必须可点击跳转(强制)
角标跳转交互要求:
| 要求 | 说明 | 实现方式 |
|------|------|----------|
| 角标链接 | 所有 [1]、[2] 等角标必须是可点击的 <a> 标签 | <a href="#fn1" class="citation">[1]</a> |
| 目标锚点 | 文末数据源清单中每个条目必须有对应的 id 锚点 | <tr id="fn1"> 或 <p id="fn1"> |
| 平滑滚动 | 点击角标后平滑滚动到目标位置 | CSS: html { scroll-behavior: smooth; } |
| 返回功能 | 文末数据源条目可点击返回原文位置(可选) | <a href="#ref1">返回</a> |
| 视觉反馈 | 角标悬停时有视觉反馈 | CSS: .citation:hover { background: #e3f2fd; } |
完整 HTML 实现示例:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<style>
html { scroll-behavior: smooth; } /* 平滑滚动 */
.citation {
font-size: 0.8em;
vertical-align: super;
color: #0066cc;
text-decoration: none;
padding: 2px 4px;
border-radius: 3px;
}
.citation:hover {
background: #e3f2fd;
text-decoration: underline;
}
.source-row:target {
background: #fff3cd;
animation: highlight 2s ease;
}
@keyframes highlight {
from { background: #ffeb3b; }
to { background: #fff3cd; }
}
</style>
</head>
<body>
<!-- 正文中的角标 -->
<p>再鼎医药市值约 218 亿港元<a href="#fn1" class="citation">[1]</a>。</p>
<table>
<tr><td>财务数据</td><td>4.6 亿美元<a href="#fn3" class="citation">[3]</a></td></tr>
</table>
<p class="data-source">数据来源:恒生聚源财务报表数据库 <a href="#fn3" class="citation">[3]</a></p>
<!-- 文末数据源清单(必须放在 #sources 容器内) -->
<div id="sources" class="sources">
<h2>📋 数据来源</h2>
<table>
<thead>
<tr><th>角标</th><th>数据类型</th><th>工具名称</th><th>更新时间</th></tr>
</thead>
<tbody>
<tr id="fn1" class="source-row">
<td>[1]</td>
<td>行业分类</td>
<td>HKStockBelongConcept</td>
<td>2026-04-21</td>
</tr>
<tr id="fn2" class="source-row">
<td>[2]</td>
<td>公司基本信息</td>
<td>HKCompanyBasicInfo</td>
<td>最新财报</td>
</tr>
<tr id="fn3" class="source-row">
<td>[3]</td>
<td>财务数据</td>
<td>HKFinancialStatement</td>
<td>2025 年年报</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
检查清单:
- ✅ 所有角标都使用
<a href="#fnX" class="citation">[X]</a>格式 - ✅ 文末数据源清单每个条目有对应的
id="fnX" - ✅ CSS 中包含
html { scroll-behavior: smooth; } - ✅ 角标有悬停样式(
:hover) - ✅ 数据源清单放在
<div id="sources">容器内
4. 检查清单
生成报告前必须确认:
- ✅ 每个数据表格下方都有数据来源标注
- ✅ 文末有完整的数据源清单表单
- ✅ 角标编号与数据源清单一一对应
- ✅ HTML 版本中角标可点击跳转
- ✅ 所有调用的 MCP 工具都在数据源清单中列出
标准输出结构
# 【股票同业对比分析报告】{目标股票名称}({股票代码})
**报告生成时间:** {YYYY-MM-DD HH:mm}
**数据更新时间:** {YYYY-MM-DD HH:mm}
**所属行业:** {行业名称} | **所属概念:** {概念名称}
---
## 核心摘要
{150-250 字摘要,包含:}
- 行业定位(1 句)
- 综合排名(1 句)
- 核心优势(2-3 点)
- 主要关注点(1-2 点)
---
## 一、同业识别
| 项目 | 内容 |
|------|------|
| 目标公司 | {公司名称}({股票代码}) |
| 所属行业 | {行业名称} |
| 行业代码 | {行业代码} |
| 所属概念 | {概念 1}、{概念 2}、{概念 3} |
| 同业筛选标准 | {筛选逻辑} |
**同业公司列表({N}家):**
1. {公司 1}({代码})- {简要说明}
2. {公司 2}({代码})- {简要说明}
...
---
## 二、基本信息对比
| 公司 | 股票代码 | 市值 (亿元) | 总股本 (亿股) | 流通股本 (亿股) | 上市时间 | 员工人数 | 主营业务 |
|------|----------|-------------|---------------|-----------------|----------|----------|----------|
| {公司 1} | {代码} | {数据} | {数据} | {数据} | {日期} | {数据} | {业务} |
> 数据来源:恒生聚源公司基本信息数据库 [2],截至 {日期}
---
## 三、财务数据(近 3 年)
**数据说明:** 展示各公司近 3 年核心财务指标,反映长期经营趋势
**币种说明(强制):**
- 必须从 MCP 返回数据中读取 `币种` 字段,表头标注对应币种
- A 股公司:通常为人民币(亿元)
- 港股公司:可能为美元、港元或人民币,以实际返回为准
- 如同业公司涉及不同币种,分别标注或统一说明
### 3.1 营业收入对比
| 公司 | 2023 年 ({币种单位}) | 2024 年 ({币种单位}) | 2025 年 ({币种单位}) | 3 年 CAGR(%) |
|------|---------------|---------------|---------------|-------------|
| {公司 1} | {数据} | {数据} | {数据} | {数据} |
| {公司 2} | {数据} | {数据} | {数据} | {数据} |
> 数据来源:恒生聚源财务报表数据库 [3],各年年报
> **币种说明**:{如"所有公司均为人民币"或"再鼎医药为美元,其他公司为人民币"等}
### 3.2 归母净利润对比
| 公司 | 2023 年 ({币种单位}) | 2024 年 ({币种单位}) | 2025 年 ({币种单位}) | 3 年 CAGR(%) |
|------|---------------|---------------|---------------|-------------|
| {公司 1} | {数据} | {数据} | {数据} | {数据} |
| {公司 2} | {数据} | {数据} | {数据} | {数据} |
> 数据来源:恒生聚源财务报表数据库 [3],各年年报
> **币种说明**:{如"所有公司均为人民币"或"再鼎医药为美元,其他公司为人民币"等}
### 3.3 毛利率对比
| 公司 | 2023 年 (%) | 2024 年 (%) | 2025 年 (%) | 趋势 |
|------|------------|------------|------------|------|
| {公司 1} | {数据} | {数据} | {数据} | ↑/↓/→ |
| {公司 2} | {数据} | {数据} | {数据} | ↑/↓/→ |
> 数据来源:恒生聚源财务报表数据库 [3],各年年报
### 3.4 净利率对比
| 公司 | 2023 年 (%) | 2024 年 (%) | 2025 年 (%) | 趋势 |
|------|------------|------------|------------|------|
| {公司 1} | {数据} | {数据} | {数据} | ↑/↓/→ |
| {公司 2} | {数据} | {数据} | {数据} | ↑/↓/→ |
> 数据来源:恒生聚源财务报表数据库 [3],各年年报
### 3.5 ROE 对比
| 公司 | 2023 年 (%) | 2024 年 (%) | 2025 年 (%) | 趋势 |
|------|------------|------------|------------|------|
| {公司 1} | {数据} | {数据} | {数据} | ↑/↓/→ |
| {公司 2} | {数据} | {数据} | {数据} | ↑/↓/→ |
> 数据来源:恒生聚源财务报表数据库 [3],各年年报
---
## 四、财务指标对比
**报告期:** {最新财报期间}
**币种说明:** 表头单位必须与 MCP 返回数据的 `币种` 字段一致
| 公司 | 营收 ({币种单位}) | 同比 (%) | 归母净利润 ({币种单位}) | 同比 (%) | 毛利率 (%) | 净利率 (%) | ROE(%) |
|------|-------------|----------|-------------------|----------|------------|------------|--------|
| {公司 1} | {数据} | {数据} | {数据} | {数据} | {数据} | {数据} | {数据} |
> 数据来源:恒生聚源财务报表数据库 [3],{报告期}
> **币种说明**:{如"所有公司均为人民币"或"再鼎医药为美元,其他公司为人民币"等}
---
## 五、估值水平对比
**数据截至:** {日期}
| 公司 | PE(TTM) | PB | PS(TTM) | PEG | 股息率 (%) |
|------|---------|----|---------|----|------------|
| {公司 1} | {数据} | {数据} | {数据} | {数据} | {数据} |
> 数据来源:恒生聚源估值分析数据库 [4],截至 {日期} 收盘价
{ECharts 估值对比柱状图}
---
## 六、市场表现对比
**数据截至:** {日期} {时间}
| 公司 | 收盘价 (元) | 涨跌幅 (%) | 振幅 (%) | 成交量 (万手) | 成交额 (亿元) | 换手率 (%) |
|------|-------------|------------|----------|---------------|---------------|------------|
| {公司 1} | {数据} | {数据} | {数据} | {数据} | {数据} | {数据} |
> 数据来源:恒生聚源行情数据库 [5],{日期} {时间} 实时
---
## 七、资金流向对比
**统计期间:** {当日/近 N 日}
| 公司 | 主力净额 (万元) | 连续流入天数 | 超大单净额 (万元) | 大单净额 (万元) | 散户净额 (万元) |
|------|-----------------|--------------|-------------------|-----------------|-----------------|
| {公司 1} | {数据} | {数据} | {数据} | {数据} | {数据} |
> 数据来源:恒生聚源资金流数据库 [6],{日期} {时间} 实时
---
## 八、机构态度对比
**统计期间:** 截至 {日期}
| 公司 | 买入 | 增持 | 中性 | 减持 | 卖出 | 评级总数 | 买入占比 (%) | 机构数 |
|------|------|------|------|------|------|----------|--------------|--------|
| {公司 1} | {数据} | {数据} | {数据} | {数据} | {数据} | {数据} | {数据} | {数据} |
> 数据来源:恒生聚源研报数据库 [7],截至 {日期}
---
## 九、综合竞争力评分
**评分权重:** 财务指标 30% | 估值水平 20% | 市场表现 20% | 资金流向 15% | 机构态度 15%
| 排名 | 公司 | 综合得分 | 财务得分 | 估值得分 | 市场得分 | 资金得分 | 机构得分 | 评级 |
|------|------|----------|----------|----------|----------|----------|----------|------|
| 1 | {公司} | {得分} | {得分} | {得分} | {得分} | {得分} | {得分} | {S/A/B/C} |
> 数据来源:评分基于恒生聚源财务 [3]、估值 [4]、行情 [5]、资金流 [6]、机构评级 [7] 数据库综合计算
**评级说明:**
- S 级(90-100 分):行业绝对龙头,全方位领先
- A 级(80-89 分):行业优秀企业,多数维度领先
- B 级(70-79 分):行业中游,部分维度有亮点
- C 级(60-69 分):行业中下游,存在明显短板
{ECharts 综合评分雷达图}
---
## 十、结论与建议
### 相对优势
1. **{优势维度 1}:** {具体描述 + 数据支撑}
2. **{优势维度 2}:** {具体描述 + 数据支撑}
3. **{优势维度 3}:** {具体描述 + 数据支撑}
### 相对劣势
1. **{劣势维度 1}:** {具体描述 + 数据支撑}
2. **{劣势维度 2}:** {具体描述 + 数据支撑}
### 综合判断
{200-300 字综合分析,包括:}
- 行业地位判断
- 核心竞争力评价
- 估值合理性分析
- 短期/中长期展望
### 关注要点
- {要点 1}
- {要点 2}
- {要点 3}
---
## 数据来源
### 数据源清单
| 角标 | 数据类型 | MCP 服务 | 工具名称 | 查询时间 | 数据更新时间 |
|------|----------|----------|----------|----------|--------------|
| [1] | 行业分类 | jy-financedata-api | StockBelongIndustry | {时间} | {时间} |
| [1] | 概念分类 | jy-financedata-api | StockBelongConcept | {时间} | {时间} |
| [2] | 公司基本信息 | jy-financedata-api | CompanyBasicInfo | {时间} | 最新财报 |
| [3] | 财务数据 | jy-financedata-api | FinancialStatement | {时间} | {报告期} |
| [4] | 估值数据 | jy-financedata-api | StockValueAnalysis | {时间} | {日期} |
| [5] | 行情数据 | jy-financedata-api | AShareLiveQuote | {时间} | 实时 |
| [6] | 资金流向 | jy-financedata-api | RealStockFundFlow | {时间} | 实时 |
| [7] | 机构评级 | jy-financedata-api | InstitutionalRating | {时间} | {日期} |
**数据说明:**
- 所有数据均来自恒生聚源 MCP 金融数据库,无第三方数据源
- 财务数据来自公司定期报告,估值数据基于最新财报计算
- 行情数据为交易时段实时数据(9:30-11:30, 13:00-15:00),非交易时段为最新收盘价
- 资金流向数据每 3 秒刷新一次
- 机构评级数据每日更新
### 数据时效性说明
| 数据类型 | 更新频率 | 延迟说明 |
|----------|----------|----------|
| 行情数据 | 实时 | 交易时段无延迟,非交易时段为收盘价 |
| 资金流向 | 实时 | 每 3 秒刷新 |
| 估值数据 | T+1 | 每个交易日早 6:00 更新 |
| 财务数据 | 季报/年报 | 财报披露后 1-2 个工作日 |
| 机构评级 | 每日 | 研报发布后 1 个工作日内 |
---
**免责声明(标准版本 - 强制):** 本报告所生成、展示或输出的内容(包括但不限于文本、数据、分析结果等),部分来源于恒生聚源 MCP 金融数据库。本服务仅对数据源进行自动化调用、处理与呈现,不构成任何投资决策或其他决策的建议或者承诺,投资者不应以本服务取代其独立判断或仅根据本服务做出决策。数据源本身可能存在不准确、不完整、过时、错误或缺失等情况。由于数据源提供方的限制、技术传输偏差、自然语言歧义或其他客观原因,本服务对所生成、展示或输出内容的真实性、准确性或完整性不做任何保证。本服务的服务提供方及其关联公司不对任何机构或个人因参照本服务所生成、展示或输出内容进行投资、决策而产生的任何后果承担任何责任。市场有风险,投资需谨慎。
**注意:** 必须使用上述标准免责声明,不得修改或简化。禁止使用"第三方数据源、公开信息"等非标准表述。
行文风格
| 要求 | 说明 | |------|------| | 字数控制 | 控制在 8000 字以内,但不能太过简短,需要形成完整的分析段落 | | 论点论据 | 论点、论据完整清晰,每个结论都有数据支撑 | | 客观中立 | 不夸大、不贬低,客观呈现数据事实 | | 专业术语 | 使用行业标准术语,必要时简单解释 | | 风险提示 | 必须包含免责声明和风险提示 |
限制与注意事项
数据时效性
| 数据类型 | 更新频率 | 延迟说明 | |----------|----------|----------| | 行情数据 | 实时 | 交易时段无延迟,非交易时段为收盘价 | | 财务数据 | 季报/年报 | 财报披露后 1-2 个工作日 | | 估值数据 | T+1 | 每个交易日早 6:00 更新 | | 资金流向 | 实时 | 每 3 秒刷新 | | 机构评级 | 每日 | 研报发布后 1 个工作日内 |
覆盖范围
- A 股: 覆盖全部沪深两市上市公司
- 港股: 覆盖全部港交所主板上市公司
- 注意: 部分新股/次新股可能数据不完整
合规边界
- ✅ 明确标注"仅供参考,不构成投资建议"
- ✅ 不承诺收益、不推荐具体买卖点
- ✅ 风险提示必须醒目
- ✅ 数据来源可追溯
API 限制
- 遵循聚源 MCP 服务 rate limit
- 建议并发调用时控制并发数在 10 以内
- 单个工具调用超时 30 秒则跳过,不影响整体流程
资源清单
~/openclaw-skills/jy-stock-peer-comparison/
├── SKILL.md # 技能主文档(本文件)
├── README.md # 使用说明
└── references/
└── output-template.md # 输出格式模板(含 HTML 完整代码)
快速开始示例
# 1. 检查环境
mcporter --version
mcporter list
# 2. 调用示例:获取贵州茅台行业分类
mcporter call jy-financedata-api.StockBelongIndustry query="贵州茅台"
# 3. 调用示例:获取白酒行业成分股
mcporter call jy-financedata-api.IndustryConstituentStocks query="白酒行业"
# 4. 调用示例:获取贵州茅台估值分析
mcporter call jy-financedata-api.StockValueAnalysis query="贵州茅台 估值分析"
微信扫一扫