---
name: tushare-data
description: 面向中文自然语言的 Tushare 数据研究技能。用于把“看看这只股票最近怎么样”“帮我查财报趋势”“最近哪个板块最强”“北向资金在买什么”“给我导出一份行情数据”这类请求，转成可执行的数据获取、清洗、对比、筛选、导出与简要分析流程。适用于 A 股、指数、ETF/基金、财务、估值、资金流、公告新闻、板块概念与宏观数据等研究场景。
author: tushare.pro
version: 1.1.12
credentials:
  - name: TUSHARE_TOKEN
    description: Tushare Token，用于认证和授权访问Tushare数据服务。
    how_to_get: "https://tushare.pro/register"
requirements:
  python: 3.7+
  packages:
    - name: tushare
  environment_variables:
    - name: TUSHARE_TOKEN
      required: false
      sensitive: true
  network_access: true
---

# tushare-data

把自然语言财经数据请求，转成可执行的 Tushare 数据工作流。

这是一个面向自然语言的金融数据研究 skill。


## What this skill is for

使用这个 skill 的典型场景：

- 看某只股票、指数、ETF 最近走势
- 查公司基本资料、估值、财务趋势
- 做多标的横向对比
- 看资金流、北向资金、龙虎榜、板块强弱
- 梳理公告、新闻、研报、政策线索
- 查看 CPI / PPI / PMI / 社融 / 利率等宏观数据
- 导出 CSV / parquet 供后续分析或回测使用
- 生成简洁研究摘要，而不是只吐原始字段表

先理解用户要解决什么问题，再去选接口、取数、整理、解释、交付。

***

## When to use

当用户表达以下意图时，优先使用本 skill：

### 行情 / 趋势

- 看下 XX 最近怎么样
- XX 这段时间涨得怎么样
- 今年以来表现如何
- 最近有没有放量
- 这票最近强不强

### 财务 / 估值 / 公司质量

- 看下 XX 财报
- 最近几个季度利润趋势
- 财务质量怎么样
- 现金流好不好
- 现在估值算高吗
- 帮我看 PE / PB / ROE / 毛利率

### 对比 / 排行 / 筛选

- XX 和 YY 谁更强
- 帮我横向比较一下
- 哪些公司利润增长更快
- 帮我筛一下高 ROE 低负债
- 给我排个前十

### 板块 / 指数 / 主题

- 最近哪个板块最强
- 半导体最近怎么样
- 机器人为什么涨
- 指数成分股有哪些
- 哪些主题最热

### 资金流 / 情绪

- 最近资金在买什么
- 北向资金最近流向哪里
- 哪个板块最吸金
- 主力资金流入最多的是谁
- 龙虎榜上有什么看点

### 公告 / 新闻 / 研报 / 政策

- 最近有什么公告
- 帮我梳理下 XX 公告
- 最近有没有什么催化
- 最近新闻面怎么样
- 最近有什么重要政策

### 宏观 / 跨市场

- 最近宏观环境怎么样
- CPI / PMI 最近怎么看
- 当前市场风格偏什么
- 大盘环境偏多还是偏空
- 港股 / 美股 / 美债最近怎么样

### 数据导出 / 研究准备

- 给我导出一份行情数据
- 把近两年日线拉成 CSV
- 生成可回测的数据表
- 拉一个研究表供后续分析

***

## What this skill is NOT for

这个 skill 不适合：

- 直接给买卖建议或替代投资顾问
- 自动下单或执行交易
- 需要毫秒级实时交易决策的场景
- 复杂回测引擎、组合优化系统本身的实现（那是另一个工程）
- 在没有 Tushare 权限/积分支持的情况下强行伪造数据

如果数据权限不够、接口不可用或时间范围不合理，要明确说出限制，不要硬编。

***

## Natural-language trigger guide

即使用户完全不说 `tushare`、`financials`、`macro` 这些术语，只要意图符合以下含义，也应该触发本 skill。

