Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Fund Analyzer Pro

v2.1.3

[何时使用]当用户需要基金深度分析时;当用户说"分析这个基金""基金对比""基金诊断""基金经理分析"时;当检测到基金代码/基金名称/投顾策略时触发。整合天天基金 API+ 且慢 MCP,提供单一基金分析/基金比较/基金诊断/持仓诊断/基金经理/机会分析/投资方式/报告信号八大模块。新增信号监控提醒功能(sign...

0· 167·2 current·2 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for lj22503/fund-analyzer-pro.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Fund Analyzer Pro" (lj22503/fund-analyzer-pro) from ClawHub.
Skill page: https://clawhub.ai/lj22503/fund-analyzer-pro
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install fund-analyzer-pro

ClawHub CLI

Package manager switcher

npx clawhub@latest install fund-analyzer-pro
Security Scan
Capability signals
Requires sensitive credentials
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The name/description and SKILL.md describe a fund analysis skill that legitimately needs market-data APIs and optional user Excel imports. However the published metadata claims no required environment variables/credentials while the docs and code clearly expect TTFUND API keys, a qieman MCP x-api-key, and an encryption key (FUND_HOLDINGS_KEY). That mismatch between declared requirements and actual needs is incoherent and risks surprising credential requests at runtime.
!
Instruction Scope
SKILL.md and scripts instruct the agent to call external APIs (天天基金, 且慢 MCP, 东方财富/Sina fallback), parse/upload local Excel files, encrypt and persist user holdings under ~/.openclaw/workspace, and run a signal checker that can push alerts (mentions 飞书). These behaviors are in-scope for a fund analyzer but the instructions reference local config paths, undocumented outgoing endpoints and environment vars not declared in the registry metadata. SKILL.md also contained a pre-scan flag for unicode-control-chars (possible obfuscation).
!
Install Mechanism
The skill has no declared install spec (instruction-only metadata) yet includes multiple Python scripts that import external libraries (e.g., cryptography.Fernet) and reference other modules (data_layer, akshare). There is no declared dependency list or install steps in the registry metadata; that means installing/running may fail or pull packages unexpectedly. The lack of an install/dependency manifest is disproportionate to the expected complexity.
!
Credentials
Although registry metadata lists no required env vars, the repository and docs repeatedly reference TTFUND_APIKEY, a qieman MCP x-api-key, and a FUND_HOLDINGS_KEY (encryption). The encrypt-holdings script will generate and print a new encryption key to stdout and save it to a file if FUND_HOLDINGS_KEY is missing — printing secrets and writing keys to predictable files is a security concern. The requested credentials themselves are proportional to the stated purpose, but the skill fails to declare them and mishandles key material.
!
Persistence & Privilege
The skill persists user data under ~/.openclaw/workspace/data/fund-holdings and writes a key file under ~/.openclaw/workspace/.fund_holdings_key by default. fund_analyzer_pro.py hardcodes a workspace_dir (/home/admin/.openclaw/workspace) and inserts it onto sys.path — this could allow the skill to import or access other workspace modules/files. The skill also includes a signal checker that can push notifications (external network calls). None of these persistence/network behaviors are declared in the registry metadata, increasing the risk of unintended access or data exposure.
Scan Findings in Context
[unicode-control-chars] unexpected: The SKILL.md contained unicode control characters flagged by the pre-scan; these are not needed for a documentation-driven skill and can indicate attempted obfuscation or hidden content. Even if benign, they warrant manual review of the SKILL.md for hidden/invisible instructions.
What to consider before installing
What to check before installing: 1) Metadata vs reality: The registry entry lists no required env vars, but the code and SKILL.md require TTFUND_APIKEY, a qieman MCP x-api-key, and an encryption key (FUND_HOLDINGS_KEY). Do not provide credentials until the author updates the metadata and explains exactly what is needed and why. 2) Secrets handling: The encrypt-holdings script will generate and print an encryption key and write it to a predictable file if FUND_HOLDINGS_KEY is not set. Printing keys to stdout and writing them to predictable locations is risky — ask the maintainer to remove key-printing and to use secure key storage, and to document file permissions and deletion procedures. 3) Outbound endpoints and notification channels: The skill mentions signal push (飞书) and uses MCP/ttfund APIs. Request a clear list of outbound endpoints the skill will call and verify there are no hard-coded secrets in source files (review signal_checker.py and other scripts for webhook URLs or hardcoded tokens). 4) Dependency & install transparency: There is no install spec or dependency manifest despite multiple Python scripts requiring external packages (cryptography, requests, possibly akshare). Ask for a requirements.txt or install instructions and inspect dependency versions before running. 5) Scope of local access: The code writes and reads files under ~/.openclaw/workspace and inserts a hardcoded /home/admin/.openclaw/workspace into sys.path. Confirm where data is stored, file permissions, and whether the skill may import or read other workspace modules; consider running in an isolated environment (container) until satisfied. 6) Prompt-injection and docs hygiene: The SKILL.md contained control characters flagged by the scanner. Ask for a cleaned SKILL.md and re-run a manual review for hidden text or instructions. 7) Testing: Run the skill in a sandbox with test (non-production) API keys and no real user data. Verify encryption behavior, that keys are not leaked in logs, and that external calls are restricted to expected domains. If the author cannot correct the metadata, provide an explicit dependency list, stop printing keys, and enumerate outbound endpoints, treat the skill as untrusted and run it only in a tightly isolated environment.

