跳到主要内容

交易接口

下单 (TRADE)

POST /api/v3/order

权重: 1

参数:

名称类型是否必需描述
symbolSTRINGYES
sideENUMYES详见枚举定义:订单方向
typeENUMYES详见枚举定义:订单类型
timeInForceENUMNO详见枚举定义:生效时间
quantityDECIMALNO
quoteOrderQtyDECIMALNO
priceDECIMALNO
newClientOrderIdSTRINGNO用户自定义的orderid,如空缺系统会自动赋值。
strategyIdLONGNO
strategyTypeINTNO不能低于 1000000.
stopPriceDECIMALNOSTOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT 需要此参数。
trailingDeltaLONGNO用于 STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, 和 TAKE_PROFIT_LIMIT 类型的订单。
icebergQtyDECIMALNO仅有限价单(包括条件限价单与限价做事单)可以使用该参数,含义为创建冰山订单并指定冰山订单的数量。
newOrderRespTypeENUMNO指定响应类型 ACK, RESULT, or FULL; MARKETLIMIT 订单默认为FULL, 其他默认为ACK
selfTradePreventionModeENUMNO允许的 ENUM 取决于交易对的配置。支持的值有:STP 模式
recvWindowLONGNO
timestampLONGYES

根据 order type的不同,某些参数 有强制要求,具体如下:

Type强制要求的参数其他信息
LIMITtimeInForce, quantity, price
MARKETquantity市价买卖单可用quantity参数来设置base asset数量.
例如:BTCUSDT 市价单,BTC 买卖数量取决于quantity参数.

市价买卖单可用quoteOrderQty参数来设置quote asset数量. 正确的quantity取决于市场的流动性与quoteOrderQty
例如: 市价 BUY BTCUSDT,单子会基于quoteOrderQty- USDT 的数量,购买 BTC.
市价 SELL BTCUSDT,单子会卖出 BTC 来满足quoteOrderQty- USDT 的数量.
STOP_LOSSquantity, stopPrice, trailingDelta条件满足后会下MARKET单子. (例如:达到stopPricetrailingDelta被启动)
STOP_LOSS_LIMITtimeInForce, quantity, price, stopPrice, trailingDelta
TAKE_PROFITquantity, stopPrice, trailingDelta条件满足后会下MARKET单子. (例如:达到stopPricetrailingDelta被启动)
TAKE_PROFIT_LIMITtimeInForce, quantity, price, stopPrice, trailingDelta
LIMIT_MAKERquantity, price订单大部分情况下与普通的限价单没有区别,但是如果在当前价格会立即吃对手单并成交则下单会被拒绝。因此使用这个订单类型可以保证订单一定是挂单方,不会成为吃单方。

其他:

  • 任何LIMITLIMIT_MAKER只要填icebergQty参数都可以下冰上订单。
  • 冰山订单的 timeInForce必须设置为GTC
  • STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT_LIMITTAKE_PROFIT 单子都能同时填上trailingDeltastopPrice
  • 填上quoteOrderQty的市价单不会触犯过滤器的LOT_SIZE限制。订单的quantity会尽量满足quoteOrderQty的数量。

条件单的触发价格必须:

  • 比下单时当前市价高: STOP_LOSS BUY, TAKE_PROFIT SELL
  • 比下单时当前市价低: STOP_LOSS SELL, TAKE_PROFIT BUY

关于 newOrderRespType的三种选择

数据源: 撮合引擎

Response ACK: 返回速度最快,不包含成交信息,信息量最少

{
"symbol": "BTCUSDT",
"orderId": 28,
"orderListId": -1, // 除非此单是订单列表的一部分, 否则此值为 -1
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595
}

Response RESULT: 返回速度居中,返回吃单成交的少量信息

{
"symbol": "BTCUSDT",
"orderId": 28,
"orderListId": -1, // 除非此单是订单列表的一部分, 否则此值为 -1
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595,
"price": "1.00000000",
"origQty": "10.00000000",
"executedQty": "10.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "10.00000000",
"status": "FILLED",
"timeInForce": "GTC",
"type": "MARKET",
"side": "SELL"
"workingTime": 1507725176595,
"selfTradePreventionMode": "NONE"
}

Response FULL: 返回速度最慢,返回吃单成交的详细信息

{
"symbol": "BTCUSDT",
"orderId": 28,
"orderListId": -1, // 除非此单是订单列表的一部分, 否则此值为 -1
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595,
"price": "1.00000000",
"origQty": "10.00000000",
"executedQty": "10.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "10.00000000",
"status": "FILLED",
"timeInForce": "GTC",
"type": "MARKET",
"side": "SELL",
"workingTime": 1507725176595,
"selfTradePreventionMode": "NONE",
"fills": [
{
"price": "4000.00000000",
"qty": "1.00000000",
"commission": "4.00000000",
"commissionAsset": "USDT",
"tradeId": 56
},
{
"price": "3999.00000000",
"qty": "5.00000000",
"commission": "19.99500000",
"commissionAsset": "USDT",
"tradeId": 57
},
{
"price": "3998.00000000",
"qty": "2.00000000",
"commission": "7.99600000",
"commissionAsset": "USDT",
"tradeId": 58
},
{
"price": "3997.00000000",
"qty": "1.00000000",
"commission": "3.99700000",
"commissionAsset": "USDT",
"tradeId": 59
},
{
"price": "3995.00000000",
"qty": "1.00000000",
"commission": "3.99500000",
"commissionAsset": "USDT",
"tradeId": 60
}
]
}

订单响应中的特定条件时才会出现的字段

订单响应中的有一些字段仅在满足特定条件时才会出现。这些订单响应可以来自下订单,查询订单或取消订单,并且可以包括订单列表类型。 下面列出了这些字段:

名称描述显示的条件示例
icebergQty冰山订单的数量。只有在请求中发送 icebergQty 参数时才会出现。"icebergQty": "0.00000000"
preventedMatchIdsymbol 结合使用时,可用于查询因为 STP 导致订单失效的过期订单。只有在因为 STP 导致订单失效时可见。"preventedMatchId": 0
preventedQuantity因为 STP 导致订单失效的数量。只有在因为 STP 导致订单失效时可见。"preventedQuantity": "1.200000"
stopPrice用于设置逻辑订单中的触发价。STOP_LOSSTAKE_PROFITSTOP_LOSS_LIMITTAKE_PROFIT_LIMIT 订单时可见。"stopPrice": "23500.00000000"
strategyId策略单ID; 用以关联此订单对应的交易策略。如果在请求中添加了参数,则会出现。"strategyId": 37463720
strategyType策略单类型; 用以显示此订单对应的交易策略。如果在请求中添加了参数,则会出现。"strategyType": 1000000
trailingDelta用以定义追踪止盈止损订单被触发的价格差。出现在追踪止损订单中。"trailingDelta": 10
trailingTime追踪单被激活和跟踪价格变化的时间。出现在追踪止损订单中。"trailingTime": -1
usedSor用于确定订单是否使用SOR的字段在使用SOR下单时出现"usedSor": true
workingFloor用以定义订单是通过 SOR 还是由订单提交到的订单薄(order book)成交的。出现在使用了 SOR 的订单中。"workingFloor": "SOR"

测试下单接口 (TRADE)