### 常见口语触发

- 看看这个股票最近怎么样
- 给我快速研究一下 XX
- 上次说的那只票现在什么情况
- 帮我看下财报
- 最近哪个板块最强
- 北向最近在买什么
- 有什么催化消息
- 这个公司值不值得重点看
- 给我拉份数据
- 导出成 CSV
- 帮我筛一批票
- 把这几个公司对比一下

### 中文自然语言优先原则

用户说人话时，先理解任务，不要先回到接口名和字段名。
优先把：

- “最近” 解释成合理时间窗
- “财报” 解释成最近 8 个季度 / 最近年度
- “强不强” 解释成走势 + 相对强弱 + 活跃度
- “资金关注” 解释成净流入、活跃成交、龙虎榜/北向等可用口径

如果任务有多个合理解释，再做最小澄清。

***

## Environment check

在真正请求数据之前，先做前置校验：

1. 检查 Python 是否可用， 版本要求 3.7+
2. 检查 `tushare` 包是否已安装·
3. 检查 `TUSHARE_TOKEN` 是否存在.
4. 必要时做一次轻量接口冒烟测试（如交易日历 / 基础接口）
5. 如用户请求高权限接口，提前提示可能存在积分/权限限制

若缺失 token，直接提示最短修复路径，例如：

```bash
export TUSHARE_TOKEN=your_token
```

不要等到主查询跑失败了才暴露环境问题。

***

## Intent taxonomy

先识别任务类型，再决定接口组合。

### 1. 行情 / 趋势

典型问题：

- 最近走势怎么样
- 今年涨了多少
- 最近波动大不大
- 最近有没有放量

常用接口：

- `daily`
- `pro_bar`
- `weekly`
- `monthly`
- `stk_mins`
- `rt_k` / `rt_min`（如确需实时口径且权限允许）
- `daily_basic`

### 2. 基本资料 / 标的识别

典型问题：

- 这是什么公司 / 什么指数 / 什么基金
- 是创业板吗 / 是 ST 吗 / 什么时候上市

常用接口：

- `stock_basic`
- `fund_basic`
- `index_basic`
- `stock_company`
- `stock_st` / `st`

### 3. 财务 / 公司质量

典型问题：

- 最近几个季度利润趋势
- 最近几个季度营收和净利润趋势
- 财务质量怎么样
- ROE / 毛利率 / 现金流如何

常用接口：

- `income`（营收 / 净利润趋势优先）
- `fina_indicator`（ROE / 毛利率 / 净利率等质量指标补充）
- `balancesheet`
- `cashflow`
- `forecast`
- `express`
- `disclosure_date`

### 4. 估值 / 基本面指标

典型问题：

- 现在估值高不高
- 谁更便宜
- PE / PB / 股息率如何

常用接口：

- `daily_basic`
- `fina_indicator`

### 5. 资金流 / 市场行为

典型问题：

- 北向最近买什么
- 主力资金流向
- 龙虎榜情况

常用接口：

- `moneyflow`
- `moneyflow_hsgt`
- `hsgt_top10`
- `top_list`
- `top_inst`
- `moneyflow_ind_dc`
- `moneyflow_mkt_dc`

### 6. 板块 / 指数 / 主题

典型问题：

- 最近哪个板块最强
- 行业轮动如何
- 某板块有哪些成分股

常用接口：

- `index_basic`
- `index_daily`
- `index_classify`
- `index_member_all`
- `sw_daily`
- `ths_index`
- `ths_member`
- `dc_index`
- `dc_member`

### 7. 打板 / 情绪 / 活跃度

典型问题：

- 今天涨停梯队
- 连板结构
- 炸板率 / 情绪强弱

常用接口：

- `limit_list_d`
- `limit_step`
- `kpl_list`
- `dc_hot`
- `ths_hot`

### 8. 公告 / 新闻 / 研报 / 政策

典型问题：