Like a lobster shell, security has layers — review code before you run it.

latestvk97c2d51vt8kxp3qec0wjt8m9h85payr
167downloads
0stars
7versions
Updated 15h ago
v2.1.3
MIT-0

Fund-Analyzer-Pro 基金分析专家 🎯

基于「持仓诊断框架」+「基金经理评估」+「费用分析」的完整基金分析系统

版本: v2.1.3
最后更新: 2026-04-28


📋 功能描述

帮助用户系统化分析基金/投顾策略,从单一基金到组合对比,从持仓诊断到经理评估。

核心洞察

基金分析的本质不是看业绩排名,而是看:

  1. 基金 Beta 部分(持仓投向的赛道和股票)
  2. 基金经理 Alpha(超额收益来源)
  3. 费用损耗(管理费 + 托管费 + 申购赎回费)
  4. 风格一致性(说的和做的是否一致)

八大分析模块

模块功能实现状态
① 单一基金分析基础信息/业绩/风险/费率/持仓/经理
② 基金对比2-5 只基金全方位对比
③ 基金诊断风格/持仓/业绩/风险四维诊断
④ 持仓诊断Beta 分析/重合度检测/底层资产穿透
⑤ 基金经理5 大维度评估体系
⑥ 机会分析赛道 + 业绩 + 经理三维筛选
⑦ 投资方式配置建议 + 费用优化
⑧ 报告信号季报/经理变更/规模变化等信号

🎯 模块详解

模块 1:单一基金分析

输入:基金代码(如 000001)或基金名称

分析维度

  1. 基本信息:基金公司/类型/规模/成立时间
  2. 业绩表现:近 1 月/3 月/1 年/3 年/5 年收益率
  3. 风险评估:夏普比率/最大回撤/波动率/贝塔系数
  4. 费率结构:管理费/托管费/申购费/赎回费
  5. 持仓分析:前十大重仓股/行业分布/债券配置
  6. 同类对比:同类排名/百分位

模块 2:基金对比

输入:2-5 只基金代码

对比维度:业绩/风险/费率/持仓/经理

输出:对比表格 + 雷达图 + 推荐建议

模块 3:基金诊断

输入:基金代码 + 用户持仓信息(可选)

诊断框架(增强版):

  • 【诊断 1:规模风险】规模过小/偏小/适中(20 分)
  • 【诊断 2:业绩风险】多周期检查(近 1 年/3 年/5 年)(40 分)
  • 【诊断 3:排名趋势】排名下滑/持续靠后(20 分)
  • 【诊断 4:集中度风险】持仓集中度(10 分)
  • 【诊断 5:风险等级】基金类型 + 业绩波动(10 分)
  • 【诊断 6:费率完整性】申购/赎回费未知(-5 分)

健康等级

  • 健康(≥80 分)
  • 良好(60-79 分)
  • 一般(40-59 分)
  • 较差(<40 分)

模块 4:持仓诊断(核心)⭐

输入:用户持仓 Excel(基金 e 账户导出)或 基金代码

