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

10 KiB
Raw Blame History

A股市场数据API工具

股票数据 A股 可转债 ETF 实时行情 Python

股票数据 API Skill for OpenClaw

这是一个为 OpenClaw 等 Agent 工具设计的股票数据 Skill提供了 A 股市场及周边资产的完整数据访问能力。

📥 安装方法

npx skills add https://github.com/1018466411/openclaw-stock-data-skill

安装时按提示选择:

  1. 选择 openclaw
  2. 选择 global 应用于所有 Agent
  3. 复制到所有 Agentyes

📋 数据分类概览

  1. 股票实时数据

    • 实时行情快照(价格、五档盘口等)、集合竞价、推送历史、停牌信息等
    • 典型函数:get_stock_snapshot_daily(实时快照)、get_call_auctionget_basic_snapshot(集合竞价快照)、get_stock_snapshot_push_history
  2. 股票历史数据

    • 日 K 线(前复权/不复权)、分钟级历史、日度财务因子、复权因子、历史快照等
    • 典型函数:get_daily_dataget_history_dataget_finance_dataget_daily_adj_dataget_adj_factor
  3. 可转债历史和实时数据

    • 可转债日线、分钟级行情、日度指标(纯债价值、转股溢价等)、收盘快照、基础列表等
    • 典型函数:get_bond_dailyget_bond_historyget_bond_indicator_dailyget_bond_closing_snapshotget_bond_list
  4. ETF 数据

    • ETF 列表数据
    • ETF 日线与分钟级历史行情
    • 典型函数:get_etf_listget_etf_dailyget_etf_history
  5. 指数历史数据

    • 指数分钟级历史行情(支持多种时间粒度)
    • 典型函数:get_index_history
  6. 龙虎榜数据

    • 龙虎榜机构明细数据
    • 典型函数:get_dragon_tiger
  7. WebSocket 实时快照

    • 通过 WebSocket 协议实时推送全市场股票快照
    • 支持 Gzip 压缩JSON 格式字段简写cd, lp, vo 等)
    • 连接地址:wss://data.diemeng.chat/ws/stock/snapshot?token=YOUR_API_KEY

此外还提供条件搜索等高级能力,详见 stock_api.pyskill.json

🚀 快速开始

1. 注册账号并开通接口权限

重要:使用本 Skill 前,必须先注册账号并为需要使用的接口开通对应权限。

  1. 访问 https://data.diemeng.chat/
  2. 注册新账号或登录现有账号
  3. 个人中心 / 权限或套餐管理中,按需开通以下数据大类的访问权限:
    • 股票历史数据(行情、财务、估值等)
    • 股票实时数据(集合竞价、基础快照等)
    • 可转债数据(历史 & 实时)
    • ETF 数据
    • 指数历史数据
  4. API 管理中创建并复制您的 API Key

如果未为某一类接口开通权限,即使配置了 API Key也会收到 403 或权限不足的错误。

2. 在 Skill 页面配置 API Key推荐

在 OpenClaw / ClawHub 中启用本 Skill 时:

  1. 打开 openclaw-stock-skill 的 Skill 配置页面
  2. 在参数面板中将从 data.diemeng.chat 获取的 API Key 填入对应字段(通常是 apiKeySTOCK_API_KEY
  3. 保存后,网关会自动将该值注入到运行环境中(映射为 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",
)

# 3. 获取 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.SH688000.SH
  • 深圳:000001.SZ300000.SZ
  • 北京:430000.BJ830000.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/

⚠️ 注意事项

  1. API Key 安全:请妥善保管您的 API Key不要将其提交到公开代码仓库
  2. 请求频率:请注意 API 的请求频率限制,避免过于频繁的请求
  3. 数据范围:部分接口支持查询全市场数据,但建议使用分页参数控制返回数量
  4. 错误处理:所有函数在出错时会抛出异常,请做好异常处理

🐛 常见问题

Q提示"未找到 API Key"

A请确保已设置环境变量 STOCK_API_KEY,或访问 https://data.diemeng.chat/ 注册并获取 API Key。

Q返回 401 未授权错误

A请检查 API Key 是否正确,并确保已在个人中心激活 API 访问权限。

Q返回 403 权限不足

A您的账号可能没有访问该接口的权限请检查您的账号权限设置。

Q如何获取更多数据

A使用 pagepage_size 参数进行分页查询,或联系管理员提升账号权限。

📝 更新日志

v1.0.0 (2024-01-XX)

  • 初始版本发布
  • 支持股票列表、日K线、历史分时、财务数据等核心功能
  • 支持股票搜索查询

📄 许可证

MIT License

🔗 相关链接

📤 推送到 GitHub

建议推送到 GitHub OpenClaw 有官方的 Skills 生态,你可以:

  1. 推送到个人 GitHub 仓库 - 便于版本控制和分享
  2. 提交到 OpenClaw Skills 生态 - 让更多用户发现和使用你的 Skill
  3. 通过 ClawHub 平台发布 - OpenClaw 的官方 Skills 管理平台

详细步骤请查看 GITHUB.md 文件。


重要提示:使用本 Skill 前,请务必访问 https://data.diemeng.chat/ 注册并获取 API Key