POST /api/v3/order/test

用于测试订单请求,但不会提交到撮合引擎

权重:

条件权重
没有 computeCommissionRates1
computeCommissionRates20

参数:

除了 POST /api/v3/order 所有参数, 下面参数也支持:

参数名类型是否必需描述
computeCommissionRatesBOOLEANNO默认值: false

数据源: 缓存

响应:

没有 computeCommissionRates

{}

computeCommissionRates

{
"standardCommissionForOrder": { // 订单交易的标准佣金率
"maker": "0.00000112",
"taker": "0.00000114",
},
"taxCommissionForOrder": { // 订单交易的税率
"maker": "0.00000112",
"taker": "0.00000114",
},
"discount": { // 以BNB支付时的标准佣金折扣。
"enabledForAccount": true,
"enabledForSymbol": true,
"discountAsset": "BNB",
"discount": "0.25000000" // 当用BNB支付佣金时,在标准佣金上按此比率打折
}
}

查询订单 (USER_DATA)

GET /api/v3/order

查询订单状态

权重: 4

参数:

名称类型是否必需描述
symbolSTRINGYES
orderIdLONGNO
origClientOrderIdSTRINGNO
recvWindowLONGNO
timestampLONGYES

注意:

  • 至少需要发送 orderIdorigClientOrderId中的一个。
  • 当同时提供 orderIdorigClientOrderId 两个参数时,系统首先将会使用 orderId 来搜索订单。然后, 查找结果中的 origClientOrderId 的值将会被用来验证订单。如果两个条件都不满足,则请求将被拒绝。
  • 某些订单中 cummulativeQuoteQty<0,是由于这些订单是cummulativeQuoteQty功能上线之前的订单。

数据源: 缓存 => 数据库

响应:

{
"symbol": "LTCBTC", // 交易对
"orderId": 1, // 系统的订单ID
"orderListId": -1, // 除非此单是订单列表的一部分, 否则此值为 -1
"clientOrderId": "myOrder1", // 客户自己设置的ID
"price": "0.1", // 订单价格
"origQty": "1.0", // 用户设置的原始订单数量
"executedQty": "0.0", // 交易的订单数量
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.0", // 累计交易的金额
"status": "NEW", // 订单状态
"timeInForce": "GTC", // 订单的时效方式
"type": "LIMIT", // 订单类型, 比如市价单,现价单等
"side": "BUY", // 订单方向,买还是卖
"stopPrice": "0.0", // 止损价格
"icebergQty": "0.0", // 冰山数量
"time": 1499827319559, // 订单时间
"updateTime": 1499827319559, // 最后更新时间
"isWorking": true, // 订单是否出现在orderbook中
"workingTime":1499827319559, // 订单添加到 order book 的时间
"origQuoteOrderQty": "0.000000", // 原始的交易金额
"selfTradePreventionMode": "NONE" // 如何处理自我交易模式
}

注意: 上面的 payload 没有显示所有可以出现的字段,更多请看 订单响应中的特定条件时才会出现的字段 部分。

撤销订单 (TRADE)

DELETE /api/v3/order

权重: 1

参数:

名称类型是否必需描述
symbolSTRINGYES
orderIdLONGNO
origClientOrderIdSTRINGNO
newClientOrderIdSTRINGNO用户自定义的本次撤销操作的ID(注意不是被撤销的订单的自定义ID)。如无指定会自动赋值。
cancelRestrictionsENUMNO支持的值:
ONLY_NEW - 如果订单状态为 NEW,撤销将成功。
ONLY_PARTIALLY_FILLED - 如果订单状态为 PARTIALLY_FILLED,撤销将成功。
recvWindowLONGNO
timestampLONGYES

注意:

  • orderIdorigClientOrderId 必须至少发送一个。
  • 当同时提供 orderIdorigClientOrderId 两个参数时,系统首先将会使用 orderId 来搜索订单。然后, 查找结果中的 origClientOrderId 的值将会被用来验证订单。如果两个条件都不满足,则请求将被拒绝。

数据源: 撮合引擎

响应:

{
"symbol": "LTCBTC",
"orderId": 28,
"orderListId": -1, // 除非此单是订单列表的一部分, 否则此值为 -1
"origClientOrderId": "myOrder1",
"clientOrderId": "cancelMyOrder1",
"transactTime": 1507725176595,
"price": "1.00000000",
"origQty": "10.00000000",
"executedQty": "8.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "8.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"selfTradePreventionMode": "NONE"
}

注意: 上面的 payload 没有显示所有可以出现的字段,更多请看 订单响应中的特定条件时才会出现的字段 部分。

  • 当仅发送 orderId 时,取消订单的执行(单个 Cancel 或作为 Cancel-Replace 的一部分)总是更快。发送 origClientOrderId 或同时发送 orderId + origClientOrderId 会稍慢。

关于 cancelRestrictions

  • 如果 cancelRestrictions 值不是任何受支持的值,则错误将是:
{
"code": -1145,
"msg": "Invalid cancelRestrictions"
}
  • 如果订单没有通过 cancelRestrictions 的条件,错误将是:
{
"code": -2011,
"msg": "Order was not canceled due to cancel restrictions."
}

撤销单一交易对的所有挂单 (TRADE)

DELETE /api/v3/openOrders

撤销单一交易对下所有挂单。这也包括了来自订单列表的挂单。

权重: 1

参数:

名称类型是否必需描述
symbolSTRINGYES
recvWindowLONGNO不能大于 60000
timestampLONGYES

数据源: 撮合引擎

响应:

[
{
"symbol": "BTCUSDT",
"origClientOrderId": "E6APeyTJvkMvLMYMqu1KQ4",
"orderId": 11,
"orderListId": -1,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"transactTime": 1684804350068,
"price": "0.089853",
"origQty": "0.178622",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"selfTradePreventionMode": "NONE"
},
{
"symbol": "BTCUSDT",
"origClientOrderId": "A3EF2HCwxgZPFMrfwbgrhv",
"orderId": 13,
"orderListId": -1,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"transactTime": 1684804350068,
"price": "0.090430",
"origQty": "0.178622",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"selfTradePreventionMode": "NONE"
},
{
"orderListId": 1929,
"contingencyType": "OCO",
"listStatusType": "ALL_DONE",
"listOrderStatus": "ALL_DONE",
"listClientOrderId": "2inzWQdDvZLHbbAmAozX2N",
"transactionTime": 1585230948299,
"symbol": "BTCUSDT",
"orders": [
{
"symbol": "BTCUSDT",
"orderId": 20,
"clientOrderId": "CwOOIPHSmYywx6jZX77TdL"
},
{
"symbol": "BTCUSDT",
"orderId": 21,
"clientOrderId": "461cPg51vQjV3zIMOXNz39"
}
],
"orderReports": [
{
"symbol": "BTCUSDT",
"origClientOrderId": "CwOOIPHSmYywx6jZX77TdL",
"orderId": 20,
"orderListId": 1929,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"transactTime": 1684804350068,
"price": "0.668611",
"origQty": "0.690354",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "STOP_LOSS_LIMIT",
"side": "BUY",
"stopPrice": "0.378131",
"icebergQty": "0.017083",
"selfTradePreventionMode": "NONE"
},
{
"symbol": "BTCUSDT",
"origClientOrderId": "461cPg51vQjV3zIMOXNz39",
"orderId": 21,
"orderListId": 1929,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"transactTime": 1684804350068,
"price": "0.008791",
"origQty": "0.690354",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "BUY",
"icebergQty": "0.639962",
"selfTradePreventionMode": "NONE"
}
]
}
]

