| name | cn-stock-toolbox |
| description | cn-stock-toolbox - A-share query and portfolio management tool based on baostock |
| metadata | {"icon":"📈","requires":["uv"],"category":"finance","tags":["stock","a-share","baostock","portfolio"]} |
cn-stock-toolbox Skill
A-share query tool based on baostock data source, providing portfolio management, market data query and other functions.
前置条件
必须安装
安装说明
cd /path/to/cn-stock-toolbox
uv sync
命令参考
通用命令格式
uv run scripts/cnstk.py <command> [options]
cnstk <command> [options]
刷新股票基本信息
uv run scripts/cnstk.py refresh
关于刷新机制说明:
- 首次刷新:从未刷新过或距离上次刷新超过1个月时,会执行完整刷新(获取所有股票基本信息)
- 每日刷新:每次运行命令前,会自动执行差异刷新(仅更新数据库中不存在的新股票)
- 差异刷新:速度较快,仅获取最新股票列表并补充新增股票
刷新股票行业信息
uv run scripts/cnstk.py refresh-industries
industry <code> 会优先读取本地缓存;若缓存中没有行业信息,则按需查询并写回 SQLite
refresh 不再刷新行业信息,只刷新股票基础信息
灵活查询股票
uv run scripts/cnstk.py search --name 科技
uv run scripts/cnstk.py search --industry 半导体
uv run scripts/cnstk.py search --market sh
uv run scripts/cnstk.py search --type etf
uv run scripts/cnstk.py search --name 银行 --industry 金融
持仓管理
uv run scripts/cnstk.py portfolio add <股票代码> <数量> <买入价格> [买入日期]
uv run scripts/cnstk.py portfolio add sh.600000 100 10.50 2024-01-01
uv run scripts/cnstk.py portfolio remove <持仓ID>
uv run scripts/cnstk.py portfolio list
uv run scripts/cnstk.py portfolio profit
股票查询
uv run scripts/cnstk.py stock query <股票代码或名称>
uv run scripts/cnstk.py stock name-to-code <股票名称>
uv run scripts/cnstk.py stock code-to-name <股票代码>
uv run scripts/cnstk.py stock info <股票代码或名称>
stock query 会自动判断输入更像股票代码还是名称
- 如果名称不完整或匹配到多个股票,会输出候选列表供用户或 agent 继续选择
- 股票基本信息会附带最近可用交易日行情;如果当天不是交易日,会自动显示上个交易日行情并注明
行情查询
uv run scripts/cnstk.py kline <股票代码>
uv run scripts/cnstk.py kline <股票代码> --start 2024-01-01 --end 2024-03-01 --freq d
uv run scripts/cnstk.py index <指数代码>
uv run scripts/cnstk.py trading-day --date 2024-03-08
uv run scripts/cnstk.py trading-day --start 2024-01-01 --end 2024-03-01
uv run scripts/cnstk.py industry <股票代码>
Agent使用指南
任务示例
1. 查询股票代码
用户: "帮我查一下贵州茅台的股票代码"
Agent:
1. 使用: `uv run scripts/cnstk.py stock name-to-code 贵州茅台`
2. 返回结果给用户
2. 管理持仓
用户: "我买入了100股招商银行,价格35元,帮我记录一下"
Agent:
1. 使用: `uv run scripts/cnstk.py portfolio add sh.600036 100 35.00`
2. 确认添加成功
3. 查看持仓盈亏
用户: "帮我看看现在持仓盈亏情况"
Agent:
1. 使用: `uv run scripts/cnstk.py portfolio profit`
2. 返回盈亏详情给用户
4. 查询K线
用户: "帮我看看腾讯最近30天的K线"
Agent:
1. 使用: `uv run scripts/cnstk.py kline hk.00700 --start <30天前日期>`
2. 返回K线数据
数据持久化
- SQLite数据库位置:
data/portfolio.db
- 包含: 持仓记录、股票基本信息缓存
- 股票基本信息自动每日刷新
错误处理
常见错误及解决方法
-
baostock登录失败
-
数据库文件无法创建
-
股票代码格式错误
- 正确格式:
sh.600000 (上海)、sz.000001 (深圳)、bj.800000 (北京)
Skill元数据