Skills stock-watchlist
Query real-time stock prices, basic quote fields, and manage a Markdown watchlist for A-share, Hong Kong, and US stocks. Use when users ask in Chinese or by ticker/code to search stocks, inspect current price and quote basics, or maintain a watchlist stored in a Markdown file.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/0xhyperdan/stock-watchlist" ~/.claude/skills/openclaw-skills-stock-watchlist && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/0xhyperdan/stock-watchlist" ~/.openclaw/skills/openclaw-skills-stock-watchlist && rm -rf "$T"
manifest:
skills/0xhyperdan/stock-watchlist/SKILL.mdsource content
stock-watchlist
概览
这个 Skill 用于处理三类任务:
- 按中文名、代码或带市场前缀的符号查询股票。
- 返回实时价格和常用基础字段,例如涨跌幅、开高低、昨收、市值、PE、PB、换手率。
- 用 Markdown 文档维护自选列表,并按持仓成本和数量汇总盈亏。
当前脚本使用公开可访问的东财搜索与行情接口。这样可以稳定支持“中文名检索 + 实时行情”,避免当前公开雪球搜索接口的风控限制。
工作流
1. 单只或多只股票查询
优先调用
scripts/stock_watchlist.py quote ...。
支持这些输入形态:
- 中文名,例如
、贵州茅台
。腾讯 - 裸代码,例如
、600519
、00700
。TSLA - 带前缀代码,例如
、SH600519
、SZ000001
。HK00700
示例:
python scripts/stock_watchlist.py quote 贵州茅台 HK00700 TSLA
脚本输出 JSON。读取结果后,用中文向用户总结最重要的字段,不要把整段 JSON 原样抄回去,除非用户明确要求。
2. 遇到简称或歧义先搜索
对短中文名或明显存在歧义的输入,先调用
search 再决定是否直接报价。
典型例子:
可能扩散到腾讯
、腾讯控股
、相关指数或板块。腾讯音乐
可能对应银行、保险、ETF 或指数。平安
示例:
python scripts/stock_watchlist.py search 腾讯
处理规则:
- 如果第一候选明显符合用户意图,可以直接继续
。quote - 如果前几项都合理,先把前 3 个候选简要列给用户,再继续。
3. 用 Markdown 管理自选列表
先初始化 Markdown 模板:
python scripts/stock_watchlist.py watchlist init --file ./watchlist.md
模板位于 assets/watchlist-template.md。
Markdown 文档必须保留这两个标记:
<!-- stock-watchlist:start --><!-- stock-watchlist:end -->
脚本只会回写标记之间的表格,其它正文会保留。
4. 自选列表维护动作
新增或更新一行:
python scripts/stock_watchlist.py watchlist add \ --file ./watchlist.md \ --query 贵州茅台 \ --cost-price 1395 \ --quantity 100 \ --note core
删除一行:
python scripts/stock_watchlist.py watchlist remove \ --file ./watchlist.md \ --query SH600519
把手工编辑过的
query 统一解析成规范符号:
python scripts/stock_watchlist.py watchlist sync --file ./watchlist.md
查询整个自选列表并计算汇总:
python scripts/stock_watchlist.py watchlist quote --file ./watchlist.md
Watchlist 约束
表格必须包含这些列:
querysymbolquote_idnamecost_pricequantitynote
字段含义:
:原始查询词,适合手工维护,例如中文名或代码。query
:规范代码,例如symbol
、SH600519
、HK00700
。TSLA
:行情接口使用的内部标识,保留后可以减少再次搜索。quote_id
:可选,留空则不计算该行盈亏。cost_price
:可选,留空则不计算该行盈亏。quantity
建议:
- 手工改完
后执行一次query
。watchlist sync - 不要删除表头,也不要删掉标记行。
- 如果只想保留观察列表,不关心成本,可以只维护
。query/symbol/quote_id/name/note
安全边界
- 仅把 watchlist 放在当前工作目录内的 Markdown 文件中,例如
。./watchlist.md - 不要把
指向系统目录、隐藏配置目录或无关文档。--file - 如确实需要在工作目录外使用,先显式设置
,只加入你确认安全的目录。STOCK_WATCHLIST_ALLOWED_ROOTS
仅用于覆盖已有的 watchlist 文件,不要把它用于普通 Markdown 文档。watchlist init --force
输出要求
脚本返回 JSON 后,按场景组织最终回答:
- 单只股票:优先总结
。name/symbol/current_price/change_percent/open_price/high_price/low_price/previous_close/total_market_cap/pe_ttm/pb - 多只股票:按股票分组,避免混成一段。
- 自选列表:先给组合汇总,再列重点持仓。
如果用户明确要“基本信息”,默认至少包含:
- 当前价
- 涨跌额
- 涨跌幅
- 今开
- 最高
- 最低
- 昨收
- 总市值
- PE(TTM)
- PB
资源
- 主脚本:scripts/stock_watchlist.py
- Markdown 模板:assets/watchlist-template.md