撤消挂单再下单 (TRADE)

POST /api/v3/order/cancelReplace

撤消挂单并在同个交易对上重新下单。

在撤消订单和下单前会判断: 1) 过滤器参数, 以及 2) 目前下单数量。

即使请求中没有尝试发送新订单,比如(newOrderResult: NOT_ATTEMPTED),下单的数量仍然会加1。

权重: 1

参数:

名称类型是否必需描述
symbolSTRINGYES
sideENUMYES
typeENUMYES
cancelReplaceModeENUMYES指定类型:STOP_ON_FAILURE - 如果撤消订单失败将不会继续重新下单。
ALLOW_FAILURE - 不管撤消订单是否成功都会继续重新下单。
timeInForceENUMNO
quantityDECIMALNO
quoteOrderQtyDECIMALNO
priceDECIMALNO
cancelNewClientOrderIdSTRINGNO用户自定义的id,如空缺系统会自动赋值
cancelOrigClientOrderIdSTRINGNO必须提供 cancelOrderId 或者 cancelOrigClientOrderId

当同时提供 cancelOrderIdcancelOrigClientOrderId 两个参数时,系统首先将会使用 cancelOrderId 来搜索订单。

然后, 查找结果中的 cancelOrigClientOrderId 的值将会被用来验证订单。

如果两个条件都不满足,则请求将被拒绝。
cancelOrderIdLONGNO必须提供 cancelOrderId 或者 cancelOrigClientOrderId

当同时提供 cancelOrderIdcancelOrigClientOrderId 两个参数时,系统首先将会使用 cancelOrderId 来搜索订单。

然后, 查找结果中的 cancelOrigClientOrderId 的值将会被用来验证订单。

如果两个条件都不满足,则请求将被拒绝。
newClientOrderIdSTRINGNO用于辨识新订单。
strategyIdLONGNO
strategyTypeINTNO不能低于 1000000
stopPriceDECIMALNO
trailingDeltaLONGNO
icebergQtyDECIMALNO
newOrderRespTypeENUMNO指定响应类型:
指定响应类型 ACK, RESULT, or FULL; MARKETLIMIT 订单默认为FULL, 其他默认为ACK
selfTradePreventionModeENUMNO允许的 ENUM 取决于交易对的配置。支持的值有:STP 模式
cancelRestrictionsENUMNO支持的值:
ONLY_NEW - 如果订单状态为 NEW,撤销将成功。
ONLY_PARTIALLY_FILLED - 如果订单状态为 PARTIALLY_FILLED,撤销将成功。
orderRateLimitExceededModeENUMNO支持的值:

“DO_NOTHING”(默认值)- 仅在账户未超过未成交订单频率限制时,会尝试取消订单。

“CANCEL_ONLY” - 将始终取消订单。
recvWindowLONGNO不能大于 60000
timestampLONGYES

如同 POST /api/v3/order,额外的强制参数取决于 type

响应格式根据消息的处理是成功、部分成功还是失败而有所不同。

数据来源: 撮合引擎

请求 响应
cancelReplaceMode orderRateLimitExceededMode 未成交订单数 cancelResult newOrderResult status
STOP_ON_FAILURE DO_NOTHING 在限制范围内 SUCCESS SUCCESS 200
FAILURE NOT_ATTEMPTED 400
SUCCESS FAILURE 409
超出限制范围 SUCCESS SUCCESS N/A
FAILURE NOT_ATTEMPTED N/A
SUCCESS FAILURE N/A
CANCEL_ONLY 在限制范围内 SUCCESS SUCCESS 200
FAILURE NOT_ATTEMPTED 400
SUCCESS FAILURE 409
超出限制范围 FAILURE NOT_ATTEMPTED 429
SUCCESS FAILURE 429
ALLOW_FAILURE DO_NOTHING 在限制范围内 SUCCESS SUCCESS 200
FAILURE FAILURE 400
FAILURE SUCCESS 409
SUCCESS FAILURE 409
超出限制范围 SUCCESS SUCCESS N/A
FAILURE FAILURE N/A
FAILURE SUCCESS N/A
SUCCESS FAILURE N/A
CANCEL_ONLY 在限制范围内 SUCCESS SUCCESS 200
FAILURE FAILURE 400
FAILURE SUCCESS 409
SUCCESS FAILURE 409
超出限制范围 SUCCESS SUCCESS N/A
FAILURE FAILURE 400
FAILURE SUCCESS N/A
SUCCESS FAILURE 409

响应:没有超出未成交订单计数时的 Response SUCCESS

// 撤单和下单都成功
{
"cancelResult": "SUCCESS",
"newOrderResult": "SUCCESS",
"cancelResponse": {
"symbol": "BTCUSDT",
"origClientOrderId": "DnLo3vTAQcjha43lAZhZ0y",
"orderId": 9,
"orderListId": -1,
"clientOrderId": "osxN3JXAtJvKvCqGeMWMVR",
"transactTime": 1684804350068,
"price": "0.01000000",
"origQty": "0.000100",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL"
},
"newOrderResponse": {
"symbol": "BTCUSDT",
"orderId": 10,
"orderListId": -1,
"clientOrderId": "wOceeeOzNORyLiQfw7jd8S",
"transactTime": 1652928801803,
"price": "0.02000000",
"origQty": "0.040000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"fills": []
}
}

响应:选择了 STOP_ON_FAILURE 而且账户没有超出未成交订单计数时, 撤单出现错误

{
"code": -2022,
"msg": "Order cancel-replace failed.",
"data": {
"cancelResult": "FAILURE",
"newOrderResult": "NOT_ATTEMPTED",
"cancelResponse": {
"code": -2011,
"msg": "Unknown order sent."
},
"newOrderResponse": null
}
}

响应:撤单成功而且账户没有超出未成交订单计数时,下单失败

{
"code": -2021,
"msg": "Order cancel-replace partially failed.",
"data": {
"cancelResult": "SUCCESS",
"newOrderResult": "FAILURE",
"cancelResponse": {
"symbol": "BTCUSDT",
"origClientOrderId": "86M8erehfExV8z2RC8Zo8k",
"orderId": 3,
"orderListId": -1,
"clientOrderId": "G1kLo6aDv2KGNTFcjfTSFq",
"price": "0.006123",
"origQty": "10000.000000",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "SELL"
},
"newOrderResponse": {
"code": -2010,
"msg": "Order would immediately match and take."
}
}
}

响应:选择 ALLOW_FAILURE 而且账户没有超出未成交订单计数时, 撤单出现错误

{
"code": -2021,
"msg": "Order cancel-replace partially failed.",
"data": {
"cancelResult": "FAILURE",
"newOrderResult": "SUCCESS",
"cancelResponse": {
"code": -2011,
"msg": "Unknown order sent."
},
"newOrderResponse": {
"symbol": "BTCUSDT",
"orderId": 11,
"orderListId": -1,
"clientOrderId": "pfojJMg6IMNDKuJqDxvoxN",
"transactTime": 1648540168818
}
}
}