- 最近有什么公告或催化
- 最近有什么研究报告
- 最近政策面发生了什么

常用接口：

- `anns_d`
- `news`
- `major_news`
- `research_report`
- `npr`
- `irm_qa_sh`
- `irm_qa_sz`

### 9. 宏观 / 跨市场

典型问题：

- CPI / PMI / 社融 / M2
- 利率与收益率曲线
- 港股 / 美股 / 美债数据

常用接口：

- `cn_cpi`
- `cn_ppi`
- `cn_pmi`
- `cn_gdp`
- `cn_m`
- `sf_month`
- `shibor`
- `shibor_lpr`
- `us_tycr`
- `us_daily`
- `hk_daily`
- `index_global`

### 10. 导出 / 研究准备

典型问题：

- 导出某标的一段时间行情
- 生成回测用数据表
- 输出 CSV / parquet

常用接口：

- 取决于上游任务，核心是统一输出规则与命名规范

***

## Entity resolution rules

### 标的解析

- 优先识别股票名、股票代码、指数名、ETF 名、基金名
- 对中文简称先尝试匹配标准对象
- 若重名或多解，列出候选并做最小澄清
- 证券代码内部统一为标准格式，如：`600519.SH`、`000001.SZ`

### 市场识别

- 默认先按 A 股理解，除非用户明确提到港股 / 美股 / 基金 / 债券 / 期货
- 指数、ETF、个股要分开判断，不要混用接口

### 时间默认值

若用户没有明确给时间范围，使用合理默认：

- “最近走势” → 默认近 20 个交易日
- “这段时间 / 最近一段时间” → 默认近 3 个月
- “财报 / 业绩” → 默认最近 8 个季度 + 最近年度
- “资金流最近如何” → 默认近 5～20 个交易日，按任务粒度调整
- “宏观最近如何” → 默认看最近 6～12 期

### 板块口径默认值

若用户只说“板块 / 行业 / 概念”但未指定分类体系：

- 行业优先用申万 / 中信等较稳定口径
- 概念优先同花顺 / 东方财富等主题口径
- 若结论依赖具体口径差异，要明确说明使用了哪种分类

***

## Input normalization rules

在请求数据前先做规范化：

- 日期统一为 `YYYYMMDD`
- 检查 `start_date <= end_date`
- 用户输入未来日期时，自动裁剪到最近可用日期并提示
- 裸代码如 `000001` 不要盲猜，能补全则说明补全规则，不能补全则澄清
- 对冲突参数（如 `trade_date` 与 `start_date/end_date` 同时给）要先裁决，不要直接乱传

***

## Data retrieval rules

### 文档先行

在写请求代码前，先确认：

- 接口名是否正确
- 必填参数
- 可选参数
- 返回字段
- 积分 / 频率限制

不要仅凭记忆硬写字段名。

### 字段确认

对 `fields` 参数，优先使用已知字段白名单或接口文档确认。
若用户要求字段不存在，应明确说明，而不是盲查。

### 默认分段拉取

长区间数据不要一次性全拉。
建议：

- 日线 / 周线 / 月线：按年或季度切片
- 财报：按年份 / 报告期切片
- 分钟数据：按月 / 周切片
- 大批量多标的：按标的分批 + 日期分段

### 重试与限流

- 仅对瞬时错误（网络抖动、超时、429）进行有限重试
- 参数错误、权限不足、字段错误不要盲重试
- 批量拉取时加入节流，避免高频撞限

### 分段合并

分段拉取后：

- 合并
- 去重
- 按主键排序
- 记录失败分段
- 若部分成功，要明确告诉用户哪些段失败了

***

## Output contract

除非用户明确只要原始表，否则优先按这个结构输出：

1. **一句话结论**
2. **数据范围与口径**
3. **关键指标 / 关键表格**
4. **异常点 / 风险点 / 解释限制**
5. **如有本地输出，给出文件路径**

### 结果交付形态

按任务复杂度选择：

- 小结果：Markdown 摘要 + 简短表格
- 中等数据表：CSV
- 大规模 / 后续分析：Parquet
- 需要可复用流程：附 Python 脚本
- 需要可视化时：输出图表 PNG 或说明可绘制图表

### 元信息

生成数据文件时，尽量同时记录：

- 接口名
- 请求参数
- 拉取时间
- 数据行数
- 字段列表
- 是否存在失败分段 / 缺失

***

## Workflow templates

下面这些模板，是本 skill 的核心。
不要直接从接口想起，而要从任务模板想起。

### 1. 单标的行情分析

适用：

- 看下 XX 最近怎么样
- 这票最近强不强
- 今年以来表现如何

默认流程：

1. 解析标的
2. 确定时间范围
3. 取行情 + 必要基础指标
4. 总结区间涨跌、成交活跃度、高低点、波动
5. 输出一句结论 + 关键数字

### 2. 多标的横向对比

适用：

- XX 和 YY 谁更强
- 把这几家公司对比一下

默认流程：

1. 锁定对象
2. 统一时间口径
3. 选 3～5 个关键指标
4. 输出对比表
5. 给出“谁在哪方面更强”的总结

### 3. 财务质量快照

适用：

- 看下 XX 财报
- 最近几个季度利润趋势
- 财务质量怎么样

默认流程：

1. 拉最近 8 个季度 + 最近年度财务核心数据
2. 区分营收、利润、毛利率、ROE、现金流
3. 标出改善 / 恶化 / 波动点
4. 说明累计值、单季值、同比口径

### 4. 估值分析 / 筛选

适用：

- 现在估值高不高
- 谁更便宜
- 筛低估值高股息

默认流程：

1. 明确标的池
2. 拉 `daily_basic` 等估值指标
3. 必要时联动财务质量
4. 输出排序、极值、口径说明

### 5. 资金流追踪

适用：

- 最近资金在买什么
- 北向最近流向哪里
- 主力资金流入最多的是谁

默认流程：

1. 明确资金口径（北向 / 主力 / 龙虎榜 / 板块资金）
2. 确定时间窗
3. 拉净流入 / 活跃成交 / 持续性
4. 和价格表现联动解释
5. 避免把单日噪声说成趋势

### 6. 板块 / 题材轮动分析

适用：

- 最近哪个板块最强
- 机器人最近强在哪
- 某概念板块里有哪些成分股

默认流程：

1. 确定分类口径
2. 拉板块区间表现
3. 必要时联动成分股、资金流、涨停梯队
4. 输出强势板块排行与代表标的

### 7. 公告 / 新闻 / 事件梳理

适用：

- 最近有什么公告
- 有没有什么催化
- 最近新闻面怎么样

默认流程：

1. 明确对象和时间窗
2. 拉公告 / 新闻 / 研报 / 政策数据
3. 去噪，提炼 3～5 条主线
4. 区分事实、公告、媒体解读
5. 必要时结合股价异动做弱因果解释

### 8. 数据导出与研究准备

适用：

- 拉一份 CSV
- 做回测数据表
- 导出某段时间的行情/财务数据

默认流程：

1. 明确数据范围、频率、字段
2. 采用分段策略取数
3. 清洗、去重、统一字段类型
4. 输出 CSV / parquet
5. 给出文件路径和元信息

### 9. 综合研究简报

适用：

- 给我快速研究一下 XX
- 做个投资者视角简报
- 先给个全景判断

默认流程：

1. 一句话结论
2. 行情表现
3. 财务趋势
4. 估值水平
5. 资金流情况
6. 公告 / 新闻催化
7. 风险点
8. 值得继续深挖的问题

***

## Data quality rules

拉取完成后，至少做这些检查：

- schema 校验
- 关键字段存在性检查
- 主键去重
- 固定排序
- 日期标准化
- 数值字段类型规范化

### 空结果处理

空表不一定是失败，要区分：

- 非交易日
- 区间无数据
- 股票未上市
- 参数错误
- 接口权限不足

不要把所有空结果都说成“接口坏了”。

***

## Cache and reuse rules

为了让 skill 可长期复用，应优先支持：

- 基础表缓存（如 `stock_basic`、交易日历、指数基础信息）
- 增量更新，而不是每次全量重拉
- 大任务断点续跑
- 结果文件规范命名

推荐命名格式：

- `daily_600519.SH_20230101_20231231_20260322.csv`
- `fina_indicator_300750.SZ_20260322.parquet`

缓存命中时，最好说明哪些来自缓存，哪些是新拉取的数据。

***

## Error handling

优先用“人话 + 调试细节分层”的方式输出错误。

### 用户可见层

- token 未配置
- 当前接口可能需要更高积分/权限
- 时间范围过大，已自动改为分段拉取
- 股票名称不唯一，请确认是哪一个
- 当前结果为空，可能因为该日期非交易日 / 标的未上市 / 无权限

### 调试层

必要时补：

- 接口名
- 参数
- 失败分段
- 异常原文

### 部分成功原则

如果部分分段失败，不要说“成功完成”。
应明确说：

- 哪些部分成功
- 哪些部分失败
- 是否已生成不完整结果

***

## Recommended minimal interface set

主 skill 正文不要塞几百个接口。
优先记住 80% 常用任务的核心接口集：

- `stock_basic`
- `trade_cal`
- `daily`
- `pro_bar`
- `daily_basic`
- `fina_indicator`
- `income`
- `balancesheet`
- `cashflow`
- `forecast`
- `express`
- `moneyflow`
- `moneyflow_hsgt`
- `hsgt_top10`
- `top_list`
- `index_basic`
- `index_daily`
- `index_classify`
- `sw_daily`
- `ths_index`
- `ths_member`
- `limit_list_d`
- `limit_step`
- `news`
- `major_news`
- `research_report`
- `anns_d`
- `cn_cpi`
- `cn_pmi`
- `us_tycr`

全部数据接口，请参考 `references/数据接口.md`。

***

## Best practices

- 先理解任务，再选接口
- 能少取就少取，先核心数据，再扩展
- 先给结论，再给证据
- 默认说人话，不堆字段名
- 对“最近 / 财报 / 强不强 / 资金关注”这类模糊中文表达，要有合理默认口径
- 大任务先给执行计划，再开跑
- 导出任务尽量保留脚本、元信息、文件路径，方便复用

***

## Examples

### 单票行情

- 看下宁德时代最近三个月走势
- 茅台今年以来涨了多少
- 招行这两年最大回撤大概多少

### 财务 / 估值

- 看下比亚迪最近 8 个季度营收和净利润趋势
- 茅台现在估值算高吗
- 帮我找高 ROE 低负债的公司

### 对比

- 比一下茅台、五粮液、泸州老窖近一年的涨幅和估值
- 对比一下沪深300、中证500、创业板今年表现

### 资金流 / 板块

- 今天北向资金流入最多的股票有哪些
- 最近哪个板块最强
- 半导体板块最近一个月强不强

### 公告 / 事件

- 帮我梳理下寒武纪最近的重要公告
- 最近机器人板块有什么消息面催化

### 宏观

- 看一下最近 CPI、PPI、PMI 变化
- 当前市场风格偏成长还是价值

### 导出

- 把沪深300成分股近两年日线导成 CSV
- 下载宁德时代 2020 到现在的复权行情
- 把最近 3 年 ROE、PE、PB、营收增速拉成一个表

***

## Quick rule

当用户在说：

- 看走势
- 查财报
- 比较公司
- 看板块
- 看资金流
- 梳理公告新闻
- 看宏观
- 拉数据导出

就不要先想“有哪些接口”。
先想：
**这是什么任务？默认该走哪条数据工作流？结果应该怎样交付才真正有用？**
