Skip to content
EN

Back to the catalog

shanxi-securities-tushare

truehooha/shanxi-securities-tushare-skill · skills.sh

Open source Repository Open in the app JSON README (API)

About

Skill publicada por truehooha/shanxi-securities-tushare-skill no skills.sh. Instale com: npx skills add truehooha/shanxi-securities-tushare-skill@shanxi-securities-tushare

Details

Kind
Agent skills
Publisher
truehooha
Origin
skillssh
Category
ferramentas
Stars
6
Last push
2026-09-30T06:53:38Z
Repository state
ativo
Language
Python
License
NOASSERTION
Added
2026-10-07 06:33:21
Updated
2026-10-07 06:33:21
Origin id
truehooha/shanxi-securities-tushare-skill/shanxi-securities-tushare

README

# 山西证券 Tushare Skill 套件

本项目包含两个配套的金融分析 Agent Skill,基于山西证券 `sxsc_tushare` 包:

| Skill | 职责 | 适用场景 |
|-------|------|---------|
| `shanxi-securities-tushare` | **数据获取**:调用 100+ 金融数据接口,批量取数并结构化交付 | 取数、导出、回测数据准备 |
| `sxsc-tushare-analysis` | **综合分析**:基于数据 skill 的接口,对标的进行交叉分析并输出报告 | 分析、研究、评估、对比 |

---

## 一、如果你是人类

直接把下面这句话发给 AI 助手:

```
帮我安装这个 skill :
https://gitee.com/TrueHOOHA/shanxi-securities-tushare-skill/
```

> 剩下的安装、配置工作交给 AI 完成即可,你无需手动操作。

---

## 二、如果你是 Agent

### 安装

1. 将本项目下的 `shanxi-securities-tushare/`(数据 skill)与 `sxsc-tushare-analysis/`(分析 skill)两个文件夹复制到所使用的 Agent 工具的 `skills/` 目录下。

   最终路径结构示例:

   ```
   <工具目录>/skills/
   ├── shanxi-securities-tushare/
   │   ├── SKILL.md
   │   ├── scripts/
   │   └── references/
   └── sxsc-tushare-analysis/
       ├── SKILL.md
       └── scripts/
   ```

   > 两个 skill 需放在同一 `skills/` 目录下。分析 skill 依赖数据 skill 的接口表、demo 模板与 `check_env.py`。

2. 引导用户配置环境变量 `SXSC_TUSHARE_TOKEN`(详见下方「环境变量配置」)。

### 环境变量配置

向用户询问 Token 后,根据其操作系统配置:

**Windows PowerShell(永久生效,仅当前用户):**

```powershell
[Environment]::SetEnvironmentVariable("SXSC_TUSHARE_TOKEN", "你的token", "User")
```

**Linux / macOS(永久生效,写入 shell 配置文件):**

```bash
# bash 用户
echo 'export SXSC_TUSHARE_TOKEN="你的token"' >> ~/.bashrc && source ~/.bashrc

# zsh 用户
echo 'export SXSC_TUSHARE_TOKEN="你的token"' >> ~/.zshrc && source ~/.zshrc
```

**验证:**

```bash
# Linux / macOS
echo $SXSC_TUSHARE_TOKEN

# Windows PowerShell
echo $env:SXSC_TUSHARE_TOKEN
```

### 环境校验

配置完成后,可运行校验脚本确认环境就绪,结果缓存到 `shanxi-securities-tushare/scripts/env_check.json`(token 未变则复用,避免每次重复校验):

```bash
python shanxi-securities-tushare/scripts/check_env.py          # 用缓存,否则重新校验
python shanxi-securities-tushare/scripts/check_env.py --force  # 强制重新校验
python shanxi-securities-tushare/scripts/check_env.py --check  # 只校验不写缓存
```

校验项:

| 项 | 必需 | 缺失后果 |
|---|---|---|
| `SXSC_TUSHARE_TOKEN` 已设置 | 是 | 无法执行 skill,退出码非 0 |
| `sxsc_tushare` 库已安装 | 否 | 有 → SDK 方式;无 → HTTP 协议方式 |

---