响应:选择 cancelReplaceMode=ALLOW_FAILURE 而且账户没有超出未成交订单计数时, 撤单和下单失败

{
"code": -2022,
"msg": "Order cancel-replace failed.",
"data": {
"cancelResult": "FAILURE",
"newOrderResult": "FAILURE",
"cancelResponse": {
"code": -2011,
"msg": "Unknown order sent."
},
"newOrderResponse": {
"code": -2010,
"msg": "Order would immediately match and take."
}
}
}

响应:选择 orderRateLimitExceededMode=DO_NOTHING 而且账户超出未成交订单计数时

{
"code": -1015,
"msg": "Too many new orders; current limit is 1 orders per 10 SECOND."
}

响应:选择 orderRateLimitExceededMode=CANCEL_ONLY 而且账户超出未成交订单计数时

{
"code": -2021,
"msg": "Order cancel-replace partially failed.",
"data": {
"cancelResult": "SUCCESS",
"newOrderResult": "FAILURE",
"cancelResponse": {
"symbol": "LTCBNB",
"origClientOrderId": "GKt5zzfOxRDSQLveDYCTkc",
"orderId": 64,
"orderListId": -1,
"clientOrderId": "loehOJF3FjoreUBDmv739R",
"transactTime": 1715779007228,
"price": "1.00",
"origQty": "10.00000000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"selfTradePreventionMode": "NONE"
},
"newOrderResponse": {
"code": -1015,
"msg": "Too many new orders; current limit is 1 orders per 10 SECOND."
}
}
}

注意:

  • 上面的 payload 没有显示所有可以出现的字段,更多请看 订单响应中的特定条件时才会出现的字段 部分。
  • 当仅发送 orderId 时,取消订单的执行(单个 Cancel 或作为 Cancel-Replace 的一部分)总是更快。发送 origClientOrderId 或同时发送 orderId + origClientOrderId 会稍慢。

修改订单并保留优先级 (TRADE)

PUT /api/v3/order/amend/keepPriority

由客户发送以减少其现有当前订单的原始数量。

权重: 1

参数:

名称类型是否必需描述
symbolSTRINGYES
orderIdLONGNO*需提供 orderIdorigClientOrderId
origClientOrderIdSTRINGNO*需提供 orderIdorigClientOrderId
newClientOrderIdSTRINGNO*订单在被修改后被赋予的新 client order ID。
如果未发送则自动生成。
可以将当前 clientOrderId 作为 newClientOrderId 发送来重用当前 clientOrderId 的值。
newQtyDECIMALYES交易的新数量。 newQty 必须大于0, 但是必须比订单的原始数量小。
recvWindowLONGNO
timestampLONGYES

数据源: 撮合引擎

来自单个订单的响应:

{
"transactTime": 1741926410255,
"executionId": 75,
"amendedOrder":
{
"symbol": "BTCUSDT",
"orderId": 33,
"orderListId": -1,
"origClientOrderId": "5xrgbMyg6z36NzBn2pbT8H",
"clientOrderId": "PFaq6hIHxqFENGfdtn4J6Q",
"price": "6.00000000",
"qty": "5.00000000",
"executedQty": "0.00000000",
"preventedQty": "0.00000000",
"quoteOrderQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"workingTime": 1741926410242,
"selfTradePreventionMode": "NONE"
}
}

来自订单列表中单个订单的响应:

{
"transactTime": 1741669661670,
"executionId": 22,
"amendedOrder":
{
"symbol": "BTCUSDT",
"orderId": 9,
"orderListId": 1,
"origClientOrderId": "W0fJ9fiLKHOJutovPK3oJp",
"clientOrderId": "UQ1Np3bmQ71jJzsSDW9Vpi",
"price": "0.00000000",
"qty": "4.00000000",
"executedQty": "0.00000000",
"preventedQty": "0.00000000",
"quoteOrderQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "PENDING_NEW",
"timeInForce": "GTC",
"type": "MARKET",
"side": "BUY",
"selfTradePreventionMode": "NONE"
},
"listStatus":
{
"orderListId": 1,
"contingencyType": "OTO",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "AT7FTxZXylVSwRoZs52mt3",
"symbol": "BTCUSDT",
"orders":
[
{
"symbol": "BTCUSDT",
"orderId": 8,
"clientOrderId": "GkwwHZUUbFtZOoH1YsZk9Q"
},
{
"symbol": "BTCUSDT",
"orderId": 9,
"clientOrderId": "UQ1Np3bmQ71jJzsSDW9Vpi"
}
]
}
}

注意: 上面的 payload 没有显示所有可以出现的字段,更多请看 订单响应中的特定条件时才会出现的字段 部分。

查看账户当前挂单 (USER_DATA)

GET /api/v3/openOrders

请小心使用不带symbol参数的调用

权重: 带symbol: 6 不带: 80

参数:

名称类型是否必需描述
symbolSTRINGNO
recvWindowLONGNO
timestampLONGYES
  • 不带symbol参数,会返回所有交易对的挂单

数据源: 缓存 => 数据库

响应:

[
{
"symbol": "LTCBTC",
"orderId": 1,
"orderListId": -1, // 除非此单是订单列表的一部分, 否则此值为 -1
"clientOrderId": "myOrder1",
"price": "0.1",
"origQty": "1.0",
"executedQty": "0.0",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
"icebergQty": "0.0",
"time": 1499827319559,
"updateTime": 1499827319559,
"isWorking": true,
"origQuoteOrderQty": "0.000000",
"workingTime": 1499827319559,
"selfTradePreventionMode": "NONE"
}
]

注意: 上面的 payload 没有显示所有可以出现的字段,更多请看 订单响应中的特定条件时才会出现的字段 部分。

查询所有订单(包括历史订单) (USER_DATA)

GET /api/v3/allOrders

权重: 20

参数:

名称类型是否必需描述
symbolSTRINGYES
orderIdLONGNO只返回此orderID之后的订单,缺省返回最近的订单
startTimeLONGNO
endTimeLONGNO
limitINTNO默认值: 500; 最大值: 1000
recvWindowLONGNO
timestampLONGYES

注意:

  • 如设置 orderId , 订单量将 >= orderId。否则将返回最新订单。
  • 一些历史订单 cummulativeQuoteQty < 0, 是指数据此时不存在。
  • 如果设置 startTimeendTime, orderId 就不需要设置。
  • startTimeendTime之间的时间不能超过 24 小时。

数据源: 数据库

响应:

[
{
"symbol": "LTCBTC",
"orderId": 1,
"orderListId": -1, // 除非此单是订单列表的一部分, 否则此值为 -1
"clientOrderId": "myOrder1",
"price": "0.1",
"origQty": "1.0",
"executedQty": "0.0",
"origQuoteOrderQty": "0.0",
"cummulativeQuoteQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
"icebergQty": "0.0",
"time": 1499827319559,
"updateTime": 1499827319559,
"isWorking": true,
"origQuoteOrderQty": "0.000000",
"workingTime": 1499827319559,
"selfTradePreventionMode": "NONE"
}
]

注意: 上面的 payload 没有显示所有可以出现的字段,更多请看 订单响应中的特定条件时才会出现的字段 部分。

订单列表(Order lists)