诊断框架

① 基金 Beta 分析

  • 行业暴露:[超配/低配哪些行业]
  • 风格暴露:[价值/成长偏向]
  • 市值暴露:[大/中/小盘偏向]
  • 因子暴露:[动量/质量/低波等]

② 持仓重合度检测

  • 重仓股重合度:[X%]
  • 行业重合度:[X%]
  • 问题:[是否过于集中]

③ 底层资产穿透

  • 最终持仓股票数:[去重后]
  • 行业分布:[最终分布]
  • 个股集中度:[TOP10 占比]

数据源

  • 且慢 MCP:BatchGetStrategiesComposition(持仓明细)
  • 天天基金:重仓股数据

模块 5:基金经理分析

输入:基金经理姓名或基金代码

分析维度

  • 基本信息:从业年限/管理基金数/管理规模/代表作品
  • 历史业绩:管理的所有基金业绩/任职回报 vs 基准
  • 投资风格:风格标签/换手率/集中度/能力圈
  • 言行一致性:季报/年报观点 vs 实际持仓
  • 稳定性评估:任职稳定性/管理规模变化/离任预警

模块 6:机会分析

输入:赛道/行业/主题

分析框架

  • 赛道分析:定义/市场规模/增速/竞争格局
  • 基金筛选:该赛道基金数量/规模 TOP5/业绩 TOP5/费率最低 TOP5
  • 基金经理:深耕该赛道的经理/代表作/历史业绩
  • 投资建议:优先选择/适度配置/暂时回避

模块 7:投资方式建议

输入:用户投资目标/风险偏好/投资期限

输出

  • 投资目标:保值/增值/高增长
  • 配置建议:货币基金/债券基金/股票基金/QDII 比例
  • 投资方式:一次性买入/定投/智能定投
  • 费用优化:A/C 类选择/申购费折扣/赎回费优化

模块 8:报告信号

触发条件

  • 基金季报/年报发布
  • 基金经理变更
  • 基金规模大幅变化
  • 基金业绩异常波动
  • 基金风格漂移

报告内容

  • 信号类型:[季报/经理变更/规模变化/业绩异常/风格漂移]
  • 涉及基金:[具体基金]
  • 信号内容:[具体信号描述]
  • 影响评估:[对业绩/风险的影响]
  • 建议操作:[持有/加仓/减仓/卖出]

🔄 使用流程

流程 1:单一基金分析

用户提供基金代码
  ↓
调用天天基金 API 获取基础数据
  ↓
调用且慢 MCP 获取持仓明细
  ↓
执行八大模块分析
  ↓
生成完整报告

流程 2:基金对比

用户提供 2-5 只基金代码
  ↓
分别获取各基金数据
  ↓
对比分析(业绩/风险/费率/持仓/经理)
  ↓
生成对比报告 + 推荐建议

流程 3:持仓诊断(用户持仓)

用户上传持仓 Excel(基金 e 账户导出)
  ↓
解析持仓数据
  ↓
穿透底层资产(且慢 MCP)
  ↓
检测持仓重合度
  ↓
分析 Beta 暴露
  ↓
生成诊断报告 + 优化建议

📊 数据源整合

天天基金 API(ttfund-skills)

配置

{
  "api_key": "ttf_sk_live_xxx",
  "limit": 50 次/天
}

功能

  • ✅ 基金基础信息
  • ✅ 净值/收益率
  • ✅ 风险评估(夏普比率、最大回撤等)
  • ✅ 持仓数据
  • ✅ 基金经理

数据准确性:✅ 99%+(官方数据源)

且慢 MCP(qieman-mcp)

配置

{
  "url": "https://stargate.yingmi.com/mcp/v2",
  "headers": {
    "x-api-key": "xxx"
  }
}

核心工具

  • StrategySearchByKeyword - 搜索全市场投顾策略
  • GetStrategyDetails - 获取策略详情
  • BatchGetStrategiesComposition - 获取持仓明细
  • GetStrategyRiskInfo - 获取风险信息
  • getFundCampisiIndicator - 债券收益归因
  • getFundBrinsonIndicator - 股票收益归因

数据准确性:✅ 99%+(官方数据源)

免费 API(降级方案)