## 三、Skill 1:数据获取(shanxi-securities-tushare)

### 触发条件

只要用户提到以下内容,**就应触发本 skill**(即使用户未明确提及"山西证券"或"tushare"):

- 股票/基金/指数/期货/港股行情、涨跌、走势、K线、日线/周线/月线的**获取/导出**
- 财务报表、营收/利润/ROE/毛利率/现金流的**批量拉取与导出**
- 资金流向、北向资金、主力资金、龙虎榜、涨停板数据的**取数**
- 行业分类、申万行业、指数成分股的**查询**
- CPI/PPI/PMI/社融/利率/宏观数据、港股/美股/外汇的**获取**
- 可转债行情/发行、停复牌、限售解禁、分红送股、股东增减持的**数据查询**
- 导出数据、生成 CSV/parquet、回测数据准备
- 用户说"拉份数据""导出CSV""批量取数""查一下行情""看看资金流向"等

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

> 补充说明:公告/新闻/研报/政策催化目前不属于本 skill 的直连数据能力;如用户提出该类需求,应告知限制,并建议改查价格异动、龙虎榜、资金流等可量化替代证据。

### 数据覆盖(100 个接口)

| 类别 | 接口数量 |
|------|---------|
| A 股(含财务报表) | 45 |
| 港股 | 6 |
| 基金 | 9 |
| 指数 | 9 |
| 融资融券 / 转融通 | 7 |
| 宏观 | 10 |
| 期货 / 期权 | 9 |
| 其他(可转债 / 外汇) | 5 |
| **总计** | **100** |

> 按接口文档映射计;`trade_cal` 同一接口分别对应股票/期货交易日历两份文档。完整列表见 `references/API接口对应表.md`。

### 核心原则

- 调用任何接口前,必须先查 `shanxi-securities-tushare/references/API接口对应表.md` 获取 `pro.api_name` 与对应文档路径,**禁止凭记忆写接口**。
- 取数前先运行 `check_env.py` 确认环境就绪,token 缺失时任何取数都无意义。
- 日期格式统一 `YYYYMMDD`,未来日期自动裁剪到最近可用日期。

### 工作流

每次执行按此顺序:**环境校验 → 理解任务 → 解析标的 → 选接口 → 校验参数 → 取数 → 整理 → 解释 → 交付**。

### 参考模板

`scripts/` 下的 `*_demo.py` 是 **Agent 调取数据时的参考模板**(非可执行脚本),每个接口同时提供 **SDK 与 HTTP 两种调用方式**,由 Agent 按环境校验结果(`mode` 字段)选择其一复制调用。

| 文件 | 覆盖接口 |
|---|---|
| `stock_data_demo.py` | `stock_basic`、`daily`、`fina_indicator` |
| `fund_data_demo.py` | `fund_basic`、`fund_nav`、`fund_manager` |
| `index_sector_demo.py` | `index_daily`、`index_classify`、`index_member`、`index_global` |
| `fin_report_demo.py` | `income`、`balancesheet`、`cashflow` |
| `moneyflow_demo.py` | `moneyflow`、`moneyflow_hsgt`、`top_list` |

---

## 四、Skill 2:综合分析(sxsc-tushare-analysis)

### 触发条件

只要用户对标的提出分析类请求,**就应触发本 skill**:

- 用户说"分析一下XX""帮我看看XX""深度研究XX""XX怎么样""XX基本面""XX技术面""XX估值""XX财务"
- 用户说"评估XX""对比XX""研究XX""XX的业绩表现""XX的风险"
- 用户要求对股票/指数/基金/期货进行综合分析或出具研究简报

> 本 skill 自动调用 `sxsc_tushare` 取数并输出完整报告,接管数据获取与分析全流程。当本 skill 被触发时,数据获取类 skill 不应同时激活——分析已包含数据。

### 分析维度

