Stock Query

v2.6.0

查询全球股票实时行情(A 股、港股、美股)、ETF、场外基金、指数,支持批量查询、历史K线(含均线)与自选股管理。 TRIGGER when: 用户查询股价/行情/净值/历史K线/自选盈亏/大盘指数时。NOT for: 加密货币、期货、期权、外汇。

1· 719·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 asfamilybank/stock-query.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Stock Query" (asfamilybank/stock-query) from ClawHub.
Skill page: https://clawhub.ai/asfamilybank/stock-query
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 stock-query

ClawHub CLI

Package manager switcher

npx clawhub@latest install stock-query
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (stock quotes, history, watchlist) match the included files and declared requirements (curl, iconv, python3). The scripts fetch market data and format it; no unrelated credentials, binaries, or services are requested.
Instruction Scope
Runtime instructions require invoking included bash scripts which call curl/iconv and read/write a portfolio.csv. The skill explicitly documents the allowed remote hosts and prohibits storing secrets in portfolio.csv. One minor note: the file lookup falls back to several legacy skill install directories (~/.openclaw, ~/.claude, ~/.agents) in addition to ~/.config/stock-query — this is reasonable for compatibility but means the script will inspect those paths when locating portfolio.csv.
Install Mechanism
No install spec or external downloads; code is bundled with the skill. No arbitrary remote installers or URL-based extracts are used.
Credentials
The skill requests no environment variables or credentials. Its network and shell usage is proportional to fetching and formatting market data. The README/skill.yaml document the expected endpoints and limit network scope to specific market APIs.
Persistence & Privilege
always:false and user-invocable:true. The skill does not request persistent elevated privileges or modify other skills' configs. It only reads/writes its own portfolio.csv when explicitly commanded.
Assessment
This skill appears coherent for querying market data: it runs bundled Bash scripts that curl a set of documented market-data hosts and reads/writes a single portfolio.csv. Before installing, review the bundled scripts if you wish (they are included) and ensure portfolio.csv does not contain any passwords, API keys, or other secrets (the skill explicitly warns about this). If you are concerned about network access, note the skill contacts specific public endpoints (qt.gtimg.cn, hq.sinajs.cn, push2.eastmoney.com, web.ifzq.gtimg.cn, query1.finance.yahoo.com, fundgz.1234567.com.cn, api.fund.eastmoney.com). Consider running it in a restricted environment or verifying network traffic if you want to audit requests.

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

latestvk970fd9hn3neqzwh6qff5q4m5984g6eb
719downloads
1stars
29versions
Updated 2w ago
v2.6.0
MIT-0

全球股票/ETF/基金/指数 实时价格查询

权限与操作范围

权限声明用途限制
networkscripts/sq.sh 内部调用行情 API仅限 qt.gtimg.cnhq.sinajs.cnpush2.eastmoney.comweb.ifzq.gtimg.cnquery1.finance.yahoo.comfundgz.1234567.com.cnapi.fund.eastmoney.com 七个数据源,不发送用户个人数据
shell执行 curliconvgrepawkmktemp仅操作 portfolio.csv;不执行任意命令

文件访问: 本 skill 仅在用户显式指令下读写 portfolio.csv 一个文件,优先查找 ~/.config/stock-query/portfolio.csv,其次兼容旧版安装目录(~/.openclaw/workspace/skills/stock-query/~/.claude/skills/stock-query/~/.agents/skills/stock-query/),无需配置任何环境变量。历史数据通过网络实时获取,不写本地文件。

自动触发范围: 文件操作(Command 1)不会自动触发,仅在用户明确发出增/删/改/查 portfolio 指令时执行。

⚠️ 凭证安全: portfolio.csv 仅应包含股票代码、名称、数量、自选价格。禁止存放账户密码、API 密钥、Token 或任何认证凭证。

前置依赖

工具说明
scripts/sq.sh行情查询 CLI,内部使用 curl + iconv
scripts/fmt.sh格式化输出工具,由 sq.sh --format 调用,依赖 python3,输出人类可读的 Markdown 表格

支持的市场与标的

市场代码格式示例
沪/深市股票、ETF、指数6 位数字601991510300000001
港股≤5 位数字(自动补零)7000070009988
美股英文 tickerAAPLTSLABIDU
美股指数.DJI / .IXIC / .SPX.DJI
场外基金6 位数字014978110011

工作流程

