A-share query tool based on baostock data source, providing portfolio management, market data query and other functions.
- ✅ 持仓管理: 基于SQLite的持仓记录和实时盈亏计算
- ✅ 股票查询: 支持沪深北三大交易所+ETF的名称/代码互查
- ✅ 基本信息: 查询股票详细信息
- ✅ 交易日查询: 查询A股交易日历
- ✅ K线查询: A股日K/周K/月K数据查询
- ✅ 指数查询: 主要指数信息查询
- ✅ 行业查询: 股票行业分类查询
- ✅ 智能缓存: 每日自动刷新股票基本信息
- ✅ 灵活搜索: 多条件筛选股票
- Python 3.9+
- uv (用于环境管理)
# 1. 克隆或进入项目目录
cd cn-stock-toolbox
# 2. 安装依赖
uv sync
# 3. (可选,人类用户手动安装) 安装shell alias,方便使用
# chmod +x install.sh
# ./install.sh
# source ~/.bashrc # 或 ~/.zshrc# 方式1: 使用uv run(无需安装alias)
uv run scripts/cnstk.py --help
# 方式2: 使用alias(已安装install.sh)
cnstk --helpcnstk refreshrefresh只刷新股票基础信息,不刷新行业字段- 首次使用或距离上次刷新超过 1 个月时,自动刷新会执行与
refresh一致的全量基础信息刷新
cnstk refresh-industriesindustry <code>会优先读取本地缓存;如果缓存中没有行业信息,会按需查询并写回 SQLiterefresh-industries会全量刷新数据库中所有股票的行业信息,执行时间可能较长
# 按名称搜索
cnstk search --name 科技
# 按行业搜索
cnstk search --industry 半导体
# 组合搜索
cnstk search --name 银行 --industry 金融 --market sh# 添加持仓
cnstk portfolio add sh.600000 100 10.50
# 查看持仓
cnstk portfolio list
# 查看盈亏
cnstk portfolio profit# 自动识别代码或名称查询
cnstk stock query 浦发银行
cnstk stock query sh.600000
# 名称查代码
cnstk stock name-to-code 贵州茅台
# 代码查名称
cnstk stock code-to-name sh.600519
# 基本信息(也支持名称)
cnstk stock info sh.600519
cnstk stock info 贵州茅台stock query会自动识别输入是股票代码还是名称- 名称不完整或有多个候选时,会打印候选股票列表
- 打印股票基本信息时会附带最近可用交易日行情;如果当天不是交易日,会自动回退到上个交易日并注明
# K线(默认最近60天)
cnstk kline sh.600000
# 指数
cnstk index sh.000001
# 交易日
cnstk trading-day --date 2024-03-08
# 行业(按需缓存)
cnstk industry sh.600000本项目使用 baostock 提供的免费A股数据接口。
- xiaoski - GitHub
- 项目地址: https://github.com/xiaoski/cn-stock-toolbox
MIT License