| 标的类型 | 维度数 | 覆盖内容 |
|---------|--------|---------|
| 沪深股票 | 11 维 | 概况、行情趋势(含基准对比)、估值、财务质量(含业绩预告)、资金面(含大宗交易)、股东/筹码(含增减持)、两融/杠杆情绪、市场异动、解禁压力、风险提示、宏观/市场环境 |
| 指数 | 8 维 | 概况、行情趋势、估值、成分权重、行业分布、对比(含国际指数)、两融/市场杠杆、风险提示 |
| 公募基金 | 9 维 | 概况、净值走势、业绩指标(夏普/回撤)、同类对比、基金经理、持仓、规模变化、分红、风险提示 |
| 期货 | 7 维 | 概况、行情趋势、持仓分析、主力合约、仓单库存、结算参数、风险提示 |

### 报告结构

每份报告输出为独立 HTML 文件(浏览器直接打开):顶部 KPI 速览条(最新价/区间涨跌/波动/估值分位),时间序列图表内联在各维度章节内(股票:K线/PE-PB/资金流/财务趋势;指数:PE-PB/两融;基金:净值/份额/同类对比),内容按此模板:

```
# 标的名称 全景研究报告

> 数据日期:YYYY-MM-DD(Tushare 数据为 T-1 日)
> 免责:本报告基于历史数据,不构成投资建议

## 1. 概况
## 2. 行情趋势
## 3. 估值分析
...(逐维度)
## 风险提示(综合信号汇总)
```

每维度输出:**结论句 → 关键数据表 → 维度解读**。结论先行,不替用户决策。

### 工作流

每次执行按此顺序:**环境校验(引用数据 skill 的 check_env.py) → 标的识别(类型+ts_code) → 维度加载(按类型全套) → 逐维取数分析 → 综合报告**。

取数前必须查数据 skill 的 `API接口对应表.md`,引用其 demo 模板,禁止凭记忆写接口。

### 量化分析方法

**纵向对比(单标的)**:
- 股票用 `adj_factor` 复权因子消除除权除息跳变,区间收益率/MA/回撤均基于复权价
- 基金用 `fund_adj` 复权因子构建复权净值序列,夏普/最大回撤基于复权净值
- 期货用 `fut_mapping` 识别主力合约区间,跨合约不简单拼接

**横向对比(多标的)**:
- 序列归一化(rebase 到基准日 = 100),消除价格量纲差异
- 收益率横排对比表(近 1/3/6/12 月/YTD)
- 估值不比绝对值,比各自近 5 年历史分位数
- 财务比率类指标(ROE/毛利率)直接横排,绝对值指标转增速后对比

### 分析原则

1. **结论先行**:每维度先写结论句,再给数据
2. **交叉验证**:单一维度信号不充分时,多维度交叉判断
3. **数据时效**:Tushare 数据为 T-1 日,报告顶部注明
4. **风险前置**:风险提示在报告末尾单独一节
5. **不替用户决策**:用描述性语言,不用"建议买入/卖出"
6. **空结果处理**:区分非交易日/标未上市/参数错误/权限不足

### 边缘情况处理