Step 0: 意图识别与 Command 路由

Meta 命令(最高优先级):输入为 version-v--versionhelp-h--help(大小写不敏感) → 直接输出版本/帮助信息,不执行后续步骤

version 输出:

stock-query v2.6.0

help 输出:

stock-query v2.6.0 — 全球股票/ETF/基金/指数实时行情查询

用法:
  /stock-query <代码> [代码2 ...]   查询一个或多个标的实时行情
  /stock-query <代码> 历史          查询个股历史K线(默认近30个交易日)
  /stock-query version              显示版本号
  /stock-query help                 显示本帮助

支持的市场:
  A股(沪/深)  6位数字,如 601991 000001
  港股          5位数字,如 00700 09988
  美股          英文ticker,如 AAPL TSLA NVDA
  美股指数      .DJI  .IXIC  .SPX
  ETF           6位数字,如 510300 159915
  场外基金      6位数字,如 014978

常用示例:
  /stock-query AAPL
  /stock-query 00700 09988
  /stock-query AAPL 00700 601991 510300
  /stock-query 600519 近60天日K
  /stock-query TSLA 周K 最近20周

作者:asfamilybank · https://github.com/asfamilybank/stock-query

Command 1:Portfolio 文件管理:含操作词(添加/新增/删除/移除/修改/查看/列出)+ 对象词(自选股/持仓/portfolio/watchlist),或明确指令如"把 AAPL 加到自选股" → 直接执行 Command 1,不进入 Command 2/3 流程

Command 3:历史行情查询:含关键词(历史/历史数据/历史行情/历史价格/历史走势/K线/日K/周K/月K) → 直接执行 Command 3,不进入 Command 2 流程

Command 2:行情查询(默认):其余所有输入 → 进入 Command 2 流程(执行 Step 1–6)


静默执行原则(Claude 对话输出约束)

⛔ 严禁向用户输出任何中间推理或过程信息。 这是最高优先级约束,覆盖所有步骤。

本约束仅适用于 Claude 的对话文本输出。scripts/sq.sh stdout 仅输出结构化数据供 Claude 内部消费:行情/基金命令输出 JSON 数组,pfile 命令输出文件绝对路径或控制令牌 NOT_FOUND;stderr 输出错误/用法提示。scripts/fmt.sh 是格式化渲染层,接收 sq.sh 的 JSON 输出,输出供用户直接查看的 Markdown 表格(含涨跌 emoji、CJK 对齐、均线列);其 stdout 为最终展示内容,非过程日志。两个脚本均不向用户界面打印任何过程信息。

以下内容绝对禁止出现在回复中:

  • 市场/类型判断(如"014978 是场外基金")
  • 数据源切换说明(如"腾讯接口返回空,切换至东方财富:")
  • 文件路径查找过程
  • 任何形式的"正在..."、"切换..."、"尝试..."等过程性文字

唯一允许的输出: 最终结果表格,或无法查询时的错误提示。


Command 1: Portfolio 文件管理

所有增删改查操作必须通过 Bash 工具执行实际命令,禁止依赖会话记忆。未执行命令不得声称操作已完成。

文件定位(每次进入 Command 1 必须首先执行)

PFILE=$(bash scripts/sq.sh pfile)
echo "$PFILE"
  • 输出 NOT_FOUND → 立即向用户输出下方创建引导,停止执行,不得创建任何替代文件
  • 否则将 $PFILE 用于所有后续操作

portfolio.csv 不存在时,引导用户创建:

未找到自选股文件。请执行以下步骤创建:

1. 创建配置目录并复制模板:
   mkdir -p ~/.config/stock-query
   cp <skill安装目录>/assets/portfolio.csv ~/.config/stock-query/portfolio.csv

2. 编辑文件,填入你的自选股信息。

CSV 文件格式(参考 assets/portfolio.csv):

代码,名称,数量,自选价格
601991,大唐发电,1000,4.00   # 含数量与参考价,输出浮盈亏
014978,华安纳指100C,10000,  # 自选价格留空:只查行情
AAPL,,50,220.00             # 名称留空:自动从接口获取
000300,,0,                  # 数量为 0:纯自选

grep -v '^#' "$PFILE" | tail -n +2

格式化为表格展示,不查询实时行情。如需实时价格,使用 Command 2。

  1. bash scripts/sq.sh get <code> 获取标的名称
  2. 执行:
if grep -q "^{code}," "$PFILE" 2>/dev/null; then
  echo "DUPLICATE:{code}"
else
  echo "{code},{name},{shares},{cost}" >> "$PFILE" && echo "ADDED:{code},{name},{shares},{cost}"
fi
  1. ADDED:... → 展示添加结果;DUPLICATE:{code} → 询问是否改为修改操作

  1. bash scripts/sq.sh get <code> 获取最新名称
  2. 执行:
OLD=$(grep "^{code}," "$PFILE")
if [ -z "$OLD" ]; then
  echo "NOT_FOUND:{code}"
else
  NEW="{code},{name},{shares},{cost}"
  tmp=$(mktemp)
  awk -F',' -v c="{code}" -v n="$NEW" \
    'BEGIN{OFS=","} $1==c{print n;next}{print}' "$PFILE" > "$tmp" && mv "$tmp" "$PFILE"
  echo "BEFORE:$OLD"
  echo "AFTER:$NEW"
fi
  1. 展示修改前后 diff;NOT_FOUND:{code} → 提示未找到

DEL=$(grep "^{code}," "$PFILE")
if [ -z "$DEL" ]; then
  echo "NOT_FOUND:{code}"
else
  tmp=$(mktemp)
  grep -v "^{code}," "$PFILE" > "$tmp" && mv "$tmp" "$PFILE"
  echo "DELETED:$DEL"
fi

DELETED:... → 展示删除结果;NOT_FOUND:{code} → 提示未找到


Command 2: 行情查询

Step 1: 解析用户输入

detail_mode 检测: 若用户消息含以下关键词,设 detail_mode = true,在 Step 3 输出详细表格:

  • 中文:详细、详情、详细信息、更多信息、全部信息、完整信息
  • 英文:detail、details、verbose、full

从用户消息中提取标的代码,支持以下形式:

  • 6 位纯数字 → A 股(股票/ETF/指数/基金)
  • ≤5 位纯数字 → 港股,自动补零(700 → 00700)
  • 英文字母或英文+数字 → 美股 ticker
  • 中文/英文名称 → 匹配下表常见标的;无法确定时向用户确认

常见标的速查:

A 股:

  • 黄金ETF → 518880 / 红利低波ETF → 512890 / 沪深300ETF → 510300
  • 卫星ETF → 563230 / 创业板ETF → 159915 / 中证500ETF → 510500
  • 上证指数 → 000001 / 深证成指 → 399001 / 创业板指 → 399006
  • 沪深300 → 000300 / 上证50 → 000016 / 中证500 → 000905 / 中证1000 → 000852

港股:

  • 腾讯 → 00700 / 阿里巴巴 → 09988 / 美团 → 03690 / 小米 → 01810
  • 比亚迪 → 01211 / 恒生指数 → HSI

美股:

  • 苹果 → AAPL / 谷歌 → GOOG / 特斯拉 → TSLA / 英伟达 → NVDA
  • 微软 → MSFT / 亚马逊 → AMZN / 百度 → BIDU / 阿里巴巴 → BABA
  • 哔哩哔哩 → BILI / 拼多多 → PDD
  • 道琼斯 → .DJI / 纳斯达克 → .IXIC / 标普500 → .SPX

Step 2: 查询并格式化输出

Step 2A: 执行命令(不得省略 --format 参数,单支/批量/任意市场均适用)
  detail_mode = false → bash scripts/sq.sh get <code1> [code2 ...] --format table
  detail_mode = true  → bash scripts/sq.sh get <code1> [code2 ...] --format table --detail

Step 2B: 将命令的 stdout 原样作为回复返回
  ⛔ 不得解析 JSON 自行构建表格
  ⛔ 不得修改 emoji 字符(A股/港股:涨🔴跌🟢;美股:涨🟩跌🟥)
  ⛔ 不得添加、删除或重排列

⛔ 特别注意:港股跌幅用 🟢(非 🔴)。 A股、港股均遵循中国市场惯例:上涨 🔴,下跌 🟢,平盘 ⚪。命令输出已正确处理,勿覆盖。

Step 4: 自选市值计算(可选)

4a. 从 portfolio 文件加载

当用户指令涉及自选股(如"查我的自选股""看下自选股"),先定位文件再批量查询:

PFILE=$(bash scripts/sq.sh pfile)
  • 输出 NOT_FOUND → 立即输出创建引导(见 Command 1),停止执行
  • 否则读取文件,提取所有代码后用 sq get 批量查询