发送新 OCO 订单 - 已弃用 (TRADE)

POST /api/v3/order/oco

权重: 1

发送新的 OCO。

  • 价格限制:
    • SELL: Limit price > 最后交易价格 > stop Price
    • BUY: Limit price < 最后交易价格 < stop Price
  • 数量限制:
    • 两条腿的数量必须相同。
    • 不过, 冰山 交易的数量不一定相同
  • OCO2个订单添加到未成交的订单计数, EXCHANGE_MAX_ORDERS 过滤器和 MAX_NUM_ORDERS 过滤器中。

参数:

名称类型是否必需描述
symbolSTRINGYES
listClientOrderIdSTRINGNO整个orderList的唯一ID
sideENUMYES详见枚举定义:订单方向
quantityDECIMALYES
limitClientOrderIdSTRINGNO限价单的唯一ID
priceDECIMALYES
limitStrategyIdLONGNO
limitStrategyTypeINTNO不能低于 1000000
limitIcebergQtyDECIMALNO
trailingDeltaLONGNO
stopClientOrderIdSTRINGNO止损/止损限价单的唯一ID
stopPriceDECIMALYES
stopStrategyIdLONGNO
stopStrategyTypeINTNO不能低于 1000000
stopLimitPriceDECIMALNO如果提供,须配合提交stopLimitTimeInForce
stopIcebergQtyDECIMALNO
stopLimitTimeInForceENUMNO有效值 GTC/FOK/IOC
newOrderRespTypeENUMNO详见枚举定义:订单返回类型
selfTradePreventionModeENUMNO允许的 ENUM 取决于交易对的配置。支持的值有:STP 模式
recvWindowLONGNO不能大于 60000
timestampLONGYES

数据源: 撮合引擎

响应

{
"orderListId": 0,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "JYVpp3F0f5CAG15DhtrqLp",
"transactionTime": 1563417480525,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 2,
"clientOrderId": "Kk7sqHb9J6mJWTMDVW7Vos"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"clientOrderId": "xTXKaGYd4bluPVp78IVRvl"
}
],
"orderReports": [
{
"symbol": "LTCBTC",
"orderId": 2,
"orderListId": 0,
"clientOrderId": "Kk7sqHb9J6mJWTMDVW7Vos",
"transactTime": 1563417480525,
"price": "0.000000",
"origQty": "0.624363",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "STOP_LOSS",
"side": "BUY",
"stopPrice": "0.960664",
"workingTime": -1,
"selfTradePreventionMode": "NONE"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"orderListId": 0,
"clientOrderId": "xTXKaGYd4bluPVp78IVRvl",
"transactTime": 1563417480525,
"price": "0.036435",
"origQty": "0.624363",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "BUY",
"workingTime": 1563417480525,
"selfTradePreventionMode": "NONE"
}
]
}

New Order list - OCO (TRADE)

POST /api/v3/orderList/oco

发送新 one-cancels-the-other (OCO) 订单,激活其中一个订单会立即取消另一个订单。

  • OCO 包含了两个订单,分别被称为 上方订单下方订单
  • 其中一个订单必须是 LIMIT_MAKER/TAKE_PROFIT/TAKE_PROFIT_LIMIT 订单,另一个订单必须是 STOP_LOSSSTOP_LOSS_LIMIT 订单。
  • 针对价格限制:
    • 如果 OCO 订单方向是 SELL
      • LIMIT_MAKER/TAKE_PROFIT_LIMIT price > 最后交易价格 > STOP_LOSS/STOP_LOSS_LIMIT stopPrice
      • TAKE_PROFIT stopPrice > 最后交易价格 > STOP_LOSS/STOP_LOSS_LIMIT stopPrice
    • 如果 OCO 订单方向是 BUY
      • LIMIT_MAKER/TAKE_PROFIT_LIMIT price < 最后交易价格 < stopPrice
      • TAKE_PROFIT stopPrice < 最后交易价格 < STOP_LOSS/STOP_LOSS_LIMIT stopPrice

权重: 1

参数:

名称类型是否必需描述
symbolSTRINGYes
listClientOrderIdSTRINGNo整个 OCO order list 的唯一ID。 如果未发送则自动生成。
仅当前一个订单已填满或完全过期时,才会接受具有相同的listClientOrderId
listClientOrderIdaboveClientOrderIdbelowCLientOrderId 不同。
sideENUMYes订单方向:BUY or SELL
quantityDECIMALYes两个订单的数量。
aboveTypeENUMYes支持值:STOP_LOSS_LIMIT, STOP_LOSS, LIMIT_MAKER, TAKE_PROFIT, TAKE_PROFIT_LIMIT
aboveClientOrderIdSTRINGNo上方订单的唯一ID。 如果未发送则自动生成。
aboveIcebergQtyLONGNo请注意,只有当 aboveTimeInForceGTC 时才能使用。
abovePriceDECIMALNoaboveTypeSTOP_LOSS_LIMIT, LIMIT_MAKERTAKE_PROFIT_LIMIT 时,可用以指定限价。
aboveStopPriceDECIMALNo如果 aboveTypeSTOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFITTAKE_PROFIT_LIMIT 才能使用。
必须指定 aboveStopPriceaboveTrailingDelta 或两者。
aboveTrailingDeltaLONGNo请看 追踪止盈止损(Trailing Stop)订单常见问题
aboveTimeInForceDECIMALNo如果 aboveTypeSTOP_LOSS_LIMITTAKE_PROFIT_LIMIT,则为必填项。
aboveStrategyIdLONGNo订单策略中上方订单的 ID。
aboveStrategyTypeINTNo上方订单策略的任意数值。
小于 1000000 的值被保留,无法使用。
belowTypeENUMYes支持值:STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT,TAKE_PROFIT_LIMIT
belowClientOrderIdSTRINGNo
belowIcebergQtyLONGNo请注意,只有当 belowTimeInForceGTC 时才能使用。
belowPriceDECIMALNobelowTypeSTOP_LOSS_LIMIT, LIMIT_MAKERTAKE_PROFIT_LIMIT 时,可用以指定限价。
belowStopPriceDECIMALNo如果 belowTypeSTOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFITTAKE_PROFIT_LIMIT 才能使用。
必须指定 belowStopPricebelowTrailingDelta 或两者。
belowTrailingDeltaLONGNo请看 追踪止盈止损(Trailing Stop)订单常见问题
belowTimeInForceENUMNo如果belowTypeSTOP_LOSS_LIMITTAKE_PROFIT_LIMIT,则为必须配合提交的值。
belowStrategyIdLONGNo订单策略中下方订单的 ID。
belowStrategyTypeINTNo下方订单策略的任意数值。
小于 1000000 的值被保留,无法使用。
newOrderRespTypeENUMNo响应格式可选值: ACK, RESULT, FULL
selfTradePreventionModeENUMNo允许的 ENUM 取决于交易对上的配置。 支持值:STP 模式
recvWindowLONGNo不能大于 60000
timestampLONGYes

数据源: 撮合引擎

响应:

使用 newOrderRespType 参数来选择 orderReports 的响应格式。以下示例适用于 RESULT 响应类型。 请参阅 POST /api/v3/order了解更多 orderReports 的响应类型。