东方财富

  • 接口:https://fund.eastmoney.com/{fund_code}.html
  • 数据:净值、收益率、持仓
  • 准确性:✅ 95%+

新浪财经

  • 接口:http://hq.sinajs.cn/list=fu_{fund_code}
  • 数据:实时净值
  • 准确性:✅ 90%+

基金 e 账户(Excel 导入)

用途:用户持仓导入

步骤

  1. 访问 https://www.chinaclear.cn/
  2. 登录基金 e 账户
  3. 下载持仓明细(Excel)
  4. 上传到系统

数据准确性:✅ 100%(官方导出)


⚠️ 数据不可用处理

场景 1:API Key 未配置

⚠️ 天天基金 API 未配置 API Key

**可用替代方案**:
1. 免费 API(东方财富/新浪财经)- 基础数据可用
2. 手动输入 - 用户提供基金代码
3. 配置 API Key - 参考《数据源配置指南.md》

**影响**:
- 夏普比率、最大回撤等风险指标无法获取
- 基础数据(净值、收益率、持仓)可用免费 API

场景 2:基金代码不存在

⚠️ 基金代码 XXXXXX 不存在

**可能原因**:
1. 基金代码输入错误
2. 基金已清盘

**建议**:
- 检查基金代码是否正确(6 位数字)
- 或在天天基金网查询:https://fund.eastmoney.com/

场景 3:数据过期

⚠️ 数据可能已过期(最后更新:YYYY-MM-DD)

**建议**:
- 刷新数据:重新调用 API
- 或访问天天基金网获取最新数据

场景 4:用户数据估算

⚠️ 部分数据为估算值

**估算数据**:
- 持仓成本价(如用户未提供)
- 回本所需涨幅

**建议**:
- 用户提供真实数据,分析更准确

📚 相关文档

  • references/data-sources-guide.md - 数据源配置指南
  • examples/test-cases.md - 测试案例集
  • templates/fund-report-template.md - 报告模板

⚠️ 生成规则

数据准确性

  1. 基于真实数据,不编造
  2. 数据标注来源和时间
  3. 数据不可用时明确告知
    ⚠️ 部分数据无法获取(需要 API Key)
    
    **可用替代方案**:
    1. 免费 API(东方财富/新浪财经)- 基础数据可用
    2. 手动输入 - 用户提供基金代码/成本价
    3. 配置 API Key - 参考《数据源配置指南.md》
    
    **影响**:
    - 夏普比率、最大回撤等风险指标无法获取
    - 基础数据(净值、收益率、持仓)可用免费 API
    

免责声明

  1. 免责声明:每份报告必须包含
    > ⚠️ 本文内容仅供参考,不构成任何投资建议。市场有风险,投资需谨慎。
    

用户授权

  1. 禁止推荐:除非用户明确授权
    • 可以提供分析和对比
    • 不建议具体买卖操作
    • 除非用户明确要求"要不要买/卖"

透明度

  1. 费用透明:必须分析费率影响
  2. 估算数据标注:成本价等估算数据需说明
  3. 数据来源分级
    • S 级:基金公司官网(100% 准确)
    • A 级:东方财富/天天基金(95%+ 准确)
    • B 级:新浪财经/腾讯财经(90%+ 准确)
    • C 级:用户输入/估算(需验证)

风险提示

  1. 风险提示:必须包含风险评估
    • 行业集中风险
    • 持仓集中风险
    • 波动风险
    • 规模风险

📝 输出示例

示例 1:单一基金分析

@ant 分析易方达蓝筹精选 (000001)

→ 调用模块 1:单一基金分析
→ 输出完整分析报告

示例 2:基金对比

@ant 对比易方达蓝筹精选和兴全合润

→ 调用模块 2:基金对比
→ 输出对比报告 + 推荐建议

示例 3:持仓诊断

@ant 诊断我的基金持仓(上传 Excel)

→ 调用模块 4:持仓诊断
→ 穿透底层资产 + 重合度检测
→ 输出诊断报告 + 优化建议

🔗 相关资源

  • references/fund-fee-analysis.md - 基金费用分析框架
  • references/fund-manager-evaluation.md - 基金经理评估体系
  • templates/fund-report-template.md - 基金报告模板
  • examples/fund-diagnosis-case.md - 基金诊断案例

