# 问小达选板块

> 通达信智能选板块技能。使用 tdx_screener 查询数据，通过行业估值、资金流向、涨跌幅、板块类型等多条件组合筛选市场板块，返回符合条件的相关板块数据。当用户询问板块筛选问题时，必须使用此技能。

- Skill: `adambbhe/skill-8` (Agent Skill)
- Install (CLI): `npx skillmds@latest add adambbhe/skill-8`
- Raw SKILL.md: https://api.skillmd.com/api/skills/adambbhe/skill-8/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: adambbhe (https://skillmd.com/u/adambbhe)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/adambbhe/skill-8

---


# 问小达选板块 使用指南

## 技能概述

本技能提供市场板块智能筛选能力，帮助用户快速找到符合特定条件的板块。通过自然语言查询，支持多种筛选维度的组合。

## 核心功能

### 支持的筛选维度

| 维度 | 说明 | 示例 |
|------|------|------|
| **估值筛选** | 按 PE、PB、估值分位等指标筛选 | 市盈率低于20的板块、PB排名前10 |
| **资金流向** | 按主力资金净流入、北向资金等筛选 | 主力净流入的板块、北向资金持续流入 |
| **涨跌幅** | 按涨幅、跌幅排序筛选 | 涨幅前5的板块、跌幅榜 |
| **板块类型** | 区分行业板块、概念板块、地域板块 | 概念板块、行业板块 |
| **成交量** | 按成交额、换手率筛选 | 放量上涨、换手率超过5% |
| **多条件组合** | 多个条件组合筛选 | 涨幅前3且主力净流入的行业板块 |

### 数据来源

- **主要数据源**: 通达信问小达 (tdx_screener)
- **辅助数据源**: 通达信行情数据、资讯数据

## 使用流程

### 步骤 1: 接收用户查询

接收用户的自然语言选板块请求，分析用户意图和筛选条件。

**用户输入示例**:
- "涨幅前5的板块"
- "今天资金流入最多的概念板块"
- "市盈率低于20的行业"

### 步骤 2: Query 改写与标准化

将用户的口语化表达改写为标准的金融查询语句。

**改写规则**:
- 保留核心意图（涨幅、资金流入、估值等）
- 将口语转为标准术语（"涨得好的" → "涨幅前五"）
- 适当简化复杂条件
- 保持原意不变
- **⚠️ 关键：遵循NLP解析器词序敏感性规则，板块分类关键字必须前置**

**标准化示例**:
| 用户输入 | 标准化 Query |
|---------|---------------|
| 帮我选涨得好的概念板块 | 概念板块涨幅前五 |
| 今天流入最多的概念板块 | 概念板块主力净流入前五 |
| 昨日涨幅前5的概念 | 概念板块昨日涨幅前5 |
| 市盈率低且换手高的行业板块 | 行业板块市盈率较低且换手率较高 |
| 涨幅前5的板块（默认行业） | 行业板块涨幅前5 |

### 步骤 3: 调用数据接口

使用 `tdx_screener` 工具查询板块数据：

```bash
tdx_screener message="<标准化的Query>" rang="ZS"
```

**参数说明**:
- `message`: 标准化后的查询语句
- `rang`: 市场范围，板块查询使用 "ZS"（指数）

### ⚠️ NLP解析器词序敏感性

**重要提示**：通达信NLP解析器对词序非常敏感！

#### 板块分类关键词的优先级规则

1. **分类关键字必须前置**：查询概念板块、行业板块时，分类关键字应放在筛选条件之前
2. **默认行为**：如果"板块"出现在句尾，系统默认解析为"行业板块"

#### 正确的查询句式

| 意图 | ❌ 错误句式 | ✅ 正确句式 |
|------|------------|------------|
| 概念板块 | `昨日涨幅前5的概念板块` | `概念板块昨日涨幅`前5` |
| 概念板块 | `涨幅前5的概念` | `概念板块涨幅前5` |
| 行业板块 | `概念板块昨日涨幅前5` | `行业板块昨日涨幅前5` |
| 行业板块 | `昨日涨幅前5`（默认为行业） | `行业板块昨日涨幅前5` |

#### 解析失败时的错误信号

- 错误信息: `"获取nlpseId失败!"`
- 此时需要调整查询句式，将分类关键字前置

#### 调用策略

**查询概念板块时**：
- 优先使用: `概念板块<筛选条件>`
- 示例: `概念板块昨日涨幅前5`、`概念板块主力净流入前10`

**查询行业板块时**：
- 可以使用: `<筛选条件>的板块`（默认为行业）
- 或明确指定: `行业板块<筛选条件>`
- 示例: `昨日涨幅前5`、`行业板块涨幅前5`

**查询地域板块时**：
- 必须前置: `地域板块<筛选条件>`
- 示例: `地域板块昨日涨幅前5`

### 步骤 4: 数据扩展决策（可选）

根据数据完整性决定是否需要补充信息：

**数据完整**: 直接格式化返回结果

**需要扩展背景信息**:
- 调用 `tdx_api_data(entry="tdxf10_gg_rdtc", fixedTag="sjcd")` 获取相关资讯
- 调用 `tdx_quotes` 获取实时行情
- 调用 `tdx_api_data(entry="tdxf10_gg_ybpj", fixedTag="yzyq")` 获取研报观点

### 步骤 5: 格式化输出

组织语言回答用户，确保结果清晰易懂。

**输出格式要求**:
- 使用表格展示板块列表（排名、名称、涨幅、现价等）
- 说明数据来源
- 如果改写了问句，需说明最终使用的查询条件

## 数据返回格式

### 基础表格字段

| 字段 | 说明 |
|------|------|
| 排名 | 板块按筛选条件的排序位置 |
| 板块名称 | 板块的名称（行业或概念） |
| 涨跌幅 | 当日涨跌百分比 |
| 现价 | 板块指数当前价格 |
| 振幅 | 当日振幅百分比 |
| 成交量 | 当日成交量（手） |
| 换手率 | 当日换手率百分比 |

### 输出示例

```
今日涨幅前5的板块（数据来源于通达信问小达）：

| 排名 | 板块名称 | 涨幅 | 现价 |
|------|----------|------|-------|
| 1 | 环境监测 | 4.65% | 988.18 |
| 2 | 锂电池 | 3.40% | 1042.53 |
| 3 | 公路货运 | 3.18% | 773.03 |
| ...
```

## 注意事项

### 重要提示

1. **数据来源标注**: 所有引用通达信数据的地方，必须强调**数据来源于通达信问小达**

2. **数据有效性**: 板块数据基于实时行情，可能存在延迟

3. **查询限制**:
   - 单次查询最多返回一定数量的结果
   - 复杂条件可能需要分步骤查询

4. **错误处理**: 
   - 如果 API 调用失败，给出友好错误提示
   - 如果无数据返回，引导用户访问通达信客户端查询
   - 最多重试 2 次，逐步放宽条件

### 用户引导

当无法获取数据或查询失败时，提示用户：

**数据来源**: 通达信
**客户端下载**: https://www.tdx.com.cn/

## 错误处理

### 常见错误场景

| 错误类型 | 错误特征 | 处理方式 |
|----------|----------|----------|
| API 调用失败 | `code: -1` | 显示错误信息，提示稍后重试 |
| NLP解析失败 | `error: "获取nlpseId失败!"` | 调整查询句式，将分类关键字（概念板块/行业板块）前置 |
| 无数据返回 | `total: 0` | 提示条件可能过于严格，建议放宽条件或访问通达信客户端 |
| 网络超时 | 请求超时 | 提示检查网络连接，建议重试 |
| 条件过于复杂 | 多个条件组合错误 | 拆分为多个简单条件分别查询 |

### 重试策略

- **NLP解析失败时的修复**：
  1. 检查查询语句中是否包含"概念板块"、"行业板块"、"地域板块"
  2. 将分类关键字移到查询语句最前面
  3. 重新调用 `tdx_screener`
  
- **常规重试**：
  - **重试次数**: 最多 2 次
  - **放宽条件**: 每次重试适当放宽筛选条件
  - **降级方案**: 引导用户使用通达信客户端查询

## 使用示例

### 示例 1: 查询涨幅前列板块

**用户输入**: "涨幅前5的板块"

**处理流程**:
1. 接收查询
2. Query 改写: "涨幅前5的板块"（无需改写）
3. 调用接口: `tdx_screener message="涨幅前5的板块" rang="ZS"`
4. 格式化输出

### 示例 2: 查询概念板块涨幅

**用户输入**: "昨日涨幅前5的概念板块"

**处理流程**:
1. 接收查询
2. Query 改写: "概念板块昨日涨幅前5"（⚠️ 必须将"概念板块"前置）
3. 调用接口: `tdx_screener message="概念板块昨日涨幅前5" rang="ZS"`
4. 格式化输出

**错误示例**:
- ❌ `昨日涨幅前5的概念板块` → NLP解析失败："获取nlpseId失败!"
- ✅ `概念板块昨日涨幅前5` → 成功返回结果

### 示例 3: 多条件筛选

**用户输入**: "涨幅前3且市盈率低于20的行业"

**处理流程**:
1. 接收查询
2. Query 改写: "涨幅前3且市盈率低于20的行业板块"
3. 调用接口: `tdx_screener message="涨幅前3且市盈率低于20的行业板块" rang="ZS"`
4. 格式化输出
5. （可选）调用资讯工具补充背景信息

## 技能调用约束

### 必须使用本技能的场景

当用户询问以下类型问题时，**必须**使用此技能：

- 板块筛选相关（"涨幅前几"、"跌幅榜"）
- 板块排行相关（"资金流入最多"、"换手率最高"）
- 板块类型筛选（"行业板块"、"概念板块"）
- 板块组合条件筛选（"涨幅且资金流入"）
- 板块估值筛选（"市盈率低"、"PB估值低"）

### 不适用场景

- 个股筛选（应使用【问小达选A股】）
- 基金筛选（应使用【问小达选基金】）
- ETF 筛选（应使用【问小达选ETF】）
- 板块内个股分析（应使用其他板块分析技能）

