catalog/repos/1018466411--openclaw-stock-data-skill.md

367 lines
10 KiB
Markdown
Raw Normal View History

2026-04-06 19:01:37 +08:00
# A股市场数据API工具
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
`股票数据` `A股` `可转债` `ETF` `实时行情` `Python`
2026-04-06 15:47:33 +08:00
# 股票数据 API Skill for OpenClaw
这是一个为 OpenClaw 等 Agent 工具设计的股票数据 Skill提供了 A 股市场及周边资产的完整数据访问能力。
## 📥 安装方法
```bash
npx skills add https://github.com/1018466411/openclaw-stock-data-skill
```
安装时按提示选择:
1. 选择 **openclaw**
2. 选择 **global** 应用于所有 Agent
2026-04-06 19:01:37 +08:00
3. 复制到所有 Agent**yes**
2026-04-06 15:47:33 +08:00
## 📋 数据分类概览
2026-04-06 19:01:37 +08:00
2. **股票实时数据**
- 实时行情快照(价格、五档盘口等)、集合竞价、推送历史、停牌信息等
2026-04-06 15:47:33 +08:00
- 典型函数:`get_stock_snapshot_daily`(实时快照)、`get_call_auction``get_basic_snapshot`(集合竞价快照)、`get_stock_snapshot_push_history`
2026-04-06 19:01:37 +08:00
3. **股票历史数据**
- 日 K 线(前复权/不复权)、分钟级历史、日度财务因子、复权因子、历史快照等
2026-04-06 15:47:33 +08:00
- 典型函数:`get_daily_data``get_history_data``get_finance_data``get_daily_adj_data``get_adj_factor`
2026-04-06 19:01:37 +08:00
3. **可转债历史和实时数据**
- 可转债日线、分钟级行情、日度指标(纯债价值、转股溢价等)、收盘快照、基础列表等
2026-04-06 15:47:33 +08:00
- 典型函数:`get_bond_daily``get_bond_history``get_bond_indicator_daily``get_bond_closing_snapshot``get_bond_list`
4. **ETF 数据**
- ETF 列表数据
- ETF 日线与分钟级历史行情
- 典型函数:`get_etf_list``get_etf_daily``get_etf_history`
2026-04-06 19:01:37 +08:00
5. **指数历史数据**
- 指数分钟级历史行情(支持多种时间粒度)
2026-04-06 15:47:33 +08:00
- 典型函数:`get_index_history`
2026-04-06 19:01:37 +08:00
6. **龙虎榜数据**
- 龙虎榜机构明细数据
2026-04-06 15:47:33 +08:00
- 典型函数:`get_dragon_tiger`
7. **WebSocket 实时快照**
- 通过 WebSocket 协议实时推送全市场股票快照
2026-04-06 19:01:37 +08:00
- 支持 Gzip 压缩JSON 格式字段简写cd, lp, vo 等)
2026-04-06 15:47:33 +08:00
- 连接地址:`wss://data.diemeng.chat/ws/stock/snapshot?token=YOUR_API_KEY`
2026-04-06 19:01:37 +08:00
> 此外还提供**条件搜索等高级能力**,详见 `stock_api.py` 与 `skill.json`。
2026-04-06 15:47:33 +08:00
## 🚀 快速开始
### 1. 注册账号并开通接口权限
**重要:使用本 Skill 前,必须先注册账号并为需要使用的接口开通对应权限。**
1. 访问 [https://data.diemeng.chat/](https://data.diemeng.chat/)
2. 注册新账号或登录现有账号
2026-04-06 19:01:37 +08:00
3. 在**个人中心 / 权限或套餐管理**中,按需开通以下数据大类的访问权限:
2026-04-06 15:47:33 +08:00
- 股票历史数据(行情、财务、估值等)
- 股票实时数据(集合竞价、基础快照等)
- 可转债数据(历史 & 实时)
- ETF 数据
- 指数历史数据
2026-04-06 19:01:37 +08:00
4.**API 管理**中创建并复制您的 **API Key**
2026-04-06 15:47:33 +08:00
> 如果未为某一类接口开通权限,即使配置了 API Key也会收到 403 或权限不足的错误。
### 2. 在 Skill 页面配置 API Key推荐
在 OpenClaw / ClawHub 中启用本 Skill 时:
1. 打开 `openclaw-stock-skill` 的 Skill 配置页面
2. 在参数面板中将从 `data.diemeng.chat` 获取的 **API Key** 填入对应字段(通常是 `apiKey``STOCK_API_KEY`
3. 保存后,网关会自动将该值注入到运行环境中(映射为 `STOCK_API_KEY` 环境变量)
这样使用本 Skill 时,无需在本机手动配置环境变量。
### 3. (可选)在本地代码中直接使用 API Key
如果你在自己的 Python 项目中直接使用 `stock_api.py`,可以按以下方式配置:
#### 方式一:配置文件(推荐用于 Linux 无界面环境)
在代码同级目录下创建一个名为 `config.json` 的文件(可复制 `config.json.template`),内容如下:
```json
{
"api_key": "your_api_key_here"
}
```
#### 方式二:环境变量
```bash
# 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
```
#### 方式三:在代码中设置
```python
import os
os.environ["STOCK_API_KEY"] = "your_api_key_here"
```
### 4. 安装依赖
```bash
pip install requests
```
或使用 requirements.txt
```bash
pip install -r requirements.txt
```
## 📖 使用示例
### 基本使用
```python
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']}")
```
### 获取多只股票数据
```python
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"
)
```
### 获取历史分时数据(股票分钟级)
```python
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"
)
```
### 获取当天分时数据(全市场实时)
```python
from stock_api import get_realtime_history
# 建议使用定时任务按时间拉取,一次获取全市场一分钟的数据
# 定时任务建议在每分钟的 2-5 秒后拉取上一分钟数据15秒后可复拉一次确保准确性
data = get_realtime_history(
trade_time="2026-03-15 09:31:00"
)
```
### 获取财务数据(股票日度因子)
```python
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']}")
```
### 获取可转债数据
```python
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 数据
```python
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",
)
2026-04-06 19:01:37 +08:00
# 3. 获取 ETF 5 分钟级历史数据
2026-04-06 15:47:33 +08:00
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",
)
```
### 获取指数历史数据
```python
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`
### 分时级别
2026-04-06 19:01:37 +08:00
- `1min` - 1 分钟
- `5min` - 5 分钟(默认)
- `15min` - 15 分钟
- `30min` - 30 分钟
- `60min` - 60 分钟
2026-04-06 15:47:33 +08:00
## 📚 完整 API 文档
更多详细的 API 文档请访问:[https://data.diemeng.chat/](https://data.diemeng.chat/)
## ⚠️ 注意事项
1. **API Key 安全**:请妥善保管您的 API Key不要将其提交到公开代码仓库
2. **请求频率**:请注意 API 的请求频率限制,避免过于频繁的请求
3. **数据范围**:部分接口支持查询全市场数据,但建议使用分页参数控制返回数量
4. **错误处理**:所有函数在出错时会抛出异常,请做好异常处理
## 🐛 常见问题
2026-04-06 19:01:37 +08:00
### Q提示"未找到 API Key"
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
A请确保已设置环境变量 `STOCK_API_KEY`,或访问 [https://data.diemeng.chat/](https://data.diemeng.chat/) 注册并获取 API Key。
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
### Q返回 401 未授权错误
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
A请检查 API Key 是否正确,并确保已在个人中心激活 API 访问权限。
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
### Q返回 403 权限不足
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
A您的账号可能没有访问该接口的权限请检查您的账号权限设置。
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
### Q如何获取更多数据
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
A使用 `page``page_size` 参数进行分页查询,或联系管理员提升账号权限。
2026-04-06 15:47:33 +08:00
## 📝 更新日志
### v1.0.0 (2024-01-XX)
- 初始版本发布
- 支持股票列表、日K线、历史分时、财务数据等核心功能
- 支持股票搜索查询
## 📄 许可证
MIT License
## 🔗 相关链接
- API 文档:[https://data.diemeng.chat/](https://data.diemeng.chat/)
- 注册账号:[https://data.diemeng.chat/](https://data.diemeng.chat/)
- GitHub 仓库:[查看项目源码](https://github.com)(创建仓库后更新此链接)
- GitHub 推送指南:[GITHUB.md](./GITHUB.md)
## 📤 推送到 GitHub
2026-04-06 19:01:37 +08:00
**建议推送到 GitHub** OpenClaw 有官方的 Skills 生态,你可以:
2026-04-06 15:47:33 +08:00
1. **推送到个人 GitHub 仓库** - 便于版本控制和分享
2026-04-06 19:01:37 +08:00
2. **提交到 OpenClaw Skills 生态** - 让更多用户发现和使用你的 Skill
2026-04-06 15:47:33 +08:00
3. **通过 ClawHub 平台发布** - OpenClaw 的官方 Skills 管理平台
详细步骤请查看 [GITHUB.md](./GITHUB.md) 文件。
---
2026-04-06 19:01:37 +08:00
**重要提示**:使用本 Skill 前,请务必访问 [https://data.diemeng.chat/](https://data.diemeng.chat/) 注册并获取 API Key