mcpField
S
shanxi-securities-tushare

shanxi-securities-tushare

github.com/truehooha数据与数据库636 次安装4 周前更新
代码仓库

关于 shanxi-securities-tushare

山西证券 Tushare 数据技能将自然语言财经数据请求整理为取数工作流,面向需要获取和交付市场、财务及宏观数据的用户。它先检查令牌和 SDK 环境,再选择 SDK 或 HTTP 方式,并支持结构化交付与数据导出。

主要功能

  1. 01环境与令牌校验
  2. 02解析标的和日期参数
  3. 03按接口表选择 API
  4. 04SDK 或 HTTP 取数
  5. 05整理并导出 CSV、Parquet

适用场景

  1. 01获取股票、指数或 ETF 行情
  2. 02批量查询财务与估值指标
  3. 03提取资金流和宏观数据
  4. 04导出回测或后续分析数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/truehooha/shanxi-securities-tushare-skill --skill shanxi-securities-tushare

安装后在 Claude Code 中输入/shanxi-securities-tushare确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
API接口对应表.md
A股日线行情.md
GDP数据.md
Hibor利率.md
IPO新股列表.md
Libor拆借利率.md
LPR贷款基础利率.md
Shibor利率数据.md
Shibor报价数据.md
上市公司基本信息.md
上市公司管理层.md
业绩快报.md
业绩预告.md
个股严重异常波动.md
个股异常波动.md
个股资金流向.md
主营业务构成.md
交易所重点提示证券.md
仓单日报.md
做市借券交易汇总.md
公募基金净值.md
公募基金分红.md
公募基金列表.md
公募基金持仓数据.md
公募基金管理人.md
分红送股.md
利润表.md
券商月度金股.md
前十大流通股东.md
前十大股东.md

详细介绍

来自项目 README

山西证券 Tushare 数据技能

把自然语言财经数据请求转为可执行的 Tushare 工作流:环境校验 → 理解任务 → 解析标的 → 选接口 → 校验参数 → 取数 → 整理 → 解释 → 交付。

典型场景

本 skill 只负责取数与数据交付;若用户要求对标的进行分析/评估/对比/深度研究,应使用 sxsc-tushare-analysis skill。

  • 获取单只股票/指数/ETF 的行情、估值、活跃度数据
  • 多标的数据的批量取数(业绩、估值、涨幅、ROE 等字段)
  • 获取财务数据(利润趋势、ROE、毛利率、现金流)
  • 获取资金流数据(北向、主力、龙虎榜、板块吸金)
  • 获取板块轮动、指数成分股数据
  • 获取宏观数据(CPI / PPI / GDP / PMI / 利率 / 货币供应量)
  • 数据导出(CSV / Parquet)供回测或后续分析

核心工作流

每次执行按这个顺序:

  1. 环境校验 — 检查 scripts/env_check.json 缓存是否存在:
    • 有 → 直接读取,取 mode 字段(sdk/http)决定取数方式。
    • 无 → 先运行 python scripts/check_env.py 生成缓存,再读取。
    • 退出码非 0(token 缺失)→ 停下,先提示用户配置 SXSC_TUSHARE_TOKEN,不得进入取数。
  2. 理解任务 — 识别用户要解决什么问题(见下方"任务分类")。
  3. 解析标的 — 名称/代码 → 标准 ts_code(如 600519.SH);市场、时间窗、字段按默认值补全。
  4. 查表选接口 — 先查 references/API接口对应表.md 拿到 pro.api_name 与对应文档路径,禁止凭记忆写接口。
  5. 校验参数 — 日期 YYYYMMDD、起止顺序、冲突裁决、未来日期裁剪(规则见下方"关键默认值"第 71–73 行)。
  6. 取数执行 — 按第 1 步的 mode 选择方式:
    • sdk:参考 scripts/ 下模板(stock_data_demo.py、fund_data_demo.py、index_sector_demo.py、fin_report_demo.py、moneyflow_demo.py)的 SDK 函数,走 references/调取数据.md 的 Python SDK 节。
    • http:参考模板中的 HTTP 函数(http_call),走 references/调取数据.md 的 HTTP 协议节(无 SDK 依赖)。
  7. 结构化交付 — 一句话结论 → 口径 → 关键指标/表 → 风险/限制 → 文件路径。

关键原则:先想"这是什么任务、走哪条工作流",再想"用哪个接口"。永远不要先翻接口名。取数前先确认环境就绪(第 1 步),token 缺失时任何取数都无意义。

