下单
描述
该接口支持现货、杠杆及合约下单,并可以自定义包括价格、数量和订单类型等参数
- 合约交易
合约单向持仓下只减仓订单,如果已经存在减仓单并且减仓单数量已经等于仓位数量,或者你新下的减仓单大于仓位剩余数量,会自动把之前减仓单取消,重新下新的减仓单,此时返回的信息 orderId会为 null,建议一定要传clientOid - 杠杆交易
杠杆下单会自动借贷 - 订单检查
- 合约:Price下单价格要满足价格乘数priceMultiplier的倍数,并且符合pricePrecision小数位。qty要满足大于minTradeUSDT并且满足sizeMultiplier的倍数
- 现货:price要满足小数位。qty下单数量必须要大于minTradeUSDT
- 开仓逻辑
- 双向持仓
开多: side=buy & posSide=long
开空:side=sell & posSide=short
平多:side=sell & posSide=long
平空:side=buy & posSide=short - 单向持仓
开多 side:buy
开空 side:sell
平多 side:sell reduceOnly:yes
平空 side:buy reduceOnly:yes
- 双向持仓
开多: side=buy & posSide=long
- 订单持有上限:
- 合约: USDT合约/币本位合约/USDC合约所有交易对加起来一共最多支持400个订单
- 现货: 现货/杠杆所有交易对最多支持400订单
- ClientOid 校验规则:
请确保您的 clientOid 满足正则表达式^[\.A-Z\:/a-z0-9_-]{1,32}$
- 请求监控:将针对您的 API 请求进行统计监控,当单日 (UTC 0点 - UTC 24点) 单账号(母账号和子账号整体运算)订单总数超过一定上限,平台将保留提醒、警告,以及进行必要性限制的权利。 使用API的客户预设接收本条款并负有配合调整的义务。
- 下单出现错误 { "code":"40762", "msg":"The order size is greater than the max open size", "requestTime":
1627293504612 }
两种原因- 账户余额不足
- 当前交易对当前杠杆仓位梯度已满,具体仓位梯度请参考 仓位档位说明
- 注意:操作订单时出现以下错误,请用clientOid查询订单详情,以确认操作的最终结果
{ "code": "40010", "msg": "Request timed out", "requestTime": 1666268894074, "data": null }
{ "code": "40725", "msg": "service return an error", "requestTime": 1666268894071, "data": null }
{ "code": "45001", "msg": "Unknown error", "requestTime": 1666268894071, "data": null } - 请联系对接BD或者RM申请接入权限
请求示例
{
"op": "trade",
"id": "1750034396082",
"category": "spot",
"topic": "place-order",
"args": [
{
"orderType": "limit",
"price": "100",
"qty": "0.1",
"side": "buy",
"symbol": "BTCUSDT",
"timeInForce": "gtc",
}
]
}
请求参数
参数名 | 参数类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作: trade 交易 |
id | String | 是 | 请求标识 |
topic | String | 是 | 频道名: place-order 下单 |
category | String | 是 | 业务线 spot 现货交易margin 杠杆交易usdt-futures U本位合约coin-futures 币本位合约usdc-futures USDC合约 |
args | List<Object> | 是 | 请求订阅的频道列表 |
> symbol | String | 是 | 交易对名称 |
> orderType | String | 是 | 订单类型 limit : 限价market : 市价 |
> qty | String | 是 | 下单数量 - 现货 市价买单,单位为quote coin 限价及市价卖单,单位为base coin - 合约 单位为base coin |
> price | String | 是 | 下单价格 订单类型为限价单 limit 时,该字段必填订单类型为市价单 market 时,该字段失效 |
> side | String | 是 | 下单方向buy : 买sell : 卖 |
> posSide | String | 否 | 交易方向long 多仓short 空仓只限于合约传此参数 其他忽略 用于合约双向持仓 |
> timeInForce | String | 否 | 订单执行策略 gtc : 普通订单, 订单会一直有效,直到被成交或者取消ioc : 无法立即成交的部分就撤销fok : 无法全部立即成交就撤销 post_only : 只做maker 订单类型为限价单limit时必填,若省略则默认为gtc 订单类型为市价单market时,该字段失效,系统会按照ioc执行 |
> reduceOnly | String | 否 | 是否只减仓YES 是NO 否默认值为 NO ; 仅适用于买卖单向持仓模式下 |
> clientOid | String | 否 | 自定义订单id |
> stpMode | String | 否 | STP(自成交预防)模式none :不设置STP(默认值)cancel_taker :取消taker单 cancel_maker :取消maker单 cancel_both :两者都取消 |
> tpTriggerBy | String | 否 | 预设止盈触发类型market 市场价格mark 标记价格如不填写,默认值为 market 市场价格该字段仅针对合约业务线 usdt-futures ,coin-futures 及usdc-futures 生效 |
> slTriggerBy | String | 否 | 预设止损触发类型market 市场价格mark 标记价格如不填写,默认值为 market 市场价格该字段仅针对合约业务线 usdt-futures ,coin-futures 及usdc-futures 生效 |
> takeprofit | String | 否 | 预设止盈触发价格 |
> stoploss | String | 否 | 预设止损触发价格 |
> tpOrderType | String | 否 | 止盈触发的策略单类型limit 限价单market 市价单 |
> slOrderType | String | 否 | 止损触发的策略单类型limit 限价单market 市价单 |
> tpLimitPrice | String | 否 | 止盈策略单执行价格 仅限价单 tpOrderType=limit 时有效,市价单忽略该参数 |
> slLimitPrice | String | 否 | 止损策略单执行价格 仅限价单 slOrderType=limit 时有效,市价单忽略该参数 |
响应示例
{
"event": "trade",
"id": "1750034396082",
"category": "spot",
"topic": "place-order",
"args": [
{
"symbol": "BTCUSDT",
"orderId": "xxxxxxxx",
"clientOid": "xxxxxxxx",
"cTime": "1750034397008"
}
],
"code": "0",
"msg": "success",
"ts": "1750034397076"
}
响应参数说明
返回字段 | 参数类型 | 字段说明 |
---|---|---|
event | String | 事件trade 交易error 参数错误 |
id | String | 请求标识 |
topic | String | 频道名place-order 下单 |
category | String | 业务线 spot 现货交易margin 杠杆交易usdt-futures U本位合约coin-futures 币本位合约usdc-futures USDC合约 |
args | List<Object> | 订单列表 |
> cTime | String | 订单创建时间 Unix毫秒时间戳 |
> symbol | String | 交易对名称,如BTCUSDT |
> orderId | String | 订单ID |
> clientOid | String | 自定义订单ID |
code | String | 状态码 |
msg | String | 状态消息 |
ts | String | 时间戳 |