跳到主要内容

WS 交易

WS 下单

通过私有 WebSocket 连接提交订单。

前置条件

在发送交易请求前,必须先获取有效的 listenKey 并建立私有 WebSocket 连接。


批量下单

单次请求最多提交 5 笔订单。

请求格式

{"action":"batch-orders","param":{"id":"1002","args":[{...},{...}]}}
字段必填类型描述
actionstring固定为 "batch-orders"
paramobject批量下单参数
param.idstring客户端请求 ID
param.argsarray下单参数数组,1~5 个对象

args[N] 对象字段

字段名必填类型描述
instIdstring产品 ID,如 "BTC-USDT-SWAP""BTC-USDT"
tdModestring交易模式:cashcrossisolated
ccystring保证金币种
sidestring订单方向:buysell
posSidestring持仓方向:longshort。SWAP 必填
mrgPositionstring仓位模式:mergesplit。SWAP 必填
closePosIdstring分仓平仓时的仓位 ID
ordTypestring订单类型:marketlimitpost_onlyioc
szstring委托数量
pxstring委托价格。limitpost_only 必填
tgtCcystring市价单数量类型:base_ccyquote_ccy。仅币币
tpTriggerPxstring止盈触发价。仅币币
slTriggerPxstring止损触发价。仅币币

请求示例

{
"action": "batch-orders",
"param": {
"id": "1002",
"args": [
{
"instId": "BTC-USDT-SWAP",
"tdMode": "cross",
"side": "buy",
"ordType": "limit",
"sz": "1",
"px": "65000",
"posSide": "long",
"mrgPosition": "merge"
},
{
"instId": "ETH-USDT-SWAP",
"tdMode": "cross",
"side": "sell",
"ordType": "market",
"sz": "2",
"posSide": "short",
"mrgPosition": "merge"
}
]
}
}

响应格式

{"id":"1002","action":"batch-orders","code":"0","msg":"","data":[{"ordId":"1000587866646229","sCode":"0","sMsg":""},{"ordId":"","sCode":"50012","sMsg":"order failed: InsufficientMoney"}]}

响应参数

字段名类型描述
idstring对应请求 ID
actionstring固定为 "batch-orders"
codestring处理结果码,"0" 表示已处理
msgstring处理结果说明
dataarray每笔结果,顺序与 args 一致
data[].ordIdstring订单 ID,失败时为空
data[].sCodestring单笔结果码,"0" 表示成功
data[].sMsgstring单笔结果说明

错误码

错误码说明
0成功
50002内部错误
50003数据验证失败
50005无效参数
50006缺少参数
50008无效配置
50011不支持
50012操作失败
50018无效请求

批量下单处理规则

场景错误码错误信息
全部下单成功0
param 非合法 JSON50018Invalid request json
args 为空或超过 5 个50005args length must be between 1 and 5
单笔:字段解析失败50003Invalid arg(单笔 sCode)
单笔:缺少 posSide/mrgPosition50006posSide/mrgPosition is required(单笔 sCode)
单笔:instId 无效50005invalid instId(单笔 sCode)
单笔:不支持的类型/订单50011unsupported(单笔 sCode)
单笔:后端下单失败50012Order failed(单笔 sCode)

注意事项

  • 订单状态变化通过现有 PushOrder 报单通知推送(action=PushOrdertable=Order
  • 成交结果通过现有 PushTrade 成交通知推送(action=PushTradetable=Trade
  • 本功能不新增推送频道