🚨 信号监控与提醒(v2.1.0 新增)

核心能力:被动监控基金重要信号,自动推送提醒

信号监控架构

watchlist.json(监控列表)
    ↓
signal_checker.py(信号检测引擎)
    ↓
去重 + 频率控制(SignalLog)
    ↓
飞书推送(FeishuNotifier)
    ↓
用户收到提醒 → 调用 fund-analyzer-pro 深度分析

监控列表管理

配置文件watchlist.json

CLI 命令

# 列出监控
python scripts/signal_checker.py --list

# 添加监控
python scripts/signal_checker.py --add 005827 易方达蓝筹精选
python scripts/signal_checker.py --add 163406 兴全合润 "季报,经理,波动"

# 移除监控
python scripts/signal_checker.py --remove 005827

watchlist.json 结构

{
  "watchlist": [
    {
      "code": "005827",
      "name": "易方达蓝筹精选混合",
      "signals": ["季报", "经理", "规模", "波动", "风格", "买入信号", "卖出信号"],
      "thresholds": {
        "波动阈值": 5,
        "规模变化阈值": 30,
        "买入信号阈值": 70,
        "卖出信号阈值": 30
      },
      "enabled": true
    }
  ],
  "settings": {
    "去重窗口": "24h",
    "免打扰时段": "22:00-08:00",
    "推送方式": "feishu",
    "摘要模式": "daily"
  }
}

信号检测引擎

脚本scripts/signal_checker.py

运行方式

# 检查所有基金
python scripts/signal_checker.py

# 检查指定基金
python scripts/signal_checker.py 005827

# 模拟运行(不推送)
python scripts/signal_checker.py --dry-run

# 生成每日摘要
python scripts/signal_checker.py --summary

五大信号 + 买卖信号

信号类型触发条件严重度监控频率
📊 季报发布季报/年报发布后 7 天内info每日
👤 经理变更基金经理变更high实时
📈 规模变化规模变化 > 阈值(默认 30%)medium每周
📉 业绩波动收益波动 > 阈值(默认 5%)medium实时
🎭 风格漂移重仓股重合度 < 60%high季报后
🟢 买入信号信号评分 ≥ 买入阈值info每日
🔴 卖出信号信号 = 卖出/观察high每日

去重与频率控制

SignalLog 机制

  • 信号日志:signal_log.json
  • 去重窗口:24 小时内同类型信号不重复推送
  • 自动清理:7 天前日志自动清除

免打扰时段

  • 默认:22:00-08:00
  • 免打扰时段内信号暂存,时段结束后推送

与 fund-signal-monitor 的关系

维度fund-analyzer-pro(内置)fund-signal-monitor(独立)
定位主动分析 + 内置监控纯被动监控
信号检测signal_checker.py文档描述
推送飞书推送待实现
建议✅ 使用内置版本可逐步迁移

📝 版本历史

版本日期更新内容
v2.1.32026-04-28修复风险等级计算逻辑 + 增强诊断维度(多周期业绩/排名趋势/费率完整性)
v2.1.02026-04-28P0 信号监控:watchlist + signal_checker + 飞书推送 + 模块 5-8 打通
v1.2.02026-04-16skill-evolve Round 2 完全收敛(10/10)
v1.1.12026-04-16Round 1 优化(对比报告)
v1.1.02026-04-16P0/P1/P2 全部改进
v1.0.02026-04-16初始版本(八大模块)

版本:v2.1.3
类型:核心🔴
数据源:天天基金 API + 且慢 MCP + 基金 e 账户


📊 评分总览

评估方法评分结论
v3.0 标准100/100核心技能🔴
skill-evolve R19.2/10可发布
skill-evolve R210/10完美
单元测试12/12 通过

📝 版本历史

版本日期更新内容
v2.1.02026-04-28P0 信号监控:watchlist + signal_checker + 飞书推送 + 模块 5-8 打通
v1.2.02026-04-16skill-evolve Round 2 完全收敛(10/10)
v1.1.12026-04-16Round 1 优化(对比报告)
v1.1.02026-04-16P0/P1/P2 全部改进
v1.0.02026-04-16初始版本(八大模块)

Comments

Loading comments...