# 持仓

### 描述
实时推送用户持仓数据

以下事件发生时推送数据：
1. 首次订阅，推送，全量
2. 统一账户合约平仓委托单下单，推送，增量
3. 统一账户合约开仓委托成交，推送，增量
4. 统一账户合约平仓委托成交，推送，增量
5. 统一账户合约平仓委托单改单，推送，增量
6. 统一账户合约平仓委托单撤单，推送，增量


<div className="api-aligning">

```json title="请求示例"
{
    "op": "subscribe",
    "args": [
        {
            "instType": "UTA",
            "topic": "position"
        }
    ]
}
```

### 请求参数

| 参数名           | 参数类型               | 是否必须 | 描述                                               | 
|:--------------|:-------------------|-----|:-------------------------------------------------|
| op            | String             | 是   | 操作: <br/> `subscribe` 订阅 <br/>`unsubscribe` 取消订阅 |
| args          | List&lt;Object&gt; | 是   | 请求订阅的频道列表                                        |
| &gt; instType | String             | 是   | 产品类型<br/>`UTA` 统一账户                                       |
| &gt; topic    | String             | 是   | 频道名: `position` 仓位                               |





</div>

<div className="api-br-10"></div>

<div className="api-aligning">

```json title="订阅返回示例"
{
  "event": "subscribe",
  "arg": {
    "instType": "UTA",
    "topic": "position"
  },
  "code": "",
  "msg": "",
  "connId": "xxxxxxxxxx"
}
```

### 返回参数说明

| 返回字段          | 参数类型     | 字段说明                                                            | 
|:--------------|:---------|:----------------------------------------------------------------|
| event         | String   | 操作 <br/>`subscribe` 订阅 <br/>`unsubscribe` 退订  <br/>`error` 参数错误 |
| arg           | Object   | 订阅的频道                                                           |
| &gt; instType | String   | 产品类型<br/>`UTA` 统一账户                                             |
| &gt; topic    | String   | 频道名 <br/>`position` 仓位                                          |
| code          | String   | 错误码                                                             |
| msg           | String   | 错误消息                                                            |
| connId        | String   | 连接ID                                                            |


</div>


<div className="api-br-10"></div>

<div className="api-aligning">


```json title="推送示例"
{
  "data": [
    {
      "symbol": "BTCUSDT",
      "leverage": "20",
      "openFeeTotal": "",
      "mmr": "",
      "breakEvenPrice": "",
      "available": "0",
      "liqPrice": "",
      "marginMode": "crossed",
      "unrealisedPnl": "0",
      "markPrice": "94987.1",
      "createdTime": "1736378720620",
      "avgPrice": "0",
      "totalFundingFee": "0",
      "cashDividend": "0",
      "updatedTime": "1736378720620",
      "marginCoin": "USDT",
      "frozen": "0",
      "profitRate": "",
      "closeFeeTotal": "",
      "marginSize": "0",
      "curRealisedPnl": "0",
      "size": "0",
      "positionStatus": "ended",
      "posSide": "long",
      "holdMode": "hedge_mode"
    }
  ],
  "arg": {
    "instType": "UTA",
    "topic": "position"
  },
  "action": "update",
  "ts": 1736378720624
}
```



### 参数说明

| 参数                  | 类型                 | 描述                                                   |
|---------------------|--------------------|------------------------------------------------------|
| arg                 | Object             | 订阅成功频道                                               |
| &gt; instType       | String             | 产品线类型<br/>`UTA`统一账户                                  |
| &gt; topic          | String             | 频道名<br/>`position`仓位频道                               |
| action              | String             | 推送数据动作<br/>`snapshot`全量 <br/> `update` 增量            |
| data                | List&lt;Object&gt; | 订阅的数据                                                |
| &gt;symbol          | String             | 交易对名称                                                |
| &gt;marginCoin      | String             | 保证金币种                                                |
| &gt;marginSize      | String             | 保证金数量                                                |
| &gt;marginMode      | String             | 保证金模式<br/>`crossed` 全仓<br/>`isolated` 逐仓          |
| &gt;posSide         | String             | 持仓方向 <br/>`long` 多 <br/> `short`空                    |
| &gt;holdMode        | String             | 持仓模式 <br/> `one_way_mode`单向持仓 <br/> `hedge_mode`双向持仓 |
| &gt;positionStatus  | String             | 仓位状态 <br/> `opening`进行中 <br/> `ended`完结              |
| &gt;size            | String             | 持仓数量 <br/> `size` = `available` + `frozen`           |
| &gt;available       | String             | 可平仓数量                                                |
| &gt;frozen          | String             | 冻结数量                                                 |
| &gt;avgPrice        | String             | 开仓平均价                                                |
| &gt;leverage        | String             | 杠杆倍数                                                 |
| &gt;curRealisedPnl  | String             | 已实现盈亏 (不包含手续费和资金费用)                                  |
| &gt;unrealisedPnl   | String             | 未实现盈亏                                                |
| &gt;liqPrice        | String             | 预估强平价                                                |
| &gt;mmr             | String             | 维持保证金率                                               |
| &gt;marginRate      | String             | 保证金率                                                 |
| &gt;markPrice       | String             | 标记价格                                                 |
| &gt;openFeeTotal    | String             | 开仓总计手续费                                              |
| &gt;closeFeeTotal   | String             | 平仓总计手续费                                              |
| &gt;breakEvenPrice  | String             | 仓位盈亏平衡价                                              |
| &gt;profitRate      | String             | 收益率                                                  |
| &gt;totalFundingFee | String             | 资金费用  仓位存续期间，资金费用的累加值，初始值为空，表示还没收取过资金费               |
| &gt;cashDividend    | String             | 现金派息，单位：USDT                                         |
| &gt;createdTime     | String             | 持仓创建时间 Unix时间戳的毫秒数格式，如 1597026383085                 |
| &gt;updatedTime     | String             | 最近一次持仓更新时间 Unix时间戳的毫秒数格式，如 1597026383085             |

## 收益率计算公式

收益率的计算公式为：<br/>
回报率=未实现盈亏÷初始保证金，<br/>
初始保证金=开仓均价x持仓数量÷杠杆÷保证金币指数价格


</div>
