BaoStock Finance Skill
This skill wraps BaoStock (http://baostock.com) to provide easy access to Chinese A-share market data. BaoStock is a stable domestic data source with no compilation requirements.
What It Does
- - Real-time quotes: Latest price, volume, change for A-shares
- Historical data: Daily, weekly, monthly, minute bars
- K-line data: OHLC with adjust factors (qfq, hfq)
- Financial data: Basic indicators, PE/PB, market cap
- Index data: SSE, SZSE, CSI indices
- Stock basics: List of A-shares, industry classification
When to Use
User asks like:
- - "查询贵州茅台最新股价"
- "获取宁德时代最近30天的日线数据"
- "列出所有银行股"
- "分析中国平安的市盈率"
- "获取上证指数历史数据"
How to Invoke
CODEBLOCK0
Dependencies
- - Python 3.8+
- INLINECODE0 package (pip install baostock)
- INLINECODE1 (should be installed)
CODEBLOCK1
Data Source
BaoStock fetches data from BaoXin (宝新) data provider. It is:
- - ✅ Domestic source, no external network issues
- ✅ Free for non-commercial use
- ✅ Supports minute-level data
- ⚠️ Some delay for real-time data (~15 min for minute bars)
Output Format
Default: JSON
CODEBLOCK2
For historical data:
CODEBLOCK3
Integration with OpenClaw
This skill can be assigned to finance.yaml role:
CODEBLOCK4
Limitations
- - Real-time quotes are actually 15-min delayed (free tier)
- Some stocks may have missing data (new listings)
- No direct access to order book (Level 2)
- API rate limits: ~100 requests/minute
Troubleshooting
| Issue | Check |
|---|
| Import error | INLINECODE3 |
| No data returned |
Check symbol format (sh/sz prefix) and trading day |
| Network error | BaoStock uses domestic servers; should be fine |
Examples
CODEBLOCK5
BaoStock 金融技能
该技能封装了BaoStock(http://baostock.com),提供便捷的中国A股市场数据访问。BaoStock是一个稳定的国内数据源,无需编译。
功能说明
- - 实时行情:A股最新价格、成交量、涨跌幅
- 历史数据:日线、周线、月线、分钟线
- K线数据:包含复权因子(前复权、后复权)的开高低收数据
- 财务数据:基本指标、市盈率/市净率、市值
- 指数数据:上证、深证、中证指数
- 股票基础信息:A股列表、行业分类
适用场景
用户提问如:
- - 查询贵州茅台最新股价
- 获取宁德时代最近30天的日线数据
- 列出所有银行股
- 分析中国平安的市盈率
- 获取上证指数历史数据
调用方式
bash
单只股票行情
baostock --symbol sh600519 --type quote
历史K线(日线)
baostock --symbol sh600519 --type history --start-date 2024-01-01 --end-date 2024-12-31
分钟数据(5分钟间隔)
baostock --symbol sh600519 --type history --frequency 5 --start-date 2024-03-01
股票列表(全部A股)
baostock --type stock-list
指数数据
baostock --symbol sh000001 --type index-history --start-date 2024-01-01
依赖项
- - Python 3.8+
- baostock 包(pip install baostock)
- pandas(应已安装)
bash
pip3 install baostock
数据来源
BaoStock从宝新数据提供商获取数据。其特点:
- - ✅ 国内数据源,无外网访问问题
- ✅ 非商业用途免费
- ✅ 支持分钟级数据
- ⚠️ 实时数据有一定延迟(分钟线约延迟15分钟)
输出格式
默认格式:JSON
json
{
symbol: sh600519,
name: 贵州茅台,
price: 1680.50,
change: 1.23,
pct_change: 0.07,
volume: 1234567,
amount: 2000000000,
timestamp: 2025-03-18 15:00:00
}
历史数据格式:
json
[
{
date: 2025-03-18,
open: 1670.00,
high: 1690.00,
low: 1668.50,
close: 1680.50,
volume: 1234567,
amount: 2000000000
}
]
与OpenClaw集成
该技能可分配给finance.yaml角色:
yaml
plugins:
allow:
- baostock-skill
- feishu-doc
- feishu-bitable
限制说明
- - 实时行情实际延迟15分钟(免费版)
- 部分股票可能存在数据缺失(新股上市)
- 无法直接获取订单簿数据(Level 2)
- API速率限制:约100次请求/分钟
故障排除
| 问题 | 检查项 |
|---|
| 导入错误 | pip3 install baostock |
| 无数据返回 |
检查股票代码格式(sh/sz前缀)及交易日 |
| 网络错误 | BaoStock使用国内服务器,通常无问题 |
使用示例
bash
获取所有股票名称和代码
baostock --type stock-list --output stocks.csv
获取最近30天的日线历史数据
baostock --symbol sh600519 --type history --days 30
获取今日5分钟K线(如果市场开盘)
baostock --symbol sh600519 --type history --frequency 5