{
"orderListId": 1,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "lH1YDkuQKWiXVXHPSKYEIp",
"transactionTime": 1710485608839,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 10,
"clientOrderId": "44nZvqpemY7sVYgPYbvPih"
},
{
"symbol": "LTCBTC",
"orderId": 11,
"clientOrderId": "NuMp0nVYnciDiFmVqfpBqK"
}
],
"orderReports": [
{
"symbol": "LTCBTC",
"orderId": 10,
"orderListId": 1,
"clientOrderId": "44nZvqpemY7sVYgPYbvPih",
"transactTime": 1710485608839,
"price": "1.00000000",
"origQty": "5.00000000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "STOP_LOSS_LIMIT",
"side": "SELL",
"stopPrice": "1.00000000",
"workingTime": -1,
"icebergQty": "1.00000000",
"selfTradePreventionMode": "NONE"
},
{
"symbol": "LTCBTC",
"orderId": 11,
"orderListId": 1,
"clientOrderId": "NuMp0nVYnciDiFmVqfpBqK",
"transactTime": 1710485608839,
"price": "3.00000000",
"origQty": "5.00000000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "SELL",
"workingTime": 1710485608839,
"selfTradePreventionMode": "NONE"
}
]
}

New Order List - OTO (TRADE)

POST /api/v3/orderList/oto

发送一个新的 OTO 订单。

  • 一个 OTO 订单(One-Triggers-the-Other)是一个包含了两个订单的订单列表.
  • 第一个订单被称为生效订单,必须为 LIMITLIMIT_MAKER 类型的订单。最初,订单簿上只有生效订单。
  • 第二个订单被称为待处理订单。它可以是任何订单类型,但不包括使用参数 quoteOrderQtyMARKET 订单。只有当生效订单完全成交时,待处理订单才会被自动下单。
  • 如果生效订单或者待处理订单中的任意一个被单独取消,订单列表中剩余的那个订单也会被随之取消或过期。
  • 如果生效订单在下订单列表后立即完全成交,则可能会得到订单响应。其中,生效订单的状态为 FILLED ,但待处理订单的状态为 PENDING_NEW。针对这类情况,如果需要检查当前状态,您可以查询相关的待处理订单。
  • OTO 订单将2 个订单添加到未成交订单计数,EXCHANGE_MAX_NUM_ORDERS 过滤器和 MAX_NUM_ORDERS 过滤器中。

权重: 1

参数:

名称类型是否必需描述
symbolSTRINGYES
listClientOrderIdSTRINGNO整个订单列表的唯一ID。 如果未发送则自动生成。
仅当前一个订单列表已填满或完全过期时,才会接受含有相同 listClientOrderId 值的新订单列表。
listClientOrderIdworkingClientOrderIdpendingClientOrderId 不同。
newOrderRespTypeENUMNO用于设置JSON响应的格式。 支持的数值: 订单返回类型
selfTradePreventionModeENUMNO允许的数值取决于交易对上的配置。参考 STP 模式
workingTypeENUMYES支持的数值: LIMITLIMIT_MAKER
workingSideENUMYES支持的数值: 订单方向
workingClientOrderIdSTRINGNO用于标识生效订单的唯一ID。
如果未发送则自动生成。
workingPriceDECIMALYES
workingQuantityDECIMALYES用于设置生效订单的数量。
workingIcebergQtyDECIMALNO只有当 workingTimeInForceGTC 时才能使用。
workingTimeInForceENUMNO支持的数值: 生效时间
workingStrategyIdLONGNO订单策略中用于标识生效订单的 ID。
workingStrategyTypeINTNO用于标识生效订单策略的任意数值。
小于 1000000 的值被保留,无法使用。
pendingTypeENUMYES支持的数值: 订单类型
请注意,系统不支持使用 quoteOrderQtyMARKET 订单。
pendingSideENUMYES支持的数值: 订单方向
pendingClientOrderIdSTRINGNO用于标识待处理订单的唯一ID。
如果未发送则自动生成。
pendingPriceDECIMALNO
pendingStopPriceDECIMALNO
pendingTrailingDeltaDECIMALNO
pendingQuantityDECIMALYES用于设置待处理订单的数量。
pendingIcebergQtyDECIMALNO只有当 pendingTimeInForceGTC 或者当 pendingTypeLIMIT_MAKER 时才能使用。
pendingTimeInForceENUMNO支持的数值: 生效时间
pendingStrategyIdLONGNO订单策略中用于标识待处理订单的 ID。
pendingStrategyTypeINTNO用于标识待处理订单策略的任意数值。
小于 1000000 的值被保留,无法使用。
recvWindowLONGNO不能大于 60000
timestampLONGYES

根据 pendingType 或者 workingType 的不同值,对于某些参数的强制要求

根据 pendingType 或者workingType的不同值,对于某些可选参数有强制要求,具体如下:

类型强制要求的参数其他信息
workingType = LIMITworkingTimeInForce
pendingType = LIMITpendingPricependingTimeInForce
pendingType = STOP_LOSSTAKE_PROFITpendingStopPrice 与/或 pendingTrailingDelta
pendingType = STOP_LOSS_LIMITTAKE_PROFIT_LIMITpendingPricependingStopPrice 与/或 pendingTrailingDeltapendingTimeInForce

数据源: 撮合引擎

响应:

{
"orderListId": 0,
"contingencyType": "OTO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "yl2ERtcar1o25zcWtqVBTC",
"transactionTime": 1712289389158,
"symbol": "ABCDEF",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "Bq17mn9fP6vyCn75Jw1xya"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "arLFo0zGJVDE69cvGBaU0d"
}
],
"orderReports": [
{
"symbol": "LTCBTC",
"orderId": 4,
"orderListId": 0,
"clientOrderId": "Bq17mn9fP6vyCn75Jw1xya",
"transactTime": 1712289389158,
"price": "1.00000000",
"origQty": "1.00000000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"workingTime": 1712289389158,
"selfTradePreventionMode": "NONE"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"orderListId": 0,
"clientOrderId": "arLFo0zGJVDE69cvGBaU0d",
"transactTime": 1712289389158,
"price": "0.00000000",
"origQty": "5.00000000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "PENDING_NEW",
"timeInForce": "GTC",
"type": "MARKET",
"side": "BUY",
"workingTime": -1,
"selfTradePreventionMode": "NONE"
}
]
}

注意: 上面的 payload 没有显示所有可以出现的字段,更多请看 订单响应中的特定条件时才会出现的字段 部分。

New Order List - OTOCO (TRADE)

POST /api/v3/orderList/otoco

发送一个新的 OTOCO 订单。

  • 一个 OTOCO 订单(One-Triggers-One-Cancels-the-Other)是一个包含了三个订单的订单列表。
  • 第一个订单被称为生效订单,必须为 LIMITLIMIT_MAKER 类型的订单。最初,订单簿上只有生效订单。
    • 生效订单的行为与此一致 OTO
  • 一个OTOCO订单有两个待处理订单(pending above 和 pending below),它们构成了一个 OCO 订单列表。只有当生效订单完全成交时,待处理订单们才会被自动下单。
    • 待处理上方(pending above)订单和待处理下方(pending below)订单都遵循与 OCO 订单列表相同的规则 Order List OCO
  • OTOCO 在未成交订单计数,EXCHANGE_MAX_NUM_ORDERS 过滤器和 MAX_NUM_ORDERS 过滤器的基础上添加3个订单