任务分类

任务类型典型表达
行情/趋势数据取最近行情、涨跌、K线、量能数据
基本资料什么公司、什么时候上市、行业
财务数据拉财报、利润、ROE、现金流
估值数据取 PE/PB、股息率数据
资金流/市场行为数据取北向、主力、龙虎榜、板块吸金数据
板块/指数/主题数据取板块成分股、指数成分、概念数据
涨跌停/情绪数据取涨停梯队、连板、活跃度数据
公告/新闻/研报公告、催化、新闻面(受限:仅告知边界 + 替代路径)
宏观/跨市场CPI、PMI、利率、港股、美股
数据导出/研究准备拉 CSV、回测数据表、Parquet

若用户要求对标的进行分析/评估/对比/深度研究,应切换至 sxsc-tushare-analysis skill。

关键默认值

模糊中文默认口径
"最近"/"近期"近 20 个交易日
"最近一段时间"/"最近三个月"近 60 个交易日
"今年"当年 1 月 1 日至今
"财报"/"业绩"最近 8 个季度 + 最近年度
"资金流最近如何"近 5–20 个交易日
"宏观最近如何"最近 6–12 期
行业分类申万/中信(更稳定)
概念分类同花顺/东方财富(主题更热)
证券代码600519.SH / 000001.SZ 标准格式

裸代码(如 000001)能按规则补全就补全并说明,不能补全就最小澄清。
日期冲突(trade_date 与 start_date/end_date 同给)先裁决再调用。
未来日期自动裁剪到最近可用日期并提示用户。

What this skill is NOT for

  • 买卖建议、替代投资顾问
  • 自动下单或交易执行
  • 实时行情(仅 T-1 日数据)
  • 回测引擎、组合优化系统的实现
  • 无 token / 无权限时伪造数据

环境校验

执行任取数任务前,先检查环境是否可用(结果缓存到 scripts/env_check.json,避免每次重复校验):

python scripts/check_env.py          # token_set=true 则直接复用缓存,否则实时检测
python scripts/check_env.py --force  # 强制重新校验并覆盖缓存
python scripts/check_env.py --check  # 只校验不写缓存

校验项:

项必需缺失后果
SXSC_TUSHARE_TOKEN 已设置是无法执行 skill,返回非零退出码,需先配置环境变量
sxsc_tushare 库已安装否有 → 走 SDK 方式(sxsc_tushare);无 → 走 HTTP 协议方式
  • 退出码非 0 表示 token 缺失,先解决环境再取数。
  • 缓存仅存储 token_set 状态与 SDK 安装信息,不保存 token 本身或其哈希;token_set=true 时直接复用缓存。
  • 取数方式按校验结果 mode 字段选择:sdk 用 references/调取数据.md 的 Python SDK 节,http 用 HTTP 协议节。

References 快速索引

用途路径
接口名 ↔ 文档映射references/API接口对应表.md
安装与 HTTP 调取references/调取数据.md
股票调用模板scripts/stock_data_demo.py
基金调用模板scripts/fund_data_demo.py
指数/行业调用模板scripts/index_sector_demo.py
财务三表调用模板scripts/fin_report_demo.py
资金流/龙虎榜调用模板scripts/moneyflow_demo.py

Code Examples

初始化与日线
import sxsc_tushare as sx
import os

token = os.getenv('SXSC_TUSHARE_TOKEN') or 'YOUR_TOKEN_HERE'
sx.set_token(token)
pro = sx.get_api(env='prd')  # 'prd' 仿真, 'qa' 生产

# 股票列表
pro.stock_basic(exchange='', list_status='L',
                fields='ts_code,symbol,name,area,industry,list_date')

# 日线行情(ah_vol/ah_amount 为盘后成交量/额,2026-07-06 起有数据,需显式用 fields 指定)
pro.daily(ts_code='600519.SH', start_date='20250101', end_date='20251231')
# 取盘后数据示例:
# pro.daily(trade_date='20260707', fields='ts_code,open,close,ah_vol,ah_amount')
错误处理
try:
    df = pro.daily(ts_code='600519.SH', start_date='20250101', end_date='20251231')
except Exception as e:
    print(f"获取数据失败:{e}")

空结果不一定是失败:可能是非交易日、标未上市、参数错误、权限不足 —— 区分清楚再下结论。

评论

支持 Markdown