---
name: eastmoney_stock_simulator
display_name: 妙想模拟组合管理
description: 股票模拟组合管理系统，支持持仓查询、买卖操作、撤单、委托查询、历史成交查询和资金查询。
author: 东方财富妙想团队
version: 1.0.0
env:
  - MX_APIKEY: "通过东方财富妙想平台获取的 API Key"
  - MX_API_URL: "https://mkapi2.dfcfs.com/finskillshub"
---

# eastmoney_stock_simulator 妙想模拟组合管理 skill

本 Skill 由妙想提供一个股票模拟组合管理系统，支持股票组合持仓查询、买卖操作、撤单、委托查询、历史成交查询和资金查询等功能。通过调用后端模拟组合交易相关原生接口，实现真实的交易体验。

```yaml
tags: ["模拟炒股", "A 股", "投资练手", "策略验证"]
use_when:
  - 用户需要模拟炒股练手、验证交易策略
  - 用户需要进行模拟交易操作（买卖/撤单）
  - 用户需要查询模拟账户的持仓、资金、委托、历史成交记录
not_for:
  - 真实资金交易、投资建议生成、交易决策指引
  - 非 A 股类投资模拟（期货、外汇、港股、美股等）
  - 商业用途、代他人操作、非法交易演示
```

## 功能说明

根据**用户问句**自动识别意图并调用对应接口，支持以下功能：

1. **持仓查询**：查询指定账户的当前持仓股票。
2. **买入卖出操作**：执行买入和卖出操作，支持限价/市价委托。
3. **撤单操作**：撤销指定委托单，也支持一键撤单。
4. **委托查询**：查询账户下的所有委托订单及历史成交记录。
5. **资金查询**：查询账户可用资金与总资产。

## 配置

- **MX_APIKEY**：妙想 Skills 页面获取的 API 密钥，需保密。
- **MX_API_URL**：模拟交易 API 的基础 URL，默认为 `https://mkapi2.dfcfs.com/finskillshub`。
- **默认输出目录**: `/root/.hermes/workspace/mx_data/output/`
- **输出文件名前缀**: `mx_stock_simulator_`

## 前置要求

- 用户需在妙想 Skills 页面获取并配置 `MX_APIKEY` 和 `MX_API_URL` 环境变量。
- 模拟组合账户操作前，用户需在妙想 Skills 页面（地址：https://dl.dfcfs.com/m/itc4），创建模拟账户后，并绑定模拟组合。
- 买入/卖出操作需提供正确的股票代码、价格和数量。
- Header 中必须携带 `apikey` 进行认证。

## 接口列表

### 1. 持仓查询

- **触发词**：`查询持仓 `、` 我的持仓 `、` 持仓情况`
- **请求**：`POST /api/claw/mockTrading/positions`
- **请求体**：`{}`

```bash
curl -X POST "${MX_API_URL}/api/claw/mockTrading/positions" \
  -H "apikey: ${MX_APIKEY}" \
  -H "Content-Type: application/json" \
  -d '{}'
```

**响应字段**：
| 字段 | 类型 | 说明 |
|------|------|------|
| `totalAssets` | Int64 | 总资产（厘）|
| `availBalance` | Int64 | 可用余额（厘）|
| `totalPosValue` | Int64 | 总持仓市值（厘）|
| `posCount` | Int32 | 持仓股票数量 |
| `totalProfit` | Int64 | 总盈亏（厘）|

### 2. 买入卖出操作

- **触发词**：`买入 `、` 卖出 `、`buy`、`sell`、` 卖出全部`
- **请求**：`POST /api/claw/mockTrading/trade`
- **请求体**：
```json
{
  "type": "buy",
  "stockCode": "600519",
  "price": 1780.00,
  "quantity": 100,
  "useMarketPrice": false
}
```

| 参数 | 必填 | 说明 |
|------|------|------|
| `type` | 是 | buy=买入，sell=卖出 |
| `stockCode` | 是 | 股票代码（6 位数字）|
| `price` | 是 | 委托价格（useMarketPrice=false 时必填）|
| `quantity` | 是 | 委托数量（股），需为 100 的整数倍 |
| `useMarketPrice` | 否 | 是否以行情最新价买入 |

```bash
curl -X POST "${MX_API_URL}/api/claw/mockTrading/trade" \
  -H "apikey: ${MX_APIKEY}" \
  -H "Content-Type: application/json" \
  -d '{"type":"buy","stockCode":"600519","price":1780.00,"quantity":100,"useMarketPrice":false}'
```

### 3. 撤单操作

- **触发词**：`撤单 `、` 撤销订单 `、`cancel`、` 一键撤单`
- **请求**：`POST /api/claw/mockTrading/cancel`
- **请求体**：
```json
{
  "type": "order",
  "orderId": "ORD987654",
  "stockCode": "600519"
}
```

| 参数 | 必填 | 说明 |
|------|------|------|
| `type` | 是 | order=按单撤，all=一键撤单 |
| `orderId` | 否 | 委托编号，type=order 时必填 |
| `stockCode` | 否 | 股票代码，type=order 时必填 |

### 4. 委托查询

- **触发词**：`查询委托 `、` 我的订单 `、` 委托记录 `、` 历史成交`
- **请求**：`POST /api/claw/mockTrading/orders`
- **请求体**：`{"fltOrderDrt": 0, "fltOrderStatus": 0}`

| 参数 | 默认 | 说明 |
|------|------|------|
| `fltOrderDrt` | 0 | 0=全部，1=买入，2=卖出 |
| `fltOrderStatus` | 0 | 0=全部，2=已报，4=已成 |

### 5. 资金查询

- **触发词**：`查询资金 `、` 我的资金 `、` 账户余额`
- **请求**：`POST /api/claw/mockTrading/balance`
- **请求体**：`{}`

```bash
curl -X POST "${MX_API_URL}/api/claw/mockTrading/balance" \
  -H "apikey: ${MX_APIKEY}" \
  -H "Content-Type: application/json"
```

## 安全与错误处理

| 错误信息 | 处理方式 |
|----------|----------|
| 今日调用次数已达上限 (113) | 提示用户前往妙想 Skills 页面更新 apikey |
| API 密钥不存在或已失效 (114) | 提示用户前往妙想 Skills 页面更新 apikey |
| 请求未携带 API 密钥 (115) | 提示检查 `MX_APIKEY` 是否配置正确 |
| 未绑定模拟组合账户 (404) | 提示用户前往妙想 Skills 页面创建并绑定模拟账户 |
| 网络错误 | 重试最多 3 次，仍失败则提示"网络异常，请稍后重试" |

## 配置要求

- **MX_APIKEY**：妙想 Skills 页面获取的 apikey，需保密。
- **MX_API_URL**：模拟交易 API 的基础 URL。
- **依赖工具**：`curl`（用于发起请求）、`jq`（用于解析 JSON 响应）。
