---
name: mx_select_stock
display_name: 妙想智能选股
description: 基于股票选股条件（行情指标、财务指标等）筛选满足条件的股票，支持行业/板块选股、成分股查询。
author: 东方财富妙想团队
version: 1.0.0
env:
  - MX_APIKEY: "通过东方财富妙想平台获取的 API Key"
---

# mx_select_stock 妙想智能选股 skill

本 Skill 支持基于股票选股条件，如行情**指标、财务指标等**，筛选满足条件的股票；可查询**指定行业 / 板块内的股票、上市公司**，以及**板块指数的成分股**；同时支持**股票、上市公司、板块/指数推荐**等相关任务，采用此 skill 可避免大模型在选股时使用了过时信息。

## 配置

- **API Key**: 通过环境变量 `MX_APIKEY` 设置
- **默认输出目录**: `/root/.hermes/workspace/mx_data/output/`（自动创建）
- **输出文件名前缀**: `mx_select_stock_`
- **输出文件**:
  - `mx_select_stock_{query}.csv` - 筛选结果 CSV 文件
  - `mx_select_stock_{query}_description.txt` - 筛选结果描述文件
  - `mx_select_stock_{query}_raw.json` - API 原始 JSON 数据

## 使用方式

1. 在妙想 Skills 页面获取 apikey (https://marketing.dfcfs.com/views/finskillshub/indexuNdYscEA)
2. 将 apikey 存到环境变量，命名为 MX_APIKEY，检查本地该环境变量是否存在，若存在可直接用。
3. 使用 post 请求如下接口，务必使用 post 请求。

   > ⚠️ **安全注意事项**  
   >
   > - **外部请求**: 本 Skill 会将用户的查询关键词（Keyword）发送至东方财富官方 API 接口 (`mkapi2.dfcfs.com`) 进行解析与检索。
   > - **数据用途**: 提交的数据仅用于匹配选股条件，不包含个人隐私信息。 
   > - **凭据保护**: API Key 仅通过环境变量 `MX_APIKEY` 在服务端或受信任的运行环境中使用，不会在前端明文暴露。

```javascript
curl -X POST --location 'https://mkapi2.dfcfs.com/finskillshub/api/claw/stock-screen' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data '{"keyword": "今日涨幅 2% 的股票", "pageNo": 1, "pageSize": 20}'
```

## 接口结果释义

### 一、顶层核心状态 / 统计字段

|字段路径 | 类型 | 核心释义|
|----|----|----|
|`status` | 数字 | 接口全局状态，0 = 成功|
|`message` | 字符串 | 接口全局提示，ok = 成功|
|`data.code` | 字符串 | 选股业务层状态码，100 = 解析成功|
|`data.msg` | 字符串 | 选股业务层提示|
|`data.data.resultType` | 数字 | 结果类型枚举，2000 为标准选股结果|
|`data.data.result.total` | 数字 | 【核心】选股结果总数量（符合条件的股票数）|
|`data.data.result.totalRecordCount` | 数字 | 与 total 一致，结果总条数，做数据校验用|

### 2.1 列定义：`data.data.result.columns`（数组）

核心作用：定义表格每一列的展示规则、属性、业务键，是前端渲染表格列的依据。

|子字段 | 类型 | 核心释义|
|----|----|----|
|`title` | 字符串 | 表格列展示标题（如最新价 (元)、涨跌幅 (%)）|
|`key` | 字符串 | 【核心】列唯一业务键，与`dataList` 中对象的键映射（如 NEWEST_PRICE、CHG）|
|`dateMsg` | 字符串 | 列数据对应的日期（如 2026.03.12）|
|`sortable` | 布尔 | 该列是否支持前端排序|
|`sortWay` | 字符串 | 默认排序方式（desc = 降序/asc = 升序）|
|`redGreenAble` | 布尔 | 该列数值是否支持红绿涨跌着色（涨红跌绿）|
|`unit` | 字符串 | 列数值单位（元、%、股、倍）|
|`dataType` | 字符串 | 列数据类型（String/Double/Long），用于前端渲染格式|

### 2.2 行数据：`data.data.result.dataList`（数组）

核心作用：选股结果的具体股票数据，数组中每个对象对应一只符合条件的股票。

|核心键 | 数据类型 | 核心释义|
|----|----|----|
|`SERIAL` | 字符串 | 表格行序号|
|`SECURITY_CODE` | 字符串 | 股票代码（如 603866、300991）|
|`SECURITY_SHORT_NAME` | 字符串 | 股票简称（如桃李面包、创益通）|
|`MARKET_SHORT_NAME` | 字符串 | 市场简称（SH = 上交所，SZ = 深交所）|
|`NEWEST_PRICE` | 数字 / 字符串 | 最新价（单位：元）|
|`CHG` | 数字 / 字符串 | 涨跌幅（单位：%）|
|`PCHG` | 数字 / 字符串 | 涨跌额（单位：元）|

### 二、选股条件 / 统计相关字段

|字段路径 | 类型 | 核心释义|
|----|----|----|
|`responseConditionList` | 数组 | 【核心】单条筛选条件的统计，每个对象对应 1 个筛选条件，含条件描述、匹配股票数|
|`responseConditionList[].describe` | 字符串 | 筛选条件描述（如今日涨跌幅在 [1.5%,2.5%] 之间）|
|`responseConditionList[].stockCount` | 数字 | 该条件匹配的股票数量|
|`totalCondition` | 对象 | 【核心】组合筛选条件的总统计，即所有条件叠加后的最终筛选规则|
|`totalCondition.describe` | 字符串 | 组合条件描述|
|`totalCondition.stockCount` | 数字 | 组合条件匹配的股票数量（与 result.total 一致）|
|`parserText` | 字符串 | 选股条件的解析文本，以分号分隔单条件|

## 数据结果为空

提示用户到东方财富妙想 AI 进行选股。

## 错误处理

- API Key 未配置：提示设置环境变量 `MX_APIKEY`
- 接口调用失败：显示错误信息
- 网络错误：重试最多 3 次
