用途
本技能将用户的自然语言财经数据请求转为可执行的 Tushare 工作流,用于获取专业结构化金融市场历史数据。核心链路为:环境校验 → 理解任务 → 解析标的 → 选接口 → 校验参数 → 取数 → 整理 → 解释 → 交付。
本 skill 只负责取数与数据交付;若用户要求对标的进行分析、评估、对比或深度研究,应使用 sxsc-tushare-analysis skill。
主要能力
- 获取单只股票、指数、ETF 的行情、估值、活跃度数据
- 多标的批量取数(业绩、估值、涨幅、ROE 等字段)
- 获取财务数据(利润趋势、ROE、毛利率、现金流)
- 获取资金流数据(北向、主力、龙虎榜、板块吸金)
- 获取板块轮动、指数成分股数据
- 获取宏观数据(CPI / PPI / GDP / PMI / 利率 / 货币供应量)
- 数据导出(CSV / Parquet)供回测或后续分析
使用方式
环境校验
执行任取数任务前,先检查环境是否可用(结果缓存到 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 方式;无 → 走 HTTP 协议方式
退出码非 0 表示 token 缺失,需先解决环境再取数。缓存仅存储 token_set 状态与 SDK 安装信息,不保存 token 本身或其哈希。取数方式按校验结果 mode 字段选择:sdk 用 references/调取数据.md 的 Python SDK 节,http 用 HTTP 协议节。
工作流要点
- 环境校验:读取 scripts/env_check.json 缓存,取 mode 字段(sdk/http)决定取数方式;无缓存则运行 python scripts/check_env.py 生成。
- 理解任务:识别用户要解决什么问题。
- 解析标的:名称/代码 → 标准 ts_code(如 600519.SH);市场、时间窗、字段按默认值补全。
- 查表选接口:先查 references/API接口对应表.md 拿到 pro.api_name 与对应文档路径,禁止凭记忆写接口。
- 校验参数:日期 YYYYMMDD、起止顺序、冲突裁决、未来日期裁剪。
- 取数执行:sdk 参考 scripts/ 下模板(stock_data_demo.py、fund_data_demo.py、index_sector_demo.py、fin_report_demo.py、moneyflow_demo.py);http 参考模板中的 HTTP 函数(http_call),无 SDK 依赖。
- 结构化交付:一句话结论 → 口径 → 关键指标/表 → 风险/限制 → 文件路径。
关键原则:先想“这是什么任务、走哪条工作流”,再想“用哪个接口”;取数前先确认环境就绪,token 缺失时任何取数都无意义。
代码示例
初始化与日线:
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}")
空结果不一定是失败:可能是非交易日、标未上市、参数错误、权限不足,需区分清楚再下结论。
适用场景
任务分类包括:行情/趋势数据、基本资料、财务数据、估值数据、资金流/市场行为数据、板块/指数/主题数据、涨跌停/情绪数据、公告/新闻/研报(受限:仅告知边界 + 替代路径)、宏观/跨市场(CPI、PMI、利率、港股、美股)、数据导出/研究准备。
关键默认值:
- “最近”“近期”:近 20 个交易日
- “最近一段时间”“最近三个月”:近 60 个交易日
- “今年”:当年 1 月 1 日至今
- “财报”“业绩”:最近 8 个季度 + 最近年度
- “资金流最近如何”:近 5–20 个交易日
- “宏观最近如何”:最近 6–12 期
- 行业分类:申万/中信(更稳定)
- 概念分类:同花顺/东方财富(主题更热)
- 证券代码:600519.SH / 000001.SZ 标准格式;裸代码能补全则补全并说明,不能补全则最小澄清
- 日期冲突(trade_date 与 start_date/end_date 同给)先裁决再调用
- 未来日期自动裁剪到最近可用日期并提示用户
限制
本技能不适用于:买卖建议、替代投资顾问;自动下单或交易执行;实时行情(仅 T-1 日数据);回测引擎、组合优化系统的实现;无 token / 无权限时伪造数据。
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