--- name: tushare 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 把自然语言财经数据请求,转成可执行的 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 当用户在说: - 看走势 - 查财报 - 比较公司 - 看板块 - 看资金流 - 梳理公告新闻 - 看宏观 - 拉数据导出 就不要先想“有哪些接口”。 先想: **这是什么任务?默认该走哪条数据工作流?结果应该怎样交付才真正有用?**