- **ST/*ST 股票**:2026-07-06 起涨跌停调整为 10%,此前为 5%,分析时注意日期界限
- **次新股/上市不足 1 年**:历史数据不足 250 日时 MA250/年化波动率不可用,降级为可用区间并标注
- **停复牌**:停牌期间价格序列断裂,用 `suspend_d` 查记录,计算时跳过停牌日
- **数据质量异常**:如 `fund_portfolio` 返回 ratio 全 0,标注"数据异常"而非当正常持仓分析
- **标的名称多义性**:返回多个匹配时按市值排序取最大,并在报告中注明

### 计算参考模板

`scripts/` 下按分析方法分模块,Agent 按需引用对应模块的函数:

| 模块 | 覆盖函数 |
|------|---------|
| `data_api.py` | `DataAPI`/`shift_date`/`ensure_sorted`/`drop_t0_placeholder`/`safe_call`(统一数据访问层:SDK/HTTP 双模式取数,内置 T-0 占位行过滤,覆盖股票/指数/基金/期货/财务/资金流等接口) |
| `basic_metrics.py` | `calc_returns`/`calc_cagr`/`calc_ma`/`calc_volatility`/`calc_max_drawdown`/`calc_sharpe`/`calc_sortino`/`calc_information_ratio` |
| `adjustment.py` | `apply_adj_factor`/`apply_fund_adj`/`apply_etf_adj`/`rebase_series`/`compare_returns`/`calc_percentile_rank`/`winsorize_cross_section` |
| `technical_indicators.py` | `calc_macd`/`calc_rsi`/`calc_kdj`/`calc_boll`/`calc_obv`/`calc_volume_ratio` |
| `risk_modeling.py` | `calc_var_cvar`/`calc_tail_risk`/`calc_amihud_illiquidity`/`calc_rolling_beta`/`calc_rolling_sharpe`/`calc_relative_strength` |
| `attribution.py` | `calc_beta_alpha`/`calc_piotroski_fscore` |
| `composite.py` | `calc_composite_score`/`calc_factor_positioning`/`calc_risk_budget` |

---

## 文件结构

```
.
├── README.md                                  # 根文档(总入口)
├── LICENSE
├── shanxi-securities-tushare/                 # 数据 skill(只负责取数)
│   ├── SKILL.md                               # 执行规范入口
│   ├── scripts/
│   │   ├── check_env.py                       # 环境校验脚本
│   │   ├── stock_data_demo.py                 # 股票数据示例脚本
│   │   ├── fund_data_demo.py                  # 基金数据示例脚本
│   │   ├── index_sector_demo.py               # 指数/行业示例脚本
│   │   ├── fin_report_demo.py                 # 财务三表示例脚本
│   │   └── moneyflow_demo.py                  # 资金流向/龙虎榜示例脚本
│   └── references/
│       ├── API接口对应表.md                   # 100 个 API ↔ 文档映射(必查)
│       ├── 调取数据.md                        # 环境配置与调用说明
│       ├── 基础信息.md                        # stock_basic 接口文档
│       ├── A股日线行情.md                     # daily 接口文档
│       └── ...(其余接口文档见 references/,每个接口一文档)
└── sxsc-tushare-analysis/                     # 分析 skill(负责综合分析)
    ├── SKILL.md                               # 综合分析执行规范入口
    └── scripts/
        ├── data_api.py                        # 统一数据访问层(DataAPI:SDK/HTTP 双模式取数)
        ├── result_model.py                    # 分析结果数据模型
        ├── report_html.py                   # HTML 报告渲染器(markdown→HTML + ECharts 图表 + KPI 速览条)
        ├── analysis_runner.py                 # 股票综合分析 Runner(stock_report)
        ├── index_analysis_runner.py           # 指数综合分析 Runner(index_report)
        ├── fund_analysis_runner.py            # 基金综合分析 Runner(fund_report)
        ├── fut_analysis_runner.py             # 期货综合分析 Runner(fut_report)
        ├── stock_analyzer.py                  # 旧入口兼容包装
        ├── basic_metrics.py                   # 基础指标(收益率/MA/波动率/夏普等)
        ├── adjustment.py                      # 复权与归一化(adj_factor/rebase/Z-Score)
        ├── technical_indicators.py            # 技术指标(MACD/RSI/KDJ/布林带/OBV)
        ├── risk_modeling.py                   # 风险建模(VaR/尾部风险/滚动分析/RS)
        ├── attribution.py                     # 归因分析(Beta-Alpha/Piotroski/事件研究)
        └── composite.py                       # 跨维度组合分析(技术共振/量价/多因子评分等)
```

## 注意事项

1. **Token 安全**:不要在代码中硬编码 token,使用环境变量 `SXSC_TUSHARE_TOKEN`
2. **查表优先**:即使记得接口名称,也要先查 `API接口对应表.md`
3. **工具无关约束**:核心是先查 `API接口对应表.md`,检索工具可替换。
4. **环境选择**:纯 Python 和仿真端用 `env='prd'`,生产端用 `env='qa'`
5. **日期格式**:统一使用 `YYYYMMDD` 格式(如 `20240101`)
6. **错误处理**:token 无效、无权限、空结果等均有对应处理策略(见各 SKILL.md)
7. **分析 skill 不替代数据 skill**:纯取数/导出类请求应由数据 skill 处理,分析类请求由分析 skill 处理。两者 description 已做边界划分,各自触发互不干扰。

More