执行步骤(严格按序):

Step A: 读取全部条目
  codes_all      = 文件中所有非注释、非表头行
  codes_position = codes_all 中数量 > 0 的条目
  codes_watch    = codes_all 中数量 = 0 或空的条目

Step B: 批量查询
  bash scripts/sq.sh get <codes_all 中所有代码>

Step C: 输出自选市值表(若 codes_position 非空)
  横向宽表格:代码/名称/数量/自选价格/现价/市值/浮盈亏/盈亏比

Step D: 输出自选行情表(若 codes_watch 非空)← 必须执行,不得省略
  标题"自选行情",简表:代码/名称/现价/涨跌幅

⚠️ Step D 不得跳过。 数量=0 的条目不进市值表,但必须出现在 Step D。

输出示例:

| 代码   | 名称     | 数量    | 自选价格 | 现价    | 市值      | 浮盈/亏      | 盈亏比      |
|--------|---------|--------|---------|--------|----------|------------|------------|
| 601991 | 大唐发电 | 1000股 | 4.00    | 4.08   | 4,080    | 🔴 +80     | 🔴 +2.00% |
| AAPL   | 苹果     | 50股   | 220.00  | 246.63 | 12,332   | 🟩 +1,332  | 🟩 +12.10%|

自选行情
| 代码   | 名称    | 现价     | 涨跌幅      |
|--------|--------|---------|------------|
| 000300 | 沪深300 | 4509.24 | 🔴 +0.38% |
| .DJI   | 道琼斯  | 45216.14| 🟩 +0.11% |

4b. 用户手动提供自选信息

sq get 查询后,必须使用横向宽表格,禁止使用竖向键值对格式

| 代码   | 名称      | 数量   | 自选价格 | 最新价  | 市值       | 浮盈/亏        | 盈亏比         |
|--------|----------|--------|---------|--------|-----------|--------------|--------------|
| 600519 | 贵州茅台  | 100股  | 1680.0  | 1725.0 | 172,500   | 🔴 +4,500    | 🔴 +2.68%   |
| AAPL   | 苹果      | 50股   | 220.0   | 251.49 | 12,574.50 | 🟩 +1,574.50 | 🟩 +14.31%  |

汇总行:

📊 自选合计:市值 185,074.50 | 总参考成本 179,000 | 浮盈 +6,074.50(+3.39%)

浮盈亏 emoji 遵循市场规则(A股/港股:盈利🔴亏损🟢;美股:盈利🟩亏损🟥)。跨市场汇总时提示用户各币种分开统计。

CSV 解析规则:# 开头为注释,第一个非注释行为表头,名称列为空时从查询结果自动填充,自选价格为空时浮盈亏显示


Command 3: 历史行情查询

意图解析

从用户输入中提取以下参数(均可省略,使用默认值):

标的代码:同 Step 1 规则。

周期(默认 day):

用户表述参数
日/天/日K/daily--period day
周/周K/weekly--period week
月/月K/monthly--period month

数量/区间

  • "近N天/周/月"、"最近N条"、"过去N" → --count N
  • "从 YYYY-MM-DD 到 YYYY-MM-DD"、"2024年1月到3月" → --start ... --end ...(转为 YYYY-MM-DD 格式)
  • 未指定 → 默认 30 条

复权(默认前复权):

用户表述参数
前复权(默认)--fq pre
后复权--fq post
不复权/原始价格--fq none

数据获取与格式化输出

bash scripts/sq.sh hist <code> [--period day|week|month] [--count N] [--start YYYY-MM-DD] [--end YYYY-MM-DD] [--fq pre|post|none] --format table

直接执行上述命令,将输出原样呈现给用户。--format table 已内置所有格式化逻辑:倒序 K 线表格、标题行(标的/周期/复权/条数)、区间统计、emoji 涨跌规则、成交量单位换算。


交易时间参考

市场交易时段(当地时间)时区
A 股/ETF工作日 09:30-11:30, 13:00-15:00UTC+8
场外基金估值工作日 09:30-15:00UTC+8
港股工作日 09:30-12:00, 13:00-16:00UTC+8
美股工作日 09:30-16:00(北京时间 夏令时 21:30-04:00)UTC-4/-5
QDII 基金净值 T+2 至 T+7 公布

Comments

Loading comments...