11 KiB
A股数据API技能包
GitHub: 1018466411/openclaw-stock-data-skill | Gitea: mc-skills/1018466411--openclaw-stock-data-skill
中文摘要
为OpenClaw等Agent工具提供A股市场完整数据访问能力,涵盖股票实时行情、历史K线、可转债、ETF、指数、龙虎榜及WebSocket实时推送等数据,支持Python调用和API Key鉴权。
标签
股票数据 A股 API OpenClaw 可转债 ETF 实时行情 Agent工具
README 原文
股票数据 API Skill for OpenClaw
这是一个为 OpenClaw 等 Agent 工具设计的股票数据 Skill,提供了 A 股市场及周边资产的完整数据访问能力。
📥 安装方法
npx skills add https://github.com/1018466411/openclaw-stock-data-skill
安装时按提示选择:
- 选择 openclaw
- 选择 global 应用于所有 Agent
- Copy to all agents: yes
📋 数据分类概览
-
股票实时数据
- 实时行情快照(价格、五档盘口等)、集合竞价、推送历史、停牌信息等
- 典型函数:
get_stock_snapshot_daily(实时快照)、get_call_auction、get_basic_snapshot(集合竞价快照)、get_stock_snapshot_push_history等
-
股票历史数据
- 日 K 线(前复权/不复权)、分钟级历史、日度财务因子、复权因子、历史快照等
- 典型函数:
get_daily_data、get_history_data、get_finance_data、get_daily_adj_data、get_adj_factor等
-
可转债历史和实时数据
- 可转债日线、分钟级行情、日度指标(纯债价值、转股溢价等)、收盘快照、基础列表等
- 典型函数:
get_bond_daily、get_bond_history、get_bond_indicator_daily、get_bond_closing_snapshot、get_bond_list等
-
ETF 数据
- ETF 列表数据
- ETF 日线与分钟级历史行情
- 典型函数:
get_etf_list、get_etf_daily、get_etf_history
-
指数历史数据
- 指数分钟级历史行情(支持多种时间粒度)
- 典型函数:
get_index_history
-
龙虎榜数据
- 龙虎榜机构明细数据
- 典型函数:
get_dragon_tiger
-
WebSocket 实时快照
- 通过 WebSocket 协议实时推送全市场股票快照
- 支持 Gzip 压缩,JSON 格式,字段简写(cd, lp, vo, etc.)
- 连接地址:
wss://data.diemeng.chat/ws/stock/snapshot?token=YOUR_API_KEY
此外还提供 条件搜索等高级能力,详见
stock_api.py与skill.json。
🚀 快速开始
1. 注册账号并开通接口权限
重要:使用本 Skill 前,必须先注册账号并为需要使用的接口开通对应权限。
- 访问 https://data.diemeng.chat/
- 注册新账号或登录现有账号
- 在 个人中心 / 权限或套餐管理 中,按需开通以下数据大类的访问权限:
- 股票历史数据(行情、财务、估值等)
- 股票实时数据(集合竞价、基础快照等)
- 可转债数据(历史 & 实时)
- ETF 数据
- 指数历史数据
- 在 API 管理 中创建并复制您的 API Key
如果未为某一类接口开通权限,即使配置了 API Key,也会收到 403 或权限不足的错误。
2. 在 Skill 页面配置 API Key(推荐)
在 OpenClaw / ClawHub 中启用本 Skill 时:
- 打开
openclaw-stock-skill的 Skill 配置页面 - 在参数面板中将从
data.diemeng.chat获取的 API Key 填入对应字段(通常是apiKey或STOCK_API_KEY) - 保存后,网关会自动将该值注入到运行环境中(映射为
STOCK_API_KEY环境变量)
这样使用本 Skill 时,无需在本机手动配置环境变量。
3. (可选)在本地代码中直接使用 API Key
如果你在自己的 Python 项目中直接使用 stock_api.py,可以按以下方式配置:
方式一:配置文件(推荐用于 Linux 无界面环境)
在代码同级目录下创建一个名为 config.json 的文件(可复制 config.json.template),内容如下:
{
"api_key": "your_api_key_here"
}
方式二:环境变量
# Linux/macOS
export STOCK_API_KEY="your_api_key_here"
# Windows PowerShell
$env:STOCK_API_KEY="your_api_key_here"
# Windows CMD
set STOCK_API_KEY=your_api_key_here
方式三:在代码中设置
import os
os.environ["STOCK_API_KEY"] = "your_api_key_here"
4. 安装依赖
pip install requests
或使用 requirements.txt:
pip install -r requirements.txt
📖 使用示例
基本使用
from stock_api import get_stock_list, get_daily_data, search_stock_by_name
# 1. 获取股票列表
stocks = get_stock_list(page_size=10)
print(f"共有 {stocks['total']} 只股票")
for stock in stocks['list']:
print(f"{stock['stock_code']}: {stock['name']}")
# 2. 搜索股票
results = search_stock_by_name("平安")
for stock in results:
print(f"{stock['stock_code']}: {stock['name']}")
# 3. 获取日K线数据
daily_data = get_daily_data(
stock_code="600000.SH",
start_time="2024-01-01",
end_time="2024-01-31"
)
print(f"共 {daily_data['total']} 条数据")
for record in daily_data['list'][:5]:
print(f"{record['trade_date']}: 收盘价 {record['close']}")
获取多只股票数据
from stock_api import get_daily_data
# 同时查询多只股票
data = get_daily_data(
stock_code=["600000.SH", "000001.SZ", "000002.SZ"],
start_time="2024-01-01",
end_time="2024-01-31"
)
获取历史分时数据(股票分钟级)
from stock_api import get_history_data
# 获取5分钟级别数据
data = get_history_data(
stock_code="600000.SH",
level="5min",
start_time="2024-01-15 09:30:00",
end_time="2024-01-15 15:00:00"
)
获取当天分时数据(全市场实时)
from stock_api import get_realtime_history
# 建议使用定时任务按时间拉取,一次获取全市场一分钟的数据
# 定时任务建议在每分钟的 2-5 秒后拉取上一分钟数据,15秒后可复拉一次确保准确性
data = get_realtime_history(
trade_time="2026-03-15 09:31:00"
)
获取财务数据(股票日度因子)
from stock_api import get_finance_data
# 获取财务指标
finance = get_finance_data(
stock_code="600000.SH",
start_time="2024-01-01",
end_time="2024-01-31"
)
for record in finance['list']:
print(f"日期: {record['trade_date']}")
print(f"PE(TTM): {record['pe_ttm']}")
print(f"PE百分位: {record.get('pe_ttm_percentile')}%")
print(f"PB: {record['pb']}")
print(f"总市值: {record['total_mv']}")
获取可转债数据
from stock_api import (
get_bond_daily,
get_bond_history,
get_bond_indicator_daily,
)
# 1. 获取可转债日线数据
daily = get_bond_daily(
stock_code="110031.SH",
start_time="2024-01-01",
end_time="2024-01-31",
)
# 2. 获取可转债 5 分钟级历史数据
history = get_bond_history(
stock_code="110031.SH",
level="5min",
start_time="2024-01-02 09:30:00",
end_time="2024-01-02 15:00:00",
)
# 3. 获取可转债日度指标(纯债价值、转股溢价等)
indicator = get_bond_indicator_daily(
stock_code="110031.SH",
start_date="2024-01-01",
end_date="2024-01-31",
)
获取 ETF 数据
from stock_api import get_etf_list, get_etf_daily, get_etf_history
# 1. 获取 ETF 列表
etf_list = get_etf_list()
print(etf_list)
# 2. 获取 ETF 日线数据
etf_daily = get_etf_daily(
stock_code="510300.SH",
start_time="2024-01-01",
end_time="2024-01-31",
)
# 2. 获取 ETF 5 分钟级历史数据
etf_history = get_etf_history(
stock_code="510300.SH",
level="5min",
start_time="2024-01-02 09:30:00",
end_time="2024-01-02 15:00:00",
)
获取指数历史数据
from stock_api import get_index_history
# 获取指数 1 分钟级历史数据
index_history = get_index_history(
index_code="000300.SH", # 沪深 300 指数
level="1min",
start_time="2024-01-02 09:30:00",
end_time="2024-01-02 15:00:00",
)
🔧 API 接口说明
股票代码格式
- 上海:
600000.SH、688000.SH - 深圳:
000001.SZ、300000.SZ - 北京:
430000.BJ、830000.BJ
时间格式
- 日期:
YYYY-MM-DD,例如2024-01-15 - 日期时间:
YYYY-MM-DD HH:MM:SS,例如2024-01-15 09:30:00
分时级别
1min- 1分钟5min- 5分钟(默认)15min- 15分钟30min- 30分钟60min- 60分钟
📚 完整 API 文档
更多详细的 API 文档请访问:https://data.diemeng.chat/
⚠️ 注意事项
- API Key 安全:请妥善保管您的 API Key,不要将其提交到公开代码仓库
- 请求频率:请注意 API 的请求频率限制,避免过于频繁的请求
- 数据范围:部分接口支持查询全市场数据,但建议使用分页参数控制返回数量
- 错误处理:所有函数在出错时会抛出异常,请做好异常处理
🐛 常见问题
Q: 提示 "未找到 API Key"
A: 请确保已设置环境变量 STOCK_API_KEY,或访问 https://data.diemeng.chat/ 注册并获取 API Key。
Q: 返回 401 未授权错误
A: 请检查 API Key 是否正确,并确保已在个人中心激活 API 访问权限。
Q: 返回 403 权限不足
A: 您的账号可能没有访问该接口的权限,请检查您的账号权限设置。
Q: 如何获取更多数据?
A: 使用 page 和 page_size 参数进行分页查询,或联系管理员提升账号权限。
📝 更新日志
v1.0.0 (2024-01-XX)
- 初始版本发布
- 支持股票列表、日K线、历史分时、财务数据等核心功能
- 支持股票搜索查询
📄 许可证
MIT License
🔗 相关链接
- API 文档:https://data.diemeng.chat/
- 注册账号:https://data.diemeng.chat/
- GitHub 仓库:查看项目源码(创建仓库后更新此链接)
- GitHub 推送指南:GITHUB.md
📤 推送到 GitHub
是的,建议推送到 GitHub! OpenClaw 有官方的 Skills 生态,你可以:
- 推送到个人 GitHub 仓库 - 便于版本控制和分享
- 提交到 OpenClaw Skills 生态 - 让更多用户发现和使用你的 skill
- 通过 ClawHub 平台发布 - OpenClaw 的官方 Skills 管理平台
详细步骤请查看 GITHUB.md 文件。
重要提示:使用本 Skill 前,请务必访问 https://data.diemeng.chat/ 注册并获取 API Key!