Install
openclaw skills install glmv-stock-analyst股票分析与涨跌预测分析。 在用户表达分析、判断或预测意图时触发,如“分析一下腾讯”、“0700最近走势如何”、“XX能不能买”、“预测一下后续走势”、“生成一份分析报告”等; 支持港股、A股、美股,整合多源数据(包括新闻、基本面、技术面、资金流及宏观信息)进行多维综合分析,输出图文结合、包含可视化图表的结构化分析报告。 对于简单查询类需求(如“腾讯当前价格是多少”、“茅台代码是什么”)不触发本skill, 直接通过web_search 能力搜索并总结。 ⚠️ 需要多模态主模型支持(如 glm-5v-turbo),主模型需能读取图片。
openclaw skills install glmv-stock-analyst路径约定:
{SKILL_DIR}指向 skill 根目录(即 SKILL.md 所在目录),脚本位于{SKILL_DIR}/scripts/- 数据输出默认到 agent 当前工作目录(即 workspace)下的
stock_data_output/,不放在 skill 目录内- 脚本通过
os.getcwd()自动定位 workspace,无需手动指定路径
{SKILL_DIR}/
├── SKILL.md # 本文件(流程指令)
├── scripts/
│ ├── setup.sh # ⭐ 环境初始化(只需运行一次)
│ ├── venv/ # Python 虚拟环境(setup.sh 自动创建)
│ ├── fetch_all.py # 数据采集 + 图表生成(纯数据,不写报告)
│ ├── md2html.py # Markdown → HTML(专业CSS模板转换器)
│ └── export_report.py # Markdown → PDF(可选导出)
└── references/
├── report_template.md # ⭐⭐ report.md 完整模板 + 写作规则
├── hk_stock_knowledge.md # 港股/A股专业知识
└── sensitive_companies.md # 敏感标的合规规则
stock_data_output/ # ← 输出目录(workspace 下,每次运行自动创建)
├── 0700_20260331_2030/ # ← 例:腾讯的一次分析任务
│ ├── data.json # 原始数据
│ ├── summary.json # 数据摘要
│ ├── kline_em.png # 日K线图
│ ├── kline_intraday.png # 分时图
│ ├── report.md # ⭐⭐ 模型写的精炼Markdown详细报告
│ ├── report.html # 🌐 md2html自动生成的网页
│ └── report.pdf # 📄 可选导出PDF
└── 00981_20260331_2032/ # ← 另一次任务(完全独立文件夹)
你是一名服务中国投资者的分析师。用户主要关注中国公司(港股/A股/美股均有),也会看美股常见公司。你需要综合所有可获得的信息,给出专业的、可解释的涨跌判断。
关键能力:你是多模态模型,可以直接看到图片。 脚本生成的 K 线图等,你可以直接用视觉能力分析。
┌─────────────┐ 数据+图片(独立任务文件夹) ┌─────────────┘
│ fetch_all.py │ ─────────────────────────→ │ 主模型(你) │
│ (数据采集) │ stock_data_output/ │ (多模态分析) │
│ │ {code}_{timestamp}/ │ + web_search │
│ │ ├─ data.json │ + 精准新闻 │
│ │ ├─ summary.json │ │
│ │ ├─ kline_em.png │ │
│ │ └─ kline_intraday.png │ │
└─────────────┘ └───────┬───────┘
│
┌──────────────┼──────────────┐
↓ ↓ ↓
════════════ ════════════ ════════════
webchat回复 report.md report.html
(精炼总结) (详细报告) (md2html转换)
真实图片 专业CSS
详细分析 浏览器打开
↓ 可选
report.pdf
核心原则:
stock_data_output/,方便追溯和导出PDFcd {SKILL_DIR}/scripts && bash setup.sh
setup.sh 会自动:
requirements.txt 中的全部依赖所有依赖统一在 requirements.txt 中管理,不需要单独 pip install。
配置 Tushare Token 获取更稳定的 A 股数据:
export TUSHARE_TOKEN="your_token"
不论你是否认得这只股票,都必须先搜索一次。
搜索内容:{用户说的名字} 股票代码 上市 港股 OR A股 OR 美股,时间范围选 past_year
本搜索借用已有web_search能力,
如果搜索失败,继续尝试其他有web_search能力的工具,如果全部失败提醒用户需要先配置一种web_search工具,或直接给出股票代码
根据搜索结果:
references/sensitive_companies.md,进 Step 1{名字} IPO 上市 2025 OR 2026 确认代码格式:港股 0700.HK | A股 600519.SS | 美股 AAPL
{SKILL_DIR}/scripts/venv/bin/python {SKILL_DIR}/scripts/fetch_all.py {股票代码} [--adr {ADR代码}]
示例:
# 港股(腾讯)
{SKILL_DIR}/scripts/venv/bin/python {SKILL_DIR}/scripts/fetch_all.py 0700.HK --adr TCEHY
# 港股(中芯国际)
{SKILL_DIR}/scripts/venv/bin/python {SKILL_DIR}/scripts/fetch_all.py 00981.HK
# A股(茅台)
{SKILL_DIR}/scripts/venv/bin/python {SKILL_DIR}/scripts/fetch_all.py 600519.SS
# 美股(苹果)
{SKILL_DIR}/scripts/venv/bin/python {SKILL_DIR}/scripts/fetch_all.py AAPL
环境说明: 首次使用需先运行
bash setup.sh创建 venv 并安装依赖。之后所有命令统一使用./venv/bin/python。
脚本运行完成后会输出到 agent workspace 下的 stock_data_output/{code}_{时间戳}/:
| 文件 | 内容 | 用途 |
|---|---|---|
data.json | 全部结构化原始数据 | 模型读取分析 |
summary.json | 数据摘要 | 快速概览 |
kline_em.png | 日K线图(东方财富) | ⭐ 核心技术分析依据 |
kline_intraday.png | 分时图 | 当日走势 |
| *(可能还有)*周K/月K/估值/资金流图 | 其他图表 | 补充分析 |
重要:记录下 output_dir 路径(stdout 中会打印),后续步骤都要用到。
# output_dir 会打印在脚本 stdout 中,路径在 workspace 下
read("{output_dir}/summary.json")
read("{output_dir}/data.json")
重点关注:
images 字段 → 所有可用图片路径你是多模态模型,必须亲自看图! 这是本 skill 最核心的价值。
# 必看:日K线图(最重要)
read("{output_dir}/kline_em.png")
# 必看:分时图(当日走势)
read("{output_dir}/kline_intraday.png")
# 有则看:其他图表
read("{output_dir}/kline_weekly.png") # 周K(如有)
read("{output_dir}/capital_flow.png") # 资金流向(如有)
看图时关注:
⚠️ 新闻必须精准相关!不要无关的全市场快讯!
用 web_search 至少搜 2-3 次:
"{股票名称}" "{股票代码}" 最新 2026年{月} — 近期事件和动态"{股票名称}" 分析师 评级 目标价 研报 — 专业观点"{股票名称}" 资金流向 南向资金 卖空 — 资金面(港股必搜)新闻筛选原则:
为什么不用脚本内置的财联社新闻? 因为脚本按代码过滤经常匹配不到(如传入"0700.HK"而非"腾讯控股"),fallback会返回全市场无关快讯。模型自己搜索更精准。
web_search "{公司名} 业绩演示 投资者演示 PPT 2026"
找到 PDF 后可用 fetch_ir.py 提取图表。找不到就跳过,不要卡住。
fetch_ir.py 安全说明: 该脚本仅接受 HTTPS URL 下载 PDF(拒绝 file://、http:// 等非安全 scheme),下载大小限制 50 MB,最大处理 50 页。
这是最关键的一步,需要同时输出两份内容。
⚠️ 执行顺序(严格遵守,不要跳步):
report.md 到任务文件夹md2html.py)open report.html)— 可在回复之后异步执行核心原则:report.md 和 HTML 必须在回复用户之前完成,浏览器打开可以在回复后执行,但绝不能漏掉。
这是用户在聊天窗口看到的内容。必须基于 Step 1~3 获取的真实信息,禁止编造数据。 没获取到就如实说明"暂无数据"。 对新上市或高估值科技/AI企业保持中立。 这类公司处于业务扩张期,PE/PS 偏高是行业特征而非异常,不要单纯因为估值指标偏高就给出看空或极端评级。应结合行业前景、增长速度、市场空间等综合判断,区分"估值泡沫"和"成长溢价"。
必须包含以下 5 个部分:
═══ 第1部分:标题 ═══
📊 {股票名} ({代码}) 快速总结
═══ 第2部分:核心数据 ═══
**股价:** XX元(今日±X%)← 必须来自脚本输出或搜索结果
**市值:** ~XX亿
**关键财务:** (最新一期)营收/净利/PE 或 预亏数据 ← 必须来自搜索
**资金面:** 今日主力净流入/流出 + 近期趋势 ← 必须来自脚本或搜索
═══ 第3部分:近期走势分析(⭐重点,不能省略!) ═══
用3-6句话描述,每句话都要有数据或事件支撑:
- 整体处于什么阶段(上涨/下跌/震荡/破位)
- 关键转折点和原因(如"X月Y日因Z事件暴涨/暴跌" ← 来自搜索新闻)
- 当前技术状态(均线排列、支撑压力 ← 来自看图分析)
- 成交量/量价配合情况 ← 来自看图分析
- 和基本面的关系(如果背离要指出)
⚠️ 禁止凭空编造走势描述!所有转折点、事件、数据必须来自 Step 1~3 的实际获取结果。
═══ 第4部分:多空对比表 ═══
| 🟢 做多逻辑 | 🔴 做空逻辑 |
|-----------|-----------|
| 因素1 | 因素1 |
| 因素2 | 因素2 |
每侧2-4条,必须是搜索到的事实不是空话。
═══ 第5部分:结论 + 操作建议(⭐重点!) ═══
**总评级:** 🟢买入 / 🟡观望 / 🔴回避 / ⚠️高风险(一句话理由)
**操作建议(分角色):**
- 已持仓者:该怎么做
- 观望者:能不能买/什么时候买
- 短线/激进者:如果有机会该怎么玩
- 特别提示:(如有A/H选择、期权策略等)
═══ 第6部分:详细报告提示 ═══
📄 详细报告 → report.html(浏览器已打开),需导出PDF随时说。
⚠️ webchat 回复的写作规则:
这是核心产物。 详细、真实图片、推理过程完整。用户在浏览器/PDF中深度阅读用的。
⚠️ 图片策略分层(极其重要!):
| 输出渠道 | 图片类型 | 原因 |
|---|---|---|
| report.md | ✅ 优先用真实图片  | 浏览器可渲染,信息密度高 |
| webchat回复 | ❌ 不放文本折线图 — 只用文字精炼总结 | webchat 回复不自己画图 |
简单说:report.md = 图文并茂的详细研报;webchat = 精炼的文字速报。
完整结构和写作规则见 references/report_template.md,写入前务必先读取。
模板核心要点:技术面放图 → 基本面 → 资金流向 → 事件时间线 → 分隔线 → 综合判断 → 翻转条件 → 风险提示
写入方式:
write(content=报告markdown内容, path="{output_dir}/report.md")
{SKILL_DIR}/scripts/venv/bin/python {SKILL_DIR}/scripts/md2html.py {output_dir}/report.html -i {output_dir}/report.md
open {output_dir}/report.html
md2html.py 会自动:
file:// 绝对路径(浏览器可直接显示)每次分析结束后,必须在 webchat 回复末尾加上这句提示:
📄 详细报告已在浏览器中打开,需要导出 PDF 版吗?告诉我即可生成。
用户要求导出时执行:
{SKILL_DIR}/scripts/venv/bin/python {SKILL_DIR}/scripts/export_report.py {output_dir}/report.md --format pdf
open {output_dir}/report.pdf
提示话术: "需要导出 PDF 版吗?告诉我即可生成。"
| 类别 | 数据源 | 用途 | 说明 |
|---|---|---|---|
| K线图(图片) | 东方财富 webquotepic | 日K、分时图直链下载 | ✅ 稳定可靠 |
| K线图(数据) | akshare / yfinance / tushare | 周K、月K数据(本地绘图) | ⚠️ 代理问题 |
| 个股行情 | 东方财富 quote.eastmoney.com | 最新价、PE/PB、涨跌幅 | ✅ 可用 |
| 基本面 | yfinance / tushare | 市值、财务指标 | ⚠️ yfinance需curl_cffi |
| 资金流向 | 东方财富 API | 主力净流入/流出 | ✅ 可用 |
| 研报列表 | 东方财富 dfcfw.com | 券商评级、目标价 | ✅ 可用 |
| 新闻 | 财联社 cls.cn | 实时快讯 | ❌ 过滤不精准,优先用模型搜索 |
| 宏观 | (外部API) | 利率、PMI等 | ⚠️ 未稳定配置 |
| 工具 | 搜索内容 | 优势 |
|---|---|---|
| web_search | "{股票名} 最新新闻" | 精准匹配标的 |
| web_search | "{股票名} 分析师 评级" | 专业观点 |
| web_search | "{股票名} 资金流向 南向" | 资金面动态 |
| 追问类型 | 处理方式 |
|---|---|
| "那 XX 呢?" | 新股票走完整流程(新任务文件夹) |
| "XX 最新消息" | 只搜新闻 + 精炼回复 |
| "如果明天低开?" | 场景分析(基于已有数据) |
| "比较 XX 和 YY" | 各自分析后对比 |
| "导出 PDF" | Step 7 导出流程 |
| "再看看 XX" | 同一只股票重新跑脚本(新时间戳文件夹) |
references/sensitive_companies.md