安全扫描
OpenClaw
可疑
medium confidence该技能似乎使用 Tushare 实现了 A 股 DCF(与其描述一致),但声明的依赖与代码/说明实际所需存在不匹配,且至少有一个明显 bug——使用前请审查。
评估建议
该技能如其名:从 Tushare 拉取 A 股数据并运行 DCF。安装或运行前请注意:
(1) 必须提供 TUSHARE_TOKEN(注册元数据遗漏此项)——勿提供无关或更高级别的凭据。
(2) 先在本地审阅所含脚本(仅连接 Tushare,并将报告写入工作区)。
(3) 存在明显 bug:total_eq_val 在定义前被引用;请在受控环境(virtualenv/沙箱)中用非敏感 token 或测试账户验证。
(4) 使用独立工作区路径(OPENCLAW_WORKSPACE)并检查生成的报告。
(5) 若用于自动化代理,请确保 token 权限受限并监控网络活动;先修复代码 bug 再依赖生产输出。...详细分析 ▾
ℹ 用途与能力
名称/描述(A-share DCF)与代码及 SKILL.md 一致:均使用 Tushare API 及数值库获取财务数据并运行 DCF。但注册元数据未声明所需环境变量,而 SKILL.md 和脚本均需要 TUSHARE_TOKEN(可选 OPENCLAW_WORKSPACE)。该注册遗漏应予以修正。
ℹ 指令范围
SKILL.md 指示安装 tushare/pandas/numpy/scipy,导出 TUSHARE_TOKEN,并运行附带的脚本。说明和脚本仅访问 Tushare 和本地工作区路径(reports),不会读取无关的系统文件或 Tushare 以外的外部端点。一个潜在问题:脚本在估算股份/市值时尝试多种回退方案,其中一条代码路径在变量(total_eq_val)定义前就引用它,可能导致运行时错误,需修复。
✓ 安装机制
未提供安装规范(仅含说明),因此自动安装程序不会写入任何内容。依赖项为常见的 Python 包(tushare、pandas、numpy、scipy),按 README 通过 pip 安装,符合预期。
⚠ 凭证需求
脚本需要 TUSHARE_TOKEN 环境变量(敏感 API token)才能访问 Tushare 数据。问题在于 registry 元数据未列出任何必需环境变量,而 SKILL.md 和脚本却要求该变量并在缺失时退出——存在不一致。请确认仅提供 Tushare token(而非更广凭据),且勿使用带有无关高权限的 token。
✓ 持久化与权限
该技能不请求 always:true,不修改其他技能或系统级设置,仅在 workspace 路径下写入报告。默认允许自主调用(正常);未请求意外的持久权限。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/4/21
初始版本:两阶段FCFF DCF模型,动态WACC计算,三情景估值(保守/基准/乐观),敏感性分析矩阵,全面风险披露。支持全部A股上市公司,通过Tushare API自动获取财务数据。
● 无害
安装命令
点击复制官方npx clawhub@latest install a-share-dcf-valuation
镜像加速npx clawhub@latest install a-share-dcf-valuation --registry https://cn.longxiaskill.com
技能文档
---|------|----------|
| TUSHARE_TOKEN | Tushare API token(必填) | https://tushare.pro 注册后在用户中心获取 |
| OPENCLAW_WORKSPACE | 工作区根路径(可选) | 默认 ~/.openclaw/workspace |
Python依赖
| 包 | 版本 | 用途 | |----|------|------| |tushare | Latest | A股财务数据API |
| pandas | ≥1.0 | 数据处理 |
| numpy | ≥1.18 | 数值计算 |
| scipy | ≥1.4 | Beta回归(stats模块) | 配置步骤
- 配置Tushare Token:
bash
# 写入 ~/.bashrc 或 ~/.bash_profile
export TUSHARE_TOKEN="你的token"
source ~/.bashrc
` - 安装依赖:
`bash
pip install tushare pandas numpy scipy
` - 验证:
`bash
python3 -c "import tushare as ts; ts.set_token('$TUSHARE_TOKEN'); pro = ts.pro_api(); print(pro.stock_basic(ts_code='600519.SH'))"
` 故障排查
| 错误 | 原因 | 解决 |
|------|------|------|
| 未设置 TUSHARE_TOKEN 环境变量 | 未配置token | 在shell配置中export |
| Tushare API 获取失败 | token无效或网络问题 | 检查token与网络 |
| No module named 'tushare' | 未安装 | pip install tushare |
| Beta 回归数据不足 | 新股上市 | 使用行业默认Beta | 快速开始
`
用户输入:“对 贵州茅台 600519 做 DCF 估值”
→ 运行:python3 scripts/a_share_dcf.py 600519.SH
→ 报告保存至:reports/dcf_贵州茅台_YYYY-MM-DD.md
` 估值方法
模型:两阶段FCFF(企业自由现金流)折现
公式:
- FCFF = 经营活动现金流 - 资本支出
- WACC = We×Re + Wd×Rd×(1-T)
- 终值 = FCFF_n × (1+g) / (WACC - g)
- 股权价值 = EV - 净负债
- 每股价值 = 股权价值 / 总股本
三情景假设:
| 情景 | WACC | 增长率 | 永续增长 |
|------|------|--------|----------|
| 保守 | WACC+3%(最低14%) | 3年均值50% | 2% |
| 中性 | 计算WACC | 3年均值80% | 3% |
| 乐观 | WACC-3%(最低7%) | 3年均值100% | 4% |
情景逻辑
保守:高风险溢价,增长下调,适合风险厌恶者。
中性:用公司Beta与资本结构,最可能情形。
乐观:风险环境有利,上行空间,适合成长分析。 执行步骤
1. 股票代码格式
Tushare格式:XXXXXX.SH(沪)/XXXXXX.SZ(深)
`python
if code.startswith('6'): ts_code = f"{code}.SH"
elif code.startswith(('0','3')): ts_code = f"{code}.SZ"
` 2. 运行脚本
`bash
cd $OPENCLAW_WORKSPACE && python3 skills/a-share-dcf-valuation/scripts/a_share_dcf.py [公司名]
# 示例:python3 skills/a-share-dcf-valuation/scripts/a_share_dcf.py 600519.SH 贵州茅台
` 3. 检查输出
- 终端实时显示关键指标
报告保存至reports/dcf_{公司名}_{日期}.md- 确认含所有章节
4. 向用户汇报
先给结论,再给路径:
`
DCF 估值完成 — {公司名}
| 情景 | DCF每股价值 | vs 当前股价 |
|------|------------|------------|
| 保守 | ¥XX.XX | -XX.X% |
| 中性 | ¥XX.XX | -XX.X% |
| 乐观 | ¥XX.XX | -XX.X% |
当前股价: ¥XXX.XX
完整报告: reports/dcf_{公司名}_{日期}.md
` 重要提示
数据源
仅使用Tushare,需TUSHARE_TOKEN`;获取失败时告知用户,不伪造数据。
Beta计算
- 用约500交易日对沪深300(000300.SH)回归。
- R²<0.1或数据不足时,用行业默认Beta: