跳到主要内容

WS 交易

WS 下单​

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

前置条件​

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


批量下单​

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

请求格式​

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

args[N] 对象字段​

字段名必填类型描述
instId是string产品 ID,如 "BTC-USDT-SWAP"、"BTC-USDT"
tdMode是string交易模式:cash、cross、isolated
ccy否string保证金币种
side是string订单方向:buy、sell
posSide否string持仓方向:long、short。SWAP 必填
mrgPosition否string仓位模式:merge、split。SWAP 必填
closePosId否string分仓平仓时的仓位 ID
ordType是string订单类型:market、limit、post_only、ioc
sz是string委托数量
px否string委托价格。limit、post_only 必填
tgtCcy否string市价单数量类型:base_ccy、quote_ccy。仅币币
tpTriggerPx否string止盈触发价。仅币币
slTriggerPx否string止损触发价。仅币币

请求示例​

{
"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=PushOrder,table=Order)
  • 成交结果通过现有 PushTrade 成交通知推送(action=PushTrade,table=Trade)
  • 本功能不新增推送频道