Stock Price Query Skill
Overview
实时股票价格查询技能,支持查询 A 股(沪深两市)、港股和美股的实时行情数据。通过调用免费公开的行情 API 获取数据,返回结构化的股票信息。
When to Use
当用户的请求涉及以下场景时触发此技能:
- 用户询问某只股票的当前价格,例如:"贵州茅台现在多少钱?"、"查一下苹果的股价"
- 用户想了解股票涨跌情况,例如:"腾讯今天涨了还是跌了?"
- 用户提供股票代码查询,例如:"600519 现在什么价?"、"AAPL price"
- 用户询问多只股票的价格对比,例如:"帮我看看比亚迪和宁德时代的股价"
- 用户说 "查股票"、"股票行情"、"stock price" 等关键词
How to Use
查询流程
- 解析用户输入:从用户消息中提取股票代码或股票名称。
- 识别市场:根据股票代码格式自动识别所属市场:
- A 股沪市:以
sh开头或 6 位数字以 6 开头(如sh600519、600519) - A 股深市:以
sz开头或 6 位数字以 0/3 开头(如sz000001、300750) - 港股:以
hk开头或纯数字 5 位及以下(如hk00700、00700) - 美股:纯英文字母代码(如
AAPL、TSLA、GOOGL)
- A 股沪市:以
- 执行查询脚本:运行
scripts/stock_query.py获取实时数据。 - 格式化输出:将结果以清晰友好的格式展示给用户。
脚本调用方式
python3 {{SKILL_DIR}}/scripts/stock_query.py <stock_code> [market]
参数说明:
stock_code(必需):股票代码,如600519、AAPL、00700market(可选):市场标识,可选值为sh(沪市)、sz(深市)、hk(港股)、us(美股)。不提供时脚本会自动识别。
输出格式:JSON,包含以下字段:
{
"code": "600519",
"name": "贵州茅台",
"market": "sh",
"current_price": 1688.00,
"change": 12.50,
"change_percent": 0.75,
"open": 1680.00,
"high": 1695.00,
"low": 1675.00,
"prev_close": 1675.50,
"volume": 2345678,
"amount": 3956789012.50,
"time": "2026-02-24 15:00:00",
"status": "success"
}
常见股票名称与代码映射
如果用户提供的是股票名称而非代码,先尝试匹配常见股票:
| 名称 | 代码 | 市场 |
|---|---|---|
| 贵州茅台 | 600519 | sh |
| 中国平安 | 601318 | sh |
| 比亚迪 | 002594 | sz |
| 宁德时代 | 300750 | sz |
| 腾讯控股 | 00700 | hk |
| 阿里巴巴 | 09988 | hk |
| 苹果/Apple | AAPL | us |
| 特斯拉/Tesla | TSLA | us |
| 英伟达/NVIDIA | NVDA | us |
| 微软/Microsoft | MSFT | us |
对于不在映射表中的股票名称,提示用户提供准确的股票代码。
输出格式要求
查询成功后,以如下格式展示结果:
📈 **{股票名称}**({股票代码}.{市场})
💰 当前价格:{current_price} 元/港元/美元
📊 涨跌幅:{change} ({change_percent}%) ↑/↓
📅 行情时间:{time}
| 指标 | 数值 |
|------|------|
| 今开 | {open} |
| 最高 | {high} |
| 最低 | {low} |
| 昨收 | {prev_close} |
| 成交量 | {volume} |
| 成交额 | {amount} |
涨跌幅为正时使用 ↑,为负时使用 ↓。
Edge Cases
- 输入安全校验:脚本在执行前会严格校验所有输入参数。
stock_code仅允许字母和数字(正则^[A-Za-z0-9]{1,10}$),market仅允许白名单值(sh/sz/hk/us)。任何包含特殊字符、shell 元字符或超长输入都会被拒绝,防止命令注入。 - 股票代码无效:返回 "无法识别该股票代码,请确认后重试。支持 A 股(6 位数字)、港股(5 位数字)、美股(英文字母)。"
- 网络请求失败:返回 "网络请求失败,请稍后重试。"
- 非交易时段:正常返回最近的收盘数据,并提示 "当前为非交易时段,显示的是最近一次的收盘数据。"
- 股票名称模糊:提示用户提供准确的股票代码以确保查询准确性。
- API 限流:如遇到限流,等待 1 秒后重试一次,仍失败则提示用户稍后再试。