> For the complete documentation index, see [llms.txt](https://docs.infoway.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.infoway.io/websocket-api/subscribe-and-unsubscribe/trade-subscribe.md).

# 实时成交明细（Trade）订阅

该 WebSocket 推送实时成交明细。

### 请求频率

同一连接所有请求（订阅、取消订阅、心跳）限制见 [WebSocket限制](/getting-started/api-limitation/websocket.md)（1 分钟 60 次）。超出将断连。

### 错误码说明

见 [WebSocket错误码](/getting-started/error-codes/websocket.md)。

### 接口地址

见 [行情地址说明](/getting-started/api-endpoints.md)。标的写法见 标的代码约定。

### 请求（协议号：10000）

```json
{
    "code": 10000,
    "trace": "423afec425004bd8a5e02e1ba5f9b2b0",
    "data": {
        "codes": "BTCUSDT",
        "includeTy": false
    }
}
```

| 参数名         | 类型      | 必填 | 描述                                   | 示例值                                |
| ----------- | ------- | -- | ------------------------------------ | ---------------------------------- |
| `code`      | Integer | 是  | 实时成交订阅协议号                            | `10000`                            |
| `trace`     | String  | 是  | 可追溯 ID                               | `423afec425004bd8a5e02e1ba5f9b2b0` |
| `data`      | JSON    | 是  | 订阅数据                                 |                                    |
| `codes`     | String  | 是  | 逗号分隔，单连接最多 600 个                     | `BTCUSDT`                          |
| `includeTy` | Boolean | 否  | `true` 时推送带 `ty`。不传或 `false` 不推 `ty` | `false`                            |

### 应答（协议号：10001）

```json
{
    "code": 10001,
    "trace": "423afec425004bd8a5e02e1ba5f9b2b0",
    "msg": "ok"
}
```

| 字段名     | 类型      | 必填 | 描述           | 示例值                                |
| ------- | ------- | -- | ------------ | ---------------------------------- |
| `code`  | Integer | 是  | 订阅应答协议号      | `10001`                            |
| `trace` | String  | 是  | 与请求一致        | `423afec425004bd8a5e02e1ba5f9b2b0` |
| `msg`   | String  | 是  | `ok` 只表示帧被收下 | `ok`                               |

`msg=ok` 只表示帧被收下。`business` 与品种市场不一致时仍可能 ack，但不推数据。

### 推送（协议号：10002）

```json
{
    "code": 10002,
    "data": {
        "p": "103482.94",
        "s": "BTCUSDT",
        "t": 1747552358393,
        "td": 2,
        "v": "0.00096",
        "vw": "99.3436224"
    }
}
```

| 字段名    | 类型      | 必填 | 描述                             | 示例值             |
| ------ | ------- | -- | ------------------------------ | --------------- |
| `code` | Integer | 是  | 实时成交推送协议号                      | `10002`         |
| `data` | JSON    | 是  | 成交数据                           |                 |
| `s`    | String  | 是  | 标的                             | `BTCUSDT`       |
| `p`    | String  | 是  | 成交价                            | `103482.94`     |
| `t`    | Long    | 是  | 成交时间戳（毫秒）                      | `1747552358393` |
| `td`   | Integer | 是  | 方向：`0` 默认，`1` 买，`2` 卖          | `2`             |
| `v`    | String  | 是  | 成交量                            | `0.00096`       |
| `vw`   | String  | 是  | 成交额（不是均价）                      | `99.3436224`    |
| `ty`   | String  | 否  | 交易所成交类型；仅 `includeTy=true` 时出现 |                 |

### 交易类型

#### 港股

* `*` 场外交易
* `D` 碎股交易
* `M` 非自动对盘
* `P` 开市前成交盘
* `U` 竞价交易
* `X` 同一券商非自动对盘
* `Y` 同一券商自动对盘
* （空）自动对盘

#### 美股

* （空）自动对盘
* `A` 收购
* `B` 批量交易
* `D` 分配
* `F` 跨市扫盘单
* `G` 批量卖出
* `H` 离价交易
* `I` 碎股交易
* `K` 纽交所规则 155
* `M` 交易所收盘价
* `P` 前参考价
* `Q` 交易所开盘价
* `S` 拆单交易
* `V` 附属交易
* `W` 平均价成交
* `X` 跨市场交易
* `1` 停售股票（常规交易）
