stock-query

查询全球主要市场股票实时行情:A 股、港股、美股,以及场内 ETF、场外基金、主要指数。 需要:curl(HTTP 请求)、iconv(GBK→UTF-8 转码)。 Use when: 用户要求查询股价、基金净值、ETF 价格、大盘指数,或需要计算持仓市值时。 NOT for: 加密货币、期货、期权、外汇。

3,891 stars

Best use case

stock-query is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

查询全球主要市场股票实时行情:A 股、港股、美股,以及场内 ETF、场外基金、主要指数。 需要:curl(HTTP 请求)、iconv(GBK→UTF-8 转码)。 Use when: 用户要求查询股价、基金净值、ETF 价格、大盘指数,或需要计算持仓市值时。 NOT for: 加密货币、期货、期权、外汇。

Teams using stock-query should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/stock-query/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/asfamilybank/stock-query/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/stock-query/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How stock-query Compares

Feature / Agentstock-queryStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

查询全球主要市场股票实时行情:A 股、港股、美股,以及场内 ETF、场外基金、主要指数。 需要:curl(HTTP 请求)、iconv(GBK→UTF-8 转码)。 Use when: 用户要求查询股价、基金净值、ETF 价格、大盘指数,或需要计算持仓市值时。 NOT for: 加密货币、期货、期权、外汇。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

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

## 前置依赖

运行本 skill 需要以下命令行工具:

| 工具 | 用途 |
|------|------|
| `curl` | 调用股票行情 API |
| `iconv` | 将 API 响应从 GBK 转码为 UTF-8 |

## 支持的市场与标的

| 市场     | 代码格式                  | API 前缀     | 数据源       | 备用数据源   |
|---------|--------------------------|-------------|-------------|-------------|
| 沪市股票  | 6 开头 6 位数字           | `sh`        | 腾讯财经     | 新浪财经     |
| 深市股票  | 0 或 3 开头 6 位数字      | `sz`        | 腾讯财经     | 新浪财经     |
| 沪市 ETF | 5 开头 6 位数字           | `sh`        | 腾讯财经     | 新浪财经     |
| 深市 ETF | 1 开头 6 位数字           | `sz`        | 腾讯财经     | 新浪财经     |
| 沪市指数  | 000 开头 6 位数字         | `sh`        | 腾讯财经     | 新浪财经     |
| 深市指数  | 399 开头 6 位数字         | `sz`        | 腾讯财经     | 新浪财经     |
| 场外基金  | 排除法(见 Step 2)       | —           | 天天基金     | 东方财富     |
| 港股     | 5 位数字(如 00700)      | `hk`        | 腾讯财经     | —           |
| 美股     | 英文 ticker(如 AAPL)    | `us`        | 腾讯财经     | —           |
| 美股指数  | .DJI / .IXIC / .SPX     | `us`        | 腾讯财经     | —           |

## 工作流程

### Step 0: Meta 命令路由

在解析标的代码前,先检查用户输入是否为 meta 命令:

**version 命令**:输入为 `version`、`-v`、`--version`(大小写不敏感)
→ 直接输出版本信息,**不执行后续步骤**:

```
stock-query v2.0.4
```

**help 命令**:输入为 `help`、`-h`、`--help`(大小写不敏感)
→ 直接输出用法说明,**不执行后续步骤**:

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

用法:
  /stock-query <代码> [代码2 ...]   查询一个或多个标的
  /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
```

---

### Step 1: 解析用户输入

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

- **6 位纯数字** → A 股(股票/ETF/指数/基金)
- **5 位纯数字** → 港股(如 00700、09988)
- **英文字母或英文+数字** → 美股 ticker(如 AAPL、TSLA、BIDU)
- **中文/英文名称** → 尝试匹配常见标的(见下表)

常见标的速查:

**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(腾讯 API 前缀 `hkHSI`)

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

如果无法确定代码,向用户确认。

### Step 2: 识别标的市场

```
第一步:判断输入类型

if input 是 5 位纯数字:
    market = 'hk'           # 港股
    type = 'hk_stock'
elif input 以 . 开头 (如 .DJI):
    market = 'us'           # 美股指数
    type = 'us_index'
elif input 包含英文字母:
    market = 'us'           # 美股
    type = 'us_stock'
elif input 是 6 位纯数字:
    # A 股市场识别(原有逻辑)
    if code.startsWith('000') and len==6:
        market = 'sh'       # 沪市指数(注意与深市股票歧义)
        type = 'index_or_stock'
    elif code.startsWith('399'):
        market = 'sz'       # 深市指数
        type = 'index'
    elif code.startsWith('6'):
        market = 'sh'       # 沪市股票
        type = 'stock'
    elif code.startsWith('0') or code.startsWith('3'):
        market = 'sz'       # 深市股票(可能是场外基金,需二次确认)
        type = 'stock_or_fund'
    elif code.startsWith('5'):
        market = 'sh'       # 沪市 ETF
        type = 'etf'
    elif code.startsWith('1'):
        market = 'sz'       # 深市 ETF
        type = 'etf'
    else:
        type = 'fund'       # 场外基金(2/4/7/8/9 开头)

第二步:A 股歧义处理

对 type='index_or_stock' 的 000 开头代码:
1. 用户提到"指数""大盘""上证" → sh 前缀(指数)
2. 用户提到股票名称或"股票" → sz 前缀(深市股票)
3. 无法判断:先查 sh{code},名称含"指数"则确认为指数;否则查 sz{code}
4. 典型歧义:000001 → sh000001 上证指数,sz000001 平安银行

对 type='stock_or_fund' 的代码做二次确认:
1. 用腾讯接口查询 sz{code}
2. 若返回空/无效,判定为场外基金
3. 若返回数据,确认为深市股票

第三步:防碰撞校验
查询返回后校验名称与用户预期一致。不符时尝试另一市场前缀。
```

### Step 3: 查询股票/ETF/指数 实时行情

#### 3a. 腾讯财经(首选,支持全球市场)

腾讯财经 API 统一支持 A 股、港股、美股查询。

```bash
# A 股
curl -s "https://qt.gtimg.cn/q=sh601991,sz000001" | iconv -f GBK -t UTF-8

# 港股
curl -s "https://qt.gtimg.cn/q=hk00700,hk09988" | iconv -f GBK -t UTF-8

# 美股
curl -s "https://qt.gtimg.cn/q=usAAPL,usTSLA" | iconv -f GBK -t UTF-8

# 美股指数
curl -s "https://qt.gtimg.cn/q=us.DJI,us.IXIC,us.SPX" | iconv -f GBK -t UTF-8

# 混合查询(可跨市场批量)
curl -s "https://qt.gtimg.cn/q=sh601991,hk00700,usAAPL" | iconv -f GBK -t UTF-8
```

**重要:腾讯接口返回 GBK 编码,必须通过 `iconv -f GBK -t UTF-8` 转码。**

API 前缀规则:

| 市场     | 前缀格式              | 示例                      |
|---------|----------------------|--------------------------|
| 沪市     | `sh` + 6位代码       | `sh601991`               |
| 深市     | `sz` + 6位代码       | `sz000001`               |
| 港股     | `hk` + 5位代码       | `hk00700`                |
| 美股     | `us` + ticker        | `usAAPL`、`usBIDU`       |
| 美股指数  | `us` + .代码         | `us.DJI`、`us.IXIC`     |

响应格式为 `~` 分隔的文本,各市场字段结构一致:

| 索引 | 含义                                        |
|-----|---------------------------------------------|
| [0] | 市场标识(1=A股, 100=港股, 200=美股)          |
| [1] | 名称(中文)                                  |
| [2] | 代码                                         |
| [3] | 最新价                                       |
| [4] | 昨收                                         |
| [5] | 今开                                         |
| [6] | 成交量                                       |
| [30]| 日期时间                                      |
| [31]| 涨跌额(已算好)                               |
| [32]| 涨跌幅 %(已算好,直接使用)                    |
| [33]| 最高                                         |
| [34]| 最低                                         |

注意事项:
- 日期时间格式因市场不同:A 股为 `YYYYMMDDHHMMSS`,港股为 `YYYY/MM/DD HH:MM:SS`,美股为 `YYYY-MM-DD HH:MM:SS`
- 涨跌额和涨跌幅由接口直接返回,无需手动计算
- [0] 字段可用于区分市场:1=A股, 51=深市个股, 100=港股, 200=美股

**频率限制:** 腾讯接口为公共 API,过度调用会被封禁 IP。健康使用频率:
- 单次请求最多 **100 个代码**
- 请求间隔不低于 **100ms**(即每秒最多 10 次请求)
- 批量查询时优先合并为单次请求,避免逐个查询

#### 3b. 新浪财经(A 股备用)

仅用于 A 股。当腾讯接口超时或返回空时回退:

```bash
curl -s "https://hq.sinajs.cn/list={market}{code}" \
  -H "Referer: https://finance.sina.com.cn" \
  | iconv -f GBK -t UTF-8
```

新浪字段索引(引号内逗号分隔,0-based):
- [0] 名称, [1] 今开, [2] 昨收, [3] 最新价, [4] 最高, [5] 最低
- [8] 成交量, [9] 成交额, [30] 日期, [31] 时间

新浪涨跌额 = [3] - [2],涨跌幅 = ([3] - [2]) / [2] × 100%

### Step 4: 查询场外基金净值

对 type 为 fund 的标的(仅 A 股场外基金),按优先级使用:

**4a. 实时估值(交易日盘中,优先使用):**
```bash
curl -s "http://fundgz.1234567.com.cn/js/{code}.js"
```
> **安全说明**:该接口为 HTTP(无 TLS),请求中仅含基金代码,不涉及用户敏感信息。

响应字段:
- `fundcode`: 基金代码
- `name`: 基金名称
- `jzrq`: 最新净值日期
- `dwjz`: 上一交易日单位净值
- `gsz`: 实时估算净值
- `gszzl`: 估算涨跌幅(%)
- `gztime`: 估值时间

**4b. 备用:最新确认净值**
```bash
curl -s "https://api.fund.eastmoney.com/f10/lsjz?fundCode={code}&pageIndex=1&pageSize=1" \
  -H "Referer: https://fund.eastmoney.com"
```

若 4a 返回 `jsonpgz()` 空值,则使用 4b。

**QDII 基金特殊处理:**
基金名称含"QDII""纳斯达克""标普""海外""美国""全球",且净值日期落后 >2 天,属正常——QDII 基金净值公布有 T+2 至 T+7 的系统性延迟。附加提示:`⏳ QDII基金,净值公布有 T+2~T+7 延迟`

### Step 5: 格式化输出

以 Markdown 表格输出:

```
| 代码    | 名称           | 市场  | 最新价    | 涨跌幅          | 最高      | 最低      | 币种 | 更新时间            |
|---------|---------------|-------|----------|----------------|----------|----------|------|-------------------|
| 000001  | 上证指数       | A股   | 3874.39  | 🔴 +1.60%      | 3881.20  | 3850.10  | CNY  | 2026-03-24 15:00  |
| 601991  | 大唐发电       | A股   | 4.21     | 🔴 +4.47%      | 4.25     | 4.06     | CNY  | 2026-03-24 15:00  |
| 00700   | 腾讯控股       | 港股  | 511.000  | 🔴 +2.53%      | 515.000  | 498.000  | HKD  | 2026-03-24 16:00  |
| AAPL    | 苹果          | 美股  | 251.49   | 🟩 +1.41%      | 254.60   | 250.28   | USD  | 2026-03-23 16:00  |
| .DJI    | 道琼斯        | 美股  | 46208.47 | 🟩 +1.38%      | 46350.12 | 45980.33 | USD  | 2026-03-23 17:11  |
| 014978  | 华安纳指100C  | 基金  | 6.8897   | 🟢 -1.43%(估) | —        | —        | CNY  | 2026-03-24 15:00  |
```

涨跌标识规则:
- **A 股/港股(红涨绿跌)**:上涨 🔴 `+X.XX%`,下跌 🟢 `-X.XX%`
- **美股(绿涨红跌)**:上涨 🟩 `+X.XX%`,下跌 🟥 `-X.XX%`
- **平盘**:⚪ `0.00%`(所有市场通用)

如果输出环境支持 HTML 或富文本,使用颜色标签增强显示:
- A 股/港股上涨:`<span style="color:#e54d42">🔴 +1.41%</span>`
- A 股/港股下跌:`<span style="color:#39b54a">🟢 -0.29%</span>`
- 美股上涨:`<span style="color:#39b54a">🟩 +1.41%</span>`
- 美股下跌:`<span style="color:#e54d42">🟥 -0.29%</span>`

其他输出规则:
- 涨跌幅为正数前面加 `+`,为负数自带 `-`
- 价格保留与原始数据相同的小数位数
- 场外基金盘中显示估算净值,在涨跌幅后标注 `(估)`
- 非交易时段在表格下方注明:`⏸ 非交易时段,显示上一交易日收盘数据`
- QDII 基金在表格下方注明:`⏳ QDII基金,净值公布有 T+2~T+7 延迟`
- 美股数据在非美股交易时段显示的是上一交易日收盘价

### Step 6: 持仓市值计算(可选)

如果用户同时提供了持仓份额/股数,额外输出市值表:

```
| 代码   | 名称      | 持仓   | 成本价  | 最新价  | 市值       | 浮盈/亏         | 盈亏比          |
|--------|----------|--------|--------|--------|-----------|----------------|----------------|
| 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%)
```

注意:跨市场持仓汇总时,需提示用户各币种的市值分开统计,或按实时汇率折算。

## 数据源降级策略

- A 股(股票/ETF/指数):腾讯财经(首选)→ 新浪财经(备用)→ 报错
- 港股/美股:腾讯财经(唯一数据源)→ 报错
- 场外基金:天天基金估值(首选)→ 东方财富净值(备用)→ 报错

## 错误处理

| 场景              | 处理方式                                                     |
|------------------|--------------------------------------------------------------|
| 代码无法识别       | 提示 "未找到标的 {code},请确认代码是否正确"                      |
| 腾讯接口超时/空值  | A 股自动回退新浪;港股/美股提示 "数据源暂时不可用"                 |
| 新浪接口也失败     | 重试 1 次,仍失败则提示 "数据源暂时不可用,请稍后重试"              |
| 场外基金无估值数据  | 回退到确认净值接口,标注 `(净值,非估值)`                        |
| 市场前缀碰撞       | 校验返回名称与用户预期是否一致,不一致时尝试另一市场前缀             |
| 中文乱码          | 检查是否遗漏 iconv 转码步骤(腾讯和新浪接口均为 GBK 编码)         |

## 安全与隐私说明

- **场外基金估值接口(fundgz.1234567.com.cn)**:当前仅提供 HTTP(无 TLS)。请求中仅发送基金代码,不涉及用户身份或敏感数据。
- **portfolio_file 配置**:`skill.yaml` 中为可选配置项。**本 skill 附带的脚本不会自动读取该路径**;若配置此项,agent 可能在用户指令下读取该文件。⚠️ 本 skill 同时具有 shell 和 network 权限,理论上读取的文件内容可被纳入网络请求(如查询持仓数据时)。**请勿将此项指向包含账户凭证、API 密钥或其他敏感信息的文件。**

## 交易时间参考

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

Related Skills

gold-price-query

3891
from openclaw/skills

This skill retrieves real-time precious metal prices (gold, silver, platinum, palladium, etc.) from https://i.jzj9999.com/quoteh5. It provides bid/ask prices, daily high/low prices, and price trends for 20+ metal types.

Data & Research

openclaw-stock-skill

3891
from openclaw/skills

使用 data.diemeng.chat 提供的接口查询股票日线、分钟线、财务指标等数据,支持 A 股等市场。

Data & Research

us-stock-analyst

3891
from openclaw/skills

Professional US stock analysis with financial data, news, social sentiment, and multi-model AI. Comprehensive reports at $0.02-0.10 per analysis.

Data & Research

stock-watchlist

3891
from openclaw/skills

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.

Personal Finance

jarvis-stock-price - 股票价格查询

3880
from openclaw/skills

**版本**: 1.0.0

Data & Research

jarvis-stock-monitor

3880
from openclaw/skills

全功能智能股票监控预警系统 Pro 版。支持成本百分比、均线金叉死叉、RSI 超买超卖、成交量异动、跳空缺口、动态止盈等 7 大预警规则。基础功能免费,高级功能 SkillPay 付费。

Finance & Trading

SKILL: stock-checker

3891
from openclaw/skills

## Description

akshare-a-stock

3891
from openclaw/skills

A股量化数据分析工具,基于AkShare库获取A股、港股、美股行情、财务数据、板块分析等。用于回答关于股票查询、行情数据、财务分析、资金流向、龙虎榜、涨停跌停、新股IPO、融资融券等问题。

Stock Skill - 股票查询

3891
from openclaw/skills

获取A股、港股、美股的实时行情数据。

cn-stock-query

3891
from openclaw/skills

查询中国 A 股股票、场内 ETF 及场外基金的实时行情与最新净值。 Use when: 用户要求查询股价、基金净值、ETF 价格,或需要计算持仓市值时。 NOT for: 美股(含中概 ADR)、港股、加密货币、期货、期权。

openclaw-livestock-assistant

3891
from openclaw/skills

AI-powered livestock management assistant for Spanish-speaking farmers. Provides expert advice on herd management, animal health, reproduction, genetics, nutrition, and breed selection for bovine, ovine, caprine, porcine, equine, and poultry. Includes a Node.js REST API for persistent herd record-keeping (animal registration, health records, reproduction events). Use when the user asks about livestock, cattle, ganadería, herd management, animal health, veterinary advice, breeds, reproduction, nutrition, forage, or any livestock-related topic.

stock-prices

3891
from openclaw/skills

Query real-time stock prices and market data using the Stock Prices API. Responses are in TOON format—decode with @toon-format/toon. Use when fetching stock quotes, analyzing market data, or working with symbols like AAPL, NVDA, GOOGL, or any ticker symbols.