权重: 1

参数:

名称类型是否必需描述
symbolSTRINGYES
listClientOrderIdSTRINGNO整个订单列表的唯一ID。 如果未发送则自动生成。
仅当前一个订单列表已填满或完全过期时,才会接受含有相同 listClientOrderId 值的新订单列表。
listClientOrderIdworkingClientOrderIdpendingAboveClientOrderId 以及 pendingBelowClientOrderId 不同。
newOrderRespTypeENUMNO用于设置JSON响应的格式。 支持的数值: 订单返回类型
selfTradePreventionModeENUMNO允许的数值取决于交易对上的配置。参考 STP 模式
workingTypeENUMYES支持的数值: LIMITLIMIT_MAKER
workingSideENUMYES支持的数值: 订单方向
workingClientOrderIdSTRINGNO用于标识生效订单的唯一ID。
如果未发送则自动生成。
workingPriceDECIMALYES
workingQuantityDECIMALYES
workingIcebergQtyDECIMALNO只有当 workingTimeInForceGTC 时才能使用。
workingTimeInForceENUMNO支持的数值: 生效时间
workingStrategyIdLONGNO订单策略中用于标识生效订单的 ID。
workingStrategyTypeINTNO用于标识生效订单策略的任意数值。
小于 1000000 的值被保留,无法使用。
pendingSideENUMYES支持的数值: 订单方向
pendingQuantityDECIMALYES
pendingAboveTypeENUMYES支持的数值: STOP_LOSS_LIMIT, STOP_LOSS, LIMIT_MAKER, TAKE_PROFIT, TAKE_PROFIT_LIMIT
pendingAboveClientOrderIdSTRINGNO用于标识待处理上方订单的唯一ID。
如果未发送则自动生成。
pendingAbovePriceDECIMALNOpendingAboveTypeSTOP_LOSS_LIMIT, LIMIT_MAKERTAKE_PROFIT_LIMIT 时,可用以指定限价。
pendingAboveStopPriceDECIMALNO如果 pendingAboveTypeSTOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT 才能使用。
pendingAboveTrailingDeltaDECIMALNO参见 追踪止盈止损(Trailing Stop)订单常见问题
pendingAboveIcebergQtyDECIMALNO只有当 pendingAboveTimeInForceGTC 时才能使用。
pendingAboveTimeInForceENUMNO
pendingAboveStrategyIdLONGNO订单策略中用于标识待处理上方订单的 ID。
pendingAboveStrategyTypeINTNO用于标识待处理上方订单策略的任意数值。
小于 1000000 的值被保留,无法使用。
pendingBelowTypeENUMNO支持的数值: STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT
pendingBelowClientOrderIdSTRINGNO用于标识待处理下方订单的唯一ID。
如果未发送则自动生成。
pendingBelowPriceDECIMALNOpendingBelowTypeSTOP_LOSS_LIMITTAKE_PROFIT_LIMIT 时,可用以指定限价。
pendingBelowStopPriceDECIMALNO如果 pendingBelowTypeSTOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT 才能使用。
必须指定 pendingBelowStopPricependingBelowTrailingDelta 或两者。
pendingBelowTrailingDeltaDECIMALNO
pendingBelowIcebergQtyDECIMALNO只有当 pendingBelowTimeInForceGTC 时才能使用。
pendingBelowTimeInForceENUMNO
pendingBelowStrategyIdLONGNO订单策略中用于标识待处理下方订单的 ID。
pendingBelowStrategyTypeINTNO用于标识待处理下方订单策略的任意数值。
小于 1000000 的值被保留,无法使用。
recvWindowLONGNO不能大于 60000
timestampLONGYES

根据 pendingAboveTypependingBelowType 或者workingType的不同值,对于某些参数的强制要求

根据 pendingAboveTypependingBelowType 或者workingType的不同值,对于某些可选参数有强制要求,具体如下:

类型强制要求的参数其他信息
workingType = LIMITworkingTimeInForce
pendingAboveType = LIMIT_MAKERpendingAbovePrice
pendingAboveType = STOP_LOSS/TAKE_PROFITpendingAboveStopPrice 与/或 pendingAboveTrailingDelta
pendingAboveType = STOP_LOSS_LIMIT/TAKE_PROFIT_LIMITpendingAbovePricependingAboveStopPrice 与/或 pendingAboveTrailingDeltapendingAboveTimeInForce
pendingBelowType = LIMIT_MAKERpendingBelowPrice
pendingBelowType = STOP_LOSS/TAKE_PROFITpendingBelowStopPrice 与/或 pendingBelowTrailingDelta
pendingBelowType = STOP_LOSS_LIMIT/TAKE_PROFIT_LIMITpendingBelowPricependingBelowStopPrice 与/或 pendingBelowTrailingDeltapendingBelowTimeInForce

数据源: 撮合引擎

响应:

{
"orderListId": 1,
"contingencyType": "OTO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "RumwQpBaDctlUu5jyG5rs0",
"transactionTime": 1712291372842,
"symbol": "ABCDEF",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 6,
"clientOrderId": "fM9Y4m23IFJVCQmIrlUmMK"
},
{
"symbol": "LTCBTC",
"orderId": 7,
"clientOrderId": "6pcQbFIzTXGZQ1e2MkGDq4"
},
{
"symbol": "LTCBTC",
"orderId": 8,
"clientOrderId": "r4JMv9cwAYYUwwBZfbussx"
}
],
"orderReports": [
{
"symbol": "LTCBTC",
"orderId": 6,
"orderListId": 1,
"clientOrderId": "fM9Y4m23IFJVCQmIrlUmMK",
"transactTime": 1712291372842,
"price": "1.00000000",
"origQty": "1.00000000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"workingTime": 1712291372842,
"selfTradePreventionMode": "NONE"
},
{
"symbol": "LTCBTC",
"orderId": 7,
"orderListId": 1,
"clientOrderId": "6pcQbFIzTXGZQ1e2MkGDq4",
"transactTime": 1712291372842,
"price": "1.00000000",
"origQty": "5.00000000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "PENDING_NEW",
"timeInForce": "IOC",
"type": "STOP_LOSS_LIMIT",
"side": "BUY",
"stopPrice": "6.00000000",
"workingTime": -1,
"selfTradePreventionMode": "NONE"
},
{
"symbol": "LTCBTC",
"orderId": 8,
"orderListId": 1,
"clientOrderId": "r4JMv9cwAYYUwwBZfbussx",
"transactTime": 1712291372842,
"price": "3.00000000",
"origQty": "5.00000000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "PENDING_NEW",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "BUY",
"workingTime": -1,
"selfTradePreventionMode": "NONE"
}
]
}

注意: 上面的 payload 没有显示所有可以出现的字段,更多请看 订单响应中的特定条件时才会出现的字段 部分。

取消订单列表 (TRADE)

DELETE /api/v3/orderList

取消整个订单列表。

权重: 1

参数:

名称类型是否必需描述
symbolSTRINGYES
orderListIdLONGNOorderListIdlistClientOrderId 必须被提供
listClientOrderIdSTRINGNOorderListIdlistClientOrderId 必须被提供
newClientOrderIdSTRINGNO用户自定义的本次撤销操作的ID(注意不是被撤销的订单的自定义ID)。如无指定会自动赋值。
recvWindowLONGNO不能大于 60000
timestampLONGYES

其他注意点:

  • 取消订单列表中的单个订单将取消整个订单列表.
  • 当同时提供 orderListIdlistClientOrderId 两个参数时,系统首先将会使用 orderListId 来搜索订单。然后, 查找结果中的 listClientOrderId 的值将会被用来验证订单。如果两个条件都不满足,则请求将被拒绝。

数据源: 撮合引擎

响应:

{
"orderListId": 0,
"contingencyType": "OCO",
"listStatusType": "ALL_DONE",
"listOrderStatus": "ALL_DONE",
"listClientOrderId": "C3wyj4WVEktd7u9aVBRXcN",
"transactionTime": 1574040868128,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 2,
"clientOrderId": "pO9ufTiFGg3nw2fOdgeOXa"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"clientOrderId": "TXOvglzXuaubXAaENpaRCB"
}
],
"orderReports": [
{
"symbol": "LTCBTC",
"origClientOrderId": "pO9ufTiFGg3nw2fOdgeOXa",
"orderId": 2,
"orderListId": 0,
"clientOrderId": "unfWT8ig8i0uj6lPuYLez6",
"transactTime": 1688005070874,
"price": "1.00000000",
"origQty": "10.00000000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "STOP_LOSS_LIMIT",
"side": "SELL",
"stopPrice": "1.00000000"
},
{
"symbol": "LTCBTC",
"origClientOrderId": "TXOvglzXuaubXAaENpaRCB",
"orderId": 3,
"orderListId": 0,
"clientOrderId": "unfWT8ig8i0uj6lPuYLez6",
"transactTime": 1688005070874,
"price": "3.00000000",
"origQty": "10.00000000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "SELL"
}
]
}

查询订单列表 (USER_DATA)

GET /api/v3/orderList

根据提供的可选参数检索特定的订单列表。

权重: 4

参数:

名称类型是否必需描述
orderListIdLONGNOorderListIdorigClientOrderId 必须提供一个。
origClientOrderIdSTRINGNOorderListIdorigClientOrderId 必须提供一个。
recvWindowLONGNO赋值不得大于 60000
timestampLONGYES

数据源: 数据库

响应:

{
"orderListId": 27,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "h2USkA5YQpaXHPIrkd96xE",
"transactionTime": 1565245656253,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "qD1gy3kc3Gx0rihm9Y3xwS"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "ARzZ9I00CPM8i3NhmU9Ega"
}
]
}

查询所有订单列表 (USER_DATA)

GET /api/v3/allOrderList

根据提供的可选参数检索所有的订单列表。

请注意,startTimeendTime之间的时间不能超过 24 小时。

权重: 20

参数:

名称类型是否必需描述
fromIdLONGNO提供该项后, startTimeendTime 都不可提供
startTimeLONGNO
endTimeLONGNO
limitINTNO默认值: 500; 最大值: 1000
recvWindowLONGNO赋值不能超过 60000
timestampLONGYES

数据源: 数据库

响应:

[
{
"orderListId": 29,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "amEEAXryFzFwYF1FeRpUoZ",
"transactionTime": 1565245913483,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "oD7aesZqjEGlZrbtRpy5zB"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "Jr1h6xirOxgeJOUuYQS7V3"
}
]
},
{
"orderListId": 28,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "hG7hFNxJV6cZy3Ze4AUT4d",
"transactionTime": 1565245913407,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 2,
"clientOrderId": "j6lFOfbmFMRjTYA7rRJ0LP"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"clientOrderId": "z0KCjOdditiLS5ekAFtK81"
}
]
}
]

查询订单列表挂单 (USER_DATA)

GET /api/v3/openOrderList

权重: 6

参数:

名称类型是否必需描述
recvWindowLONGNO赋值不能大于 60000
timestampLONGYES

数据源: 数据库

响应:

[
{
"orderListId": 31,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "wuB13fmulKj3YjdqWEcsnp",
"transactionTime": 1565246080644,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "r3EH2N76dHfLoSZWIUw1bT"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "Cv1SnyPD3qhqpbjpYEHbd2"
}
]
}
]

SOR

下 SOR 订单 (TRADE)

POST /api/v3/sor/order

发送使用智能订单路由 (SOR) 的新订单。

权重: 1

参数:

名称类型是否必需描述
symbolSTRINGYES
sideENUMYES
typeENUMYES
timeInForceENUMNO
quantityDECIMALYES
priceDECIMALNO
newClientOrderIdSTRINGNO用户自定义的orderid,如空缺系统会自动赋值。如果几个订单具有相同的 newClientOrderID 赋值,
那么只有在前一个订单成交后才可以接受下一个订单,否则该订单将被拒绝。
strategyIdLONGNO
strategyTypeINTNO赋值不能小于 1000000.
icebergQtyDECIMALNO仅有限价单可以使用该参数,含义为创建冰山订单并指定冰山订单的数量。
newOrderRespTypeENUMNO指定响应类型:
指定响应类型 ACK, RESULTFULL; 默认为 FULL
selfTradePreventionModeENUMNO允许的 ENUM 取决于交易对的配置。支持的值有:STP 模式
recvWindowLONGNO赋值不能大于 60000
timestampLONGYES

请注意: POST /api/v3/sor/order 只支持 限价市场 单, 并不支持 quoteOrderQty

数据源: 撮合引擎

响应:

{
"symbol": "BTCUSDT",
"orderId": 2,
"orderListId": -1,
"clientOrderId": "sBI1KM6nNtOfj5tccZSKly",
"transactTime": 1689149087774,
"price": "31000.00000000",
"origQty": "0.50000000",
"executedQty": "0.50000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "14000.00000000",
"status": "FILLED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"workingTime": 1689149087774,
"fills": [
{
"matchType": "ONE_PARTY_TRADE_REPORT",
"price": "28000.00000000",
"qty": "0.50000000",
"commission": "0.00000000",
"commissionAsset": "BTC",
"tradeId": -1,
"allocId": 0
}
],
"workingFloor": "SOR",
"selfTradePreventionMode": "NONE",
"usedSor": true
}

测试 SOR 下单接口 (TRADE)

POST /api/v3/sor/order/test

用于测试使用智能订单路由 (SOR) 的订单请求,但不会提交到撮合引擎

权重:

条件请求权重
没有 computeCommissionRates1
computeCommissionRates20

参数:

除了 POST /api/v3/sor/order 所有参数, 如下参数也接受:

参数名类型是否必需描述
computeCommissionRatesBOOLEANNO默认值: false

数据源: 缓存

响应:

没有 computeCommissionRates

{}

computeCommissionRates

{
"standardCommissionForOrder": { // 订单交易的标准佣金率。
"maker": "0.00000112",
"taker": "0.00000114",
},
"taxCommissionForOrder": { // 订单交易的税率。
"maker": "0.00000112",
"taker": "0.00000114",
},
"discount": { // 以BNB支付时的标准佣金折扣。
"enabledForAccount": true,
"enabledForSymbol": true,
"discountAsset": "BNB",
"discount": "0.25000000" // 当用BNB支付佣金时,在标准佣金上按此比率打折。
}
}