跳到主要内容

按仓位ID平仓

按仓位ID平仓

按指定的仓位ID列表平仓特定仓位,支持现货、币本位合约、U本位合约

限频:每秒 1 次

请求地址

POST /deepcoin/trade/close-position-by-ids

请求参数

字段名是否必填类型字段描述
productGroupstring产品组
现货: Spot
币本位: Swap
U本位: SwapU
instIdstring产品 ID
positionIds[]string仓位 ID 列表,至少包含一个 ID

请求示例

// 平仓指定的现货仓位
{
"productGroup": "Spot",
"instId": "BTC-USDT",
"positionIds": ["pos123", "pos456"]
}

// 平仓指定的币本位合约仓位
{
"productGroup": "Swap",
"instId": "BTC-USD-SWAP",
"positionIds": ["pos789", "pos012", "pos345"]
}

// 平仓指定的U本位合约仓位
{
"productGroup": "SwapU",
"instId": "BTC-USDT-SWAP",
"positionIds": ["pos678"]
}

// 平仓多个仓位
{
"productGroup": "SwapU",
"instId": "ETH-USDT-SWAP",
"positionIds": [
"1001063717138767",
"1001063717138768",
"1001063717138769",
"1001063717138770"
]
}

响应参数

字段名类型字段描述
errorListarray错误列表,包含平仓失败的详细信息

errorList 中的 ClosePositionErrorItem 结构

字段名类型字段描述
memberIdstring会员 ID
accountIdstring账户 ID
tradeUnitIdstring交易单元 ID
instIdstring产品 ID
posiDirectionstring仓位方向
errorCodeint错误码
errorMsgstring错误信息

响应示例

// 成功响应(所有指定仓位都成功平仓)
{
"code": "0",
"msg": "",
"data": {
"errorList": []
}
}

// 部分失败响应
{
"code": "0",
"msg": "",
"data": {
"errorList": [
{
"memberId": "10001",
"accountId": "100001234",
"tradeUnitId": "TU001",
"instId": "BTC-USDT-SWAP",
"posiDirection": "long",
"errorCode": 51020,
"errorMsg": "Insufficient position"
},
{
"memberId": "10001",
"accountId": "100001234",
"tradeUnitId": "TU002",
"instId": "BTC-USDT-SWAP",
"posiDirection": "short",
"errorCode": 51404,
"errorMsg": "Position does not exist"
}
]
}
}

// 全部失败响应
{
"code": "0",
"msg": "",
"data": {
"errorList": [
{
"memberId": "10001",
"accountId": "100001234",
"tradeUnitId": "TU001",
"instId": "BTC-USDT-SWAP",
"posiDirection": "long",
"errorCode": 51404,
"errorMsg": "Position does not exist"
},
{
"memberId": "10001",
"accountId": "100001234",
"tradeUnitId": "TU002",
"instId": "BTC-USDT-SWAP",
"posiDirection": "short",
"errorCode": 51404,
"errorMsg": "Position does not exist"
}
]
}
}

说明

功能描述

  • 按指定的仓位 ID 列表平仓特定仓位
  • 支持现货(Spot)、币本位合约(Swap)、U本位合约(SwapU)
  • 可以一次性平仓多个指定的仓位
  • 使用并发处理提高效率

处理逻辑

  1. 内部调用与批量平仓相同的 doClosePositionInternal 方法
  2. 通过 positionIds 参数过滤,只平仓指定 ID 的仓位
  3. 并发处理多个仓位的平仓操作
  4. 收集所有平仓失败的错误信息

注意事项

  • positionIds 必须至少包含一个仓位 ID
  • 只会平仓列表中指定的仓位,不会影响其他仓位
  • 错误列表为空表示所有指定仓位都成功平仓
  • 部分仓位平仓失败不会影响其他仓位的平仓操作
  • 如果仓位 ID 不存在或已被平仓,会在错误列表中返回相应错误信息