跳到主要内容

交易请求

下新的订单 (TRADE)​

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "order.place",
"params": {
"symbol": "BTCUSDT",
"side": "SELL",
"type": "LIMIT",
"timeInForce": "GTC",
"price": "23416.10000000",
"quantity": "0.00847000",
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}

下新的订单。

这个请求会把1个订单添加到 EXCHANGE_MAX_ORDERS 过滤器和 MAX_NUM_ORDERS 过滤器中。

权重: 1

未成交的订单计数: 1

参数:

名称类型是否必须描述
apiKeySTRINGYES
symbolSTRINGYES
sideENUMYES详见枚举定义:订单方向
typeENUMYES详见枚举定义:订单类型
timeInForceENUMNO详见枚举定义:生效时间
priceDECIMALNO
quantityDECIMALNO
quoteOrderQtyDECIMALNO
newClientOrderIdSTRINGNO用户自定义的orderid,如空缺系统会自动赋值。
newOrderRespTypeENUMNOMARKET 与 LIMIT 订单默认为FULL, 其他默认为ACK。
stopPriceDECIMALNO仅 STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT 需要此参数。
trailingDeltaINTNO参见 追踪止盈止损(Trailing Stop)订单常见问题
icebergQtyDECIMALNO仅有限价单(包括条件限价单与限价做事单)可以使用该参数,含义为创建冰山订单并指定冰山订单的数量。
strategyIdLONGNO
strategyTypeINTNO不能低于 1000000。
selfTradePreventionModeENUMNO允许的 ENUM 取决于交易对的配置。
pegPriceTypeENUMNO参阅 关于挂钩订单参数的注意事项
pegOffsetValueINTNO用于挂钩的价格水平(最大值:100)。参阅 关于挂钩订单参数的注意事项
pegOffsetTypeENUMNO仅支持 PRICE_LEVEL。参阅 关于挂钩订单参数的注意事项
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 撮合引擎

根据订单 type,某些参数(*) 可能成为必需参数:

订单 type 强制要求的参数
LIMIT
  • timeInForce
  • price
  • quantity
LIMIT_MAKER
  • price
  • quantity
MARKET
  • quantity 或者 quoteOrderQty
STOP_LOSS
  • quantity
  • stopPrice 或者 trailingDelta
STOP_LOSS_LIMIT
  • timeInForce
  • price
  • quantity
  • stopPrice 或者 trailingDelta
TAKE_PROFIT
  • quantity
  • stopPrice 或者 trailingDelta
TAKE_PROFIT_LIMIT
  • timeInForce
  • price
  • quantity
  • stopPrice 或者 trailingDelta

支持的订单类型:

订单 type 描述
LIMIT

以指定的 price 或更好的 price, 买入或卖出 quantity。

LIMIT_MAKER

LIMIT 订单,如果它立即匹配并成为吃单方将被拒绝。

此订单类型也称为 POST-ONLY 订单。

MARKET

以最佳市场价格买入或卖出。

  • 带有 quantity 参数的 MARKET 订单指定您要BUY或SELL的base asset的数量。 报价资产的实际执行quantity将取决于可用的市场流动性。

    例如,在 BTCUSDT 下 "quantity": "0.1000" 的市场买单,指定您想以最优惠的价格 BUY 0.1 BTC。 如果以最优价格没有足够的 BTC,会继续以次优价格买入,直到您的订单被执行,或者您的 USDT 用完,或者市场上的 BTC 用完。

  • 使用 quoteOrderQty 的 MARKET 订单 明确的是通过买入(或卖出)想要花费(或获取)的 quote asset 数量。 基础资产的实际执行数量将取决于可用的市场流动性。

    例如,在 BTCUSDT 下 "quoteOrderQty": "100.00" 的市场买单,指定您想以最优惠的价格以 100 USDT 购买尽可能多的 BTC。 同样,卖出订单将卖出尽可能多的可用 BTC,以便您获得 100 USDT(佣金前)。

STOP_LOSS

当满足指定条件时,执行给定 quantity 的 MARKET 订单。

I.e., 当达到 stopPrice 或激活 trailingDelta 时。

STOP_LOSS_LIMIT

当满足指定条件时,执行给定参数的 LIMIT 订单。

TAKE_PROFIT

与 STOP_LOSS 类似,但在市场价格向有利方向移动时激活。

TAKE_PROFIT_LIMIT

与 STOP_LOSS_LIMIT 类似,但在市场价格向有利方向移动时激活。

关于挂钩订单参数的注意事项:

  • 这些参数仅适用于 LIMIT, LIMIT_MAKER, STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单。
  • 如果使用了 pegPriceType, 那么 price 字段将是可选的。 否则,price 字段依旧是必须的。
  • pegPriceType=PRIMARY_PEG 就是主要挂钩(primary),这是订单簿上与您的订单同一方向的最佳价格。
  • pegPriceType=MARKET_PEG 就是市场挂钩(market),这是订单簿上与您的订单相反方向的最佳价格。
  • 可以通过使用 pegOffsetType 和 pegOffsetValue 来获取最佳价格以外的价格水平。 这两个参数必须一起使用。

可用的 timeInForce 选项,设置订单在到期前应该活跃多长时间:

TIF描述
GTCGood 'til Canceled – 成交为止。订单会一直有效,直到被成交或者取消。
IOCImmediate 或者 Cancel – 无法立即成交的部分就撤销。订单在失效前会尽量多的成交。
FOKFill 或者 Kill – 无法全部立即成交就撤销。如果无法全部成交,订单会失效。

备注:

  • newClientOrderId 指定订单的 clientOrderId 值。

    仅当前一个订单已成交或过期时,才会接受具有相同 clientOrderId 的新订单。

  • 任何 LIMIT 或 LIMIT_MAKER 订单都可以通过指定 icebergQty 变成冰山订单。

    带有 icebergQty 的订单必须将 timeInForce 设置为 GTC。

  • STOP_LOSS/TAKE_PROFIT 订单的触发订单价格规则:

    • stopPrice 必须高于市场价格:STOP_LOSS BUY,TAKE_PROFIT SELL
    • stopPrice 必须低于市场价格:STOP_LOSS SELL,TAKE_PROFIT BUY
  • 使用 quoteOrderQty 的 MARKET 订单遵循 LOT_SIZE 过滤规则。

    该订单将执行一个名义价值尽可能接近请求的 quoteOrderQty 的数量。

响应:

使用 newOrderRespType 参数可以选择响应格式。 ACK 响应类型:

{
"id": "56374a46-3061-486b-a311-99ee972eb648",
"status": 200,
"result": {
"symbol": "BTCUSDT",
"orderId": 12569099453,
"orderListId": -1, // 单个订单会一直是 -1
"clientOrderId": "4d96324ff9d44481926157ec08158a40",
"transactTime": 1660801715639
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 1
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

RESULT 响应类型:

{
"id": "56374a46-3061-486b-a311-99ee972eb648",
"status": 200,
"result": {
"symbol": "BTCUSDT",
"orderId": 12569099453,
"orderListId": -1, // 单个订单会一直是 -1
"clientOrderId": "4d96324ff9d44481926157ec08158a40",
"transactTime": 1660801715639,
"price": "23416.10000000",
"origQty": "0.00847000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"workingTime": 1660801715639,
"selfTradePreventionMode": "NONE"
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 1
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

FULL 响应类型:

{
"id": "56374a46-3061-486b-a311-99ee972eb648",
"status": 200,
"result": {
"symbol": "BTCUSDT",
"orderId": 12569099453,
"orderListId": -1,
"clientOrderId": "4d96324ff9d44481926157ec08158a40",
"transactTime": 1660801715793,
"price": "23416.10000000",
"origQty": "0.00847000",
"executedQty": "0.00847000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "198.33521500",
"status": "FILLED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"workingTime": 1660801715639,
"selfTradePreventionMode": "NONE",
"stopPrice": "0.00000000", // 出现在 STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单中。
"trailingDelta": 10, // 订单激活前所需的价格变动。
"icebergQty": "0.00000000", // 仅在请求中发送了 icebergQty 参数时出现。
"strategyId": 1, // 仅在下单时提供了 strategyId 参数时出现。
"strategyType": 1000000, // 仅在下单时提供了 strategyType 参数时出现。
"preventedMatchId": 0, // 仅在因 STP 导致订单失效时出现。
"preventedQuantity": "1.200000", // 因 STP 导致订单失效的数量。
"trailingTime": -1, // 追踪单被激活和跟踪价格变化的时间。
"usedSor": true, // 用于确定订单是否使用SOR的字段。
"workingFloor": "SOR", // 用以定义订单是通过 SOR 还是由订单簿成交的。
"pegPriceType": "PRIMARY_PEG", // 挂钩价格类型。仅用于挂钩订单。
"pegOffsetType": "PRICE_LEVEL", // 挂钩价格偏移类型。如若需要,仅用于挂钩订单。
"pegOffsetValue": 5, // 挂钩价格偏移值。如若需要,仅用于挂钩订单。
"peggedPrice": "87523.83710000", // 订单对应的当前挂钩价格。一旦确定,仅用于挂钩订单。
"expiryReason": "INSUFFICIENT_LIQUIDITY", // 订单过期的原因。当订单过期时出现。
// FULL 响应与 RESULT 响应相同,具有相同的可选字段基于订单类型和参数。FULL响应还包括立即完成订单的交易列表。
"fills": [
{
"price": "23416.10000000",
"qty": "0.00635000",
"commission": "0.000000",
"commissionAsset": "BNB",
"tradeId": 1650422481
},
{
"price": "23416.50000000",
"qty": "0.00212000",
"commission": "0.000000",
"commissionAsset": "BNB",
"tradeId": 1650422482
}
]
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 1
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

测试下单 (TRADE)​

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "order.test",
"params": {
"symbol": "BTCUSDT",
"side": "SELL",
"type": "LIMIT",
"timeInForce": "GTC",
"price": "23416.10000000",
"quantity": "0.00847000",
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}

测试下单。

验证新订单参数并验证您的签名但不会将订单发送到撮合引擎。

权重:

条件请求权重
没有 computeCommissionRates1
有 computeCommissionRates20

参数:

名称类型是否必须描述
apiKeySTRINGYES
computeCommissionRatesBOOLEANNO默认值: false
请参阅佣金常见问题解答 了解更多信息。
symbolSTRINGYES
sideENUMYES详见枚举定义:订单方向
typeENUMYES详见枚举定义:订单类型
timeInForceENUMNO详见枚举定义:生效时间
priceDECIMALNO
quantityDECIMALNO
quoteOrderQtyDECIMALNO
newClientOrderIdSTRINGNO用户自定义的orderid,如空缺系统会自动赋值。
newOrderRespTypeENUMNO指定响应类型 ACK, RESULT, or FULL; MARKET 与 LIMIT 订单默认为FULL, 其他默认为ACK。
stopPriceDECIMALNO仅 STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT 需要此参数。
trailingDeltaINTNO参见 追踪止盈止损(Trailing Stop)订单常见问题
icebergQtyDECIMALNO仅有限价单(包括条件限价单与限价做事单)可以使用该参数,含义为创建冰山订单并指定冰山订单的数量。
strategyIdLONGNO
strategyTypeINTNO不能低于 1000000。
selfTradePreventionModeENUMNO允许的 ENUM 取决于交易对的配置。支持的值有:STP 模式。
pegPriceTypeENUMNOPRIMARY_PEG 或 MARKET_PEG。 参阅 关于挂钩订单参数的注意事项
pegOffsetValueINTNO用于挂钩的价格水平(最大值:100)。 参阅 关于挂钩订单参数的注意事项
pegOffsetTypeENUMNO仅支持 PRICE_LEVEL。 参阅 关于挂钩订单参数的注意事项
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 缓存

响应:

没有 computeCommissionRates:

{
"id": "6ffebe91-01d9-43ac-be99-57cf062e0e30",
"status": 200,
"result": {},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

有 computeCommissionRates:

{
"id": "6ffebe91-01d9-43ac-be99-57cf062e0e30",
"status": 200,
"result": {
// 订单交易的标准佣金率。
"standardCommissionForOrder": {
"maker": "0.00000112",
"taker": "0.00000114"
},
// 订单交易的特殊佣金率。
"specialCommissionForOrder": {
"maker": "0.05000000",
"taker": "0.06000000"
},
// 订单交易的税率。
"taxCommissionForOrder": {
"maker": "0.00000112",
"taker": "0.00000114"
},
// 以BNB支付时的标准佣金折扣。
"discount": {
"enabledForAccount": true,
"enabledForSymbol": true,
"discountAsset": "BNB",
"discount": "0.25000000" // 当用BNB支付佣金时,在标准佣金上按此比率打折。
}
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 20
}
]
}

撤销订单 (TRADE)​

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "order.cancel",
"params": {
"symbol": "BTCUSDT",
"origClientOrderId": "4d96324ff9d44481926157",
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}

取消有效订单。

权重: 1

参数:

名称类型是否必须描述
apiKeySTRINGYES
symbolSTRINGYES
orderIdLONGNO
origClientOrderIdSTRINGNO
newClientOrderIdSTRINGNO用户自定义的本次撤销操作的ID(注意不是被撤销的订单的自定义ID)。如无指定会自动赋值。
cancelRestrictionsENUMNO支持的值:
ONLY_NEW - 如果订单状态为 NEW,撤销将成功。
ONLY_PARTIALLY_FILLED - 如果订单状态为 PARTIALLY_FILLED,撤销将成功。 请参阅关于 cancelRestrictions 了解更多信息。
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 撮合引擎

备注:

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

  • newClientOrderId 将替换已取消订单的 clientOrderId,为新订单腾出空间。

  • 如果您取消属于订单列表的订单,则整个订单列表将被取消。

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

响应:

取消单个订单时:

{
"id": "5633b6a2-90a9-4192-83e7-925c90b6a2fd",
"status": 200,
"result": {
"symbol": "BTCUSDT",
"origClientOrderId": "4d96324ff9d44481926157", // 被取消的 clientOrderId
"orderId": 12569099453,
"orderListId": -1, // 订单列表的ID,不然就是 -1
"clientOrderId": "91fe37ce9e69c90d6358c0", // 请求的 newClientOrderId
"transactTime": 1684804350068,
"price": "23416.10000000",
"origQty": "0.00847000",
"executedQty": "0.00001000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.23416100",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"stopPrice": "0.00000000", // 如果订单设置了 stopPrice 会出现
"trailingDelta": 0, // 如果订单设置了 trailingDelta 会出现
"icebergQty": "0.00000000", // 如果订单设置了 icebergQty 会出现
"strategyId": 37463720, // 如果订单设置了 strategyId 会出现
"strategyType": 1000000, // 如果订单设置了 strategyType 会出现
"selfTradePreventionMode": "NONE"
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

取消订单列表时:

{
"id": "16eaf097-bbec-44b9-96ff-e97e6e875870",
"status": 200,
"result": {
"symbol": "BTCUSDT",
"origClientOrderId": "4d96324ff9d44481926157",
"orderId": 12569099453,
"orderListId": 19431,
"clientOrderId": "91fe37ce9e69c90d6358c0",
"transactTime": 1684804350068,
"price": "23416.10000000",
"origQty": "0.00847000",
"executedQty": "0.00001000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.23416100",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"stopPrice": "0.00000000", // 出现在 STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单中。
"trailingDelta": 10, // 订单激活前所需的价格变动。
"icebergQty": "0.00000000", // 仅在请求中发送了 icebergQty 参数时出现。
"strategyId": 1, // 仅在下单时提供了 strategyId 参数时出现。
"strategyType": 1000000, // 仅在下单时提供了 strategyType 参数时出现。
"selfTradePreventionMode": "NONE",
"preventedMatchId": 0, // 仅在因 STP 导致订单失效时出现。
"preventedQuantity": "1.200000", // 因 STP 导致订单失效的数量。
"trailingTime": -1, // 追踪单被激活和跟踪价格变化的时间。
"usedSor": true, // 用于确定订单是否使用SOR的字段。
"workingFloor": "SOR", // 用以定义订单是通过 SOR 还是由订单簿成交的。
"pegPriceType": "PRIMARY_PEG", // 挂钩价格类型。仅用于挂钩订单。
"pegOffsetType": "PRICE_LEVEL", // 挂钩价格偏移类型。如若需要,仅用于挂钩订单。
"pegOffsetValue": 5, // 挂钩价格偏移值。如若需要,仅用于挂钩订单。
"peggedPrice": "87523.83710000", // 订单对应的当前挂钩价格。一旦确定,仅用于挂钩订单。
"expiryReason": "INSUFFICIENT_LIQUIDITY", // 订单过期的原因。当订单过期时出现。
"contingencyType": "OCO",
"listStatusType": "ALL_DONE",
"listOrderStatus": "ALL_DONE",
"listClientOrderId": "iuVNVJYYrByz6C4yGOPPK0",
"transactionTime": 1660803702431,
"orders": [
{
"symbol": "BTCUSDT",
"orderId": 12569099453,
"clientOrderId": "bX5wROblo6YeDwa9iTLeyY"
},
{
"symbol": "BTCUSDT",
"orderId": 12569099454,
"clientOrderId": "Tnu2IP0J5Y4mxw3IATBfmW"
}
],
// 订单列表的状态格式与单个订单相同。
"orderReports": [
{
"symbol": "BTCUSDT",
"origClientOrderId": "bX5wROblo6YeDwa9iTLeyY",
"orderId": 12569099453,
"orderListId": 19431,
"clientOrderId": "OFFXQtxVFZ6Nbcg4PgE2DA",
"transactTime": 1684804350068,
"price": "23450.50000000",
"origQty": "0.00850000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "STOP_LOSS_LIMIT",
"side": "BUY",
"stopPrice": "23430.00000000", // 出现在 STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单中。
"selfTradePreventionMode": "NONE"
},
{
"symbol": "BTCUSDT",
"origClientOrderId": "Tnu2IP0J5Y4mxw3IATBfmW",
"orderId": 12569099454,
"orderListId": 19431,
"clientOrderId": "OFFXQtxVFZ6Nbcg4PgE2DA",
"transactTime": 1684804350068,
"price": "23400.00000000",
"origQty": "0.00850000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "BUY",
"selfTradePreventionMode": "NONE"
}
]
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

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

关于 cancelRestrictions

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

撤消挂单再下单 (TRADE)​

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "order.cancelReplace",
"params": {
"symbol": "BTCUSDT",
"cancelReplaceMode": "ALLOW_FAILURE",
"cancelOrigClientOrderId": "4d96324ff9d44481926157",
"side": "SELL",
"type": "LIMIT",
"timeInForce": "GTC",
"price": "23416.10000000",
"quantity": "0.00847000",
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}
  • 撤消一个现有订单,并立即重新下单。
  • 即使新订单未被尝试(即 newOrderResult: NOT_ATTEMPTED),未成交订单数量仍会增加1。
  • 通过此接口只能撤消订单列表中的单个订单,但结果与撤消整个订单列表相同。

权重: 1

未成交的订单计数: 1

参数:

名称类型是否必须描述
apiKeySTRINGYES
symbolSTRINGYES
cancelReplaceModeENUMYES指定类型:STOP_ON_FAILURE - 如果撤消订单失败将不会继续重新下单。
ALLOW_FAILURE - 不管撤消订单是否成功都会继续重新下单。
cancelOrderIdLONGNO必须提供 cancelOrderId 或者 cancelOrigClientOrderId。

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

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

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

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

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

如果两个条件都不满足,则请求将被拒绝。
cancelNewClientOrderIdSTRINGNO用户自定义的id,如空缺系统会自动赋值
sideENUMYES详见枚举定义:订单方向
typeENUMYES详见枚举定义:订单类型
timeInForceENUMNO详见枚举定义:生效时间
priceDECIMALNO
quantityDECIMALNO
quoteOrderQtyDECIMALNO
newClientOrderIdSTRINGNO用于辨识新订单。
newOrderRespTypeENUMNO指定响应类型:
指定响应类型 ACK, RESULT, or FULL; MARKET 与 LIMIT 订单默认为FULL, 其他默认为ACK。
stopPriceDECIMALNO仅 STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT 需要此参数。
trailingDeltaDECIMALNO参考 追踪止盈止损(Trailing Stop)订单常见问题
icebergQtyDECIMALNO仅有限价单(包括条件限价单与限价做事单)可以使用该参数,含义为创建冰山订单并指定冰山订单的数量。
strategyIdLONGNO
strategyTypeINTNO不能低于 1000000。
selfTradePreventionModeENUMNO允许的 ENUM 取决于交易对的配置。支持的值有:STP 模式。
cancelRestrictionsENUMNO支持的值:
ONLY_NEW - 如果订单状态为 NEW,撤销将成功。
ONLY_PARTIALLY_FILLED - 如果订单状态为 PARTIALLY_FILLED,撤销将成功。 请参阅关于 cancelRestrictions 了解更多信息。
orderRateLimitExceededModeENUMNO支持的值:

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

CANCEL_ONLY - 将始终取消订单。
pegPriceTypeENUMNOPRIMARY_PEG 或 MARKET_PEG。
参阅 关于挂钩订单参数的注意事项
pegOffsetValueINTNO用于挂钩的价格水平(最大值:100)。
参阅 关于挂钩订单参数的注意事项
pegOffsetTypeENUMNO仅支持 PRICE_LEVEL。
参阅 关于挂钩订单参数的注意事项
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 撮合引擎

类似于 order.place 请求,额外的强制参数 (*) 由新订单的 type 确定。

可用的 cancelReplaceMode 选项:

  • STOP_ON_FAILURE – 如果撤销订单请求失败,将不会尝试下新订单。
  • ALLOW_FAILURE – 即使撤销订单请求失败,也会尝试下新订单。
请求 响应
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 200
❌ FAILURE ❌ FAILURE 400
❌ FAILURE ✅ SUCCESS N/A
✅ SUCCESS ❌ FAILURE 409

备注:

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

  • cancelNewClientOrderId 将替换已撤销订单的 clientOrderId,为新订单腾出空间。

  • newClientOrderId 指定下单的 clientOrderId 值。

    仅当前一个订单已成交或过期时,才会接受具有相同 clientOrderId 的新订单。

    新订单可以重用已取消订单的旧 clientOrderId。

  • 此 cancel-replace 操作不是事务性的。

    如果一个操作成功但另一个操作失败,则仍然执行成功的操作。

    例如,在 STOP_ON_FAILURE 模式下,如果下新订单达失败,旧订单仍然被撤销。

  • 过滤器和订单次数限制会在撤销和下订单之前评估。

  • 如果未尝试下新订单,订单次数仍会增加。

  • 与 order.cancel 一样,如果您撤销订单列表内的某个订单,则整个订单列表将被撤销。

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

响应:

如果撤销订单和下新订单都成功,响应会是 "status": 200:

{
"id": "99de1036-b5e2-4e0f-9b5c-13d751c93a1a",
"status": 200,
"result": {
"cancelResult": "SUCCESS",
"newOrderResult": "SUCCESS",
// 格式与 "order.cancel" 格式相同。
// 某些字段是可选的,仅在订单中有设置它们时才包括。
"cancelResponse": {
"symbol": "BTCUSDT",
"origClientOrderId": "4d96324ff9d44481926157", // 请求的 cancelOrigClientOrderId
"orderId": 125690984230,
"orderListId": -1,
"clientOrderId": "91fe37ce9e69c90d6358c0", // 请求的 cancelNewClientOrderId
"transactTime": 1684804350068,
"price": "23450.00000000",
"origQty": "0.00847000",
"executedQty": "0.00001000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.23450000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"selfTradePreventionMode": "NONE",
"icebergQty": "0.00000000", // 仅在请求中发送了 icebergQty 参数时出现。
"preventedMatchId": 0, // 仅在因 STP 导致订单失效时出现。
"preventedQuantity": "1.200000", // 因 STP 导致订单失效的数量。
"stopPrice": "0.00000000", // 出现在 STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单中。
"strategyId": 1, // 仅在下单时提供了 strategyId 参数时出现。
"strategyType": 1000000, // 仅在下单时提供了 strategyType 参数时出现。
"trailingDelta": 10, // 订单激活前所需的价格变动。
"trailingTime": -1, // 追踪单被激活和跟踪价格变化的时间。
"usedSor": true, // 用于确定订单是否使用SOR的字段。
"workingFloor": "SOR", // 用以定义订单是通过 SOR 还是由订单簿成交的。
"pegPriceType": "PRIMARY_PEG", // 挂钩价格类型。仅用于挂钩订单。
"pegOffsetType": "PRICE_LEVEL", // 挂钩价格偏移类型。如若需要,仅用于挂钩订单。
"pegOffsetValue": 5, // 挂钩价格偏移值。如若需要,仅用于挂钩订单。
"peggedPrice": "87523.83710000", // 订单对应的当前挂钩价格。一旦确定,仅用于挂钩订单。
"expiryReason": "INSUFFICIENT_LIQUIDITY" // 订单过期的原因。当订单过期时出现。
},
// 格式与 "order.place" 格式相同, 受 "newOrderRespType" 影响。
// 某些字段是可选的,仅在订单中有设置它们时才包括。
"newOrderResponse": {
"symbol": "BTCUSDT",
"orderId": 12569099453,
"orderListId": -1,
"clientOrderId": "bX5wROblo6YeDwa9iTLeyY",
"transactTime": 1660813156959,
"price": "23416.10000000",
"origQty": "0.00847000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"selfTradePreventionMode": "NONE",
"icebergQty": "0.00000000", // 仅在请求中发送了 icebergQty 参数时出现。
"preventedMatchId": 0, // 仅在因 STP 导致订单失效时出现。
"preventedQuantity": "1.200000", // 因 STP 导致订单失效的数量。
"stopPrice": "0.00000000", // 出现在 STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单中。
"strategyId": 1, // 仅在下单时提供了 strategyId 参数时出现。
"strategyType": 1000000, // 仅在下单时提供了 strategyType 参数时出现。
"trailingDelta": 10, // 订单激活前所需的价格变动。
"trailingTime": -1, // 追踪单被激活和跟踪价格变化的时间。
"usedSor": true, // 用于确定订单是否使用SOR的字段。
"workingFloor": "SOR", // 用以定义订单是通过 SOR 还是由订单簿成交的。
"pegPriceType": "PRIMARY_PEG", // 挂钩价格类型。仅用于挂钩订单。
"pegOffsetType": "PRICE_LEVEL", // 挂钩价格偏移类型。如若需要,仅用于挂钩订单。
"pegOffsetValue": 5, // 挂钩价格偏移值。如若需要,仅用于挂钩订单。
"peggedPrice": "87523.83710000", // 订单对应的当前挂钩价格。一旦确定,仅用于挂钩订单。
"expiryReason": "INSUFFICIENT_LIQUIDITY" // 订单过期的原因。当订单过期时出现。
}
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 1
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

在 STOP_ON_FAILURE 模式,失败的撤销订单会阻止下新订单,响应会是"status": 400:

{
"id": "27e1bf9f-0539-4fb0-85c6-06183d36f66c",
"status": 400,
"error": {
"code": -2022,
"msg": "Order cancel-replace failed.",
"data": {
"cancelResult": "FAILURE",
"newOrderResult": "NOT_ATTEMPTED",
"cancelResponse": {
"code": -2011,
"msg": "Unknown order sent."
},
"newOrderResponse": null
}
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 1
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

如果两个操作都失败,响应将有 "status": 400:

{
"id": "3b3ac45c-1002-4c7d-88e8-630c408ecd87",
"status": 400,
"error": {
"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."
}
}
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 1
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

如果 cancel-replace 模式允许失败并且其中一个操作失败,响应会是 "status": 409 和 "data" 字段会制定哪个操作成功,哪个失败,以及原因:

撤销订单成功,下新订单失败:

{
"id": "b220edfe-f3c4-4a3a-9d13-b35473783a25",
"status": 409,
"error": {
"code": -2021,
"msg": "Order cancel-replace partially failed.",
"data": {
"cancelResult": "SUCCESS",
"newOrderResult": "FAILURE",
"cancelResponse": {
"symbol": "BTCUSDT",
"origClientOrderId": "4d96324ff9d44481926157", // 请求的 cancelOrigClientOrderId
"orderId": 125690984230,
"orderListId": -1,
"clientOrderId": "91fe37ce9e69c90d6358c0", // 请求的 cancelNewClientOrderId
"transactTime": 1684804350068,
"price": "23450.00000000",
"origQty": "0.00847000",
"executedQty": "0.00001000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.23450000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"selfTradePreventionMode": "NONE"
},
"newOrderResponse": {
"code": -2010,
"msg": "Order would immediately match and take."
}
}
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 1
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

撤销订单失败,下新订单成功:

{
"id": "ce641763-ff74-41ac-b9f7-db7cbe5e93b1",
"status": 409,
"error": {
"code": -2021,
"msg": "Order cancel-replace partially failed.",
"data": {
"cancelResult": "FAILURE",
"newOrderResult": "SUCCESS",
"cancelResponse": {
"code": -2011,
"msg": "Unknown order sent."
},
"newOrderResponse": {
"symbol": "BTCUSDT",
"orderId": 12569099453,
"orderListId": -1,
"clientOrderId": "bX5wROblo6YeDwa9iTLeyY",
"transactTime": 1660813156959,
"price": "23416.10000000",
"origQty": "0.00847000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"workingTime": 1669693344508,
"fills": [],
"selfTradePreventionMode": "NONE"
}
}
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 1
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

如果 orderRateLimitExceededMode 是 CANCEL_ONLY,那么无论 cancelReplaceMode 的取值,当账户超出未成交订单计数时,响应将有 "status": 409:

{
"id": "3b3ac45c-1002-4c7d-88e8-630c408ecd87",
"status": 409,
"error": {
"code": -2021,
"msg": "Order cancel-replace partially failed.",
"data": {
"cancelResult": "SUCCESS",
"newOrderResult": "FAILURE",
"cancelResponse": {
"symbol": "LTCBNB",
"origClientOrderId": "GKt5zzfOxRDSQLveDYCTkc", // 请求的 cancelOrigClientOrderId
"orderId": 64,
"orderListId": -1,
"clientOrderId": "loehOJF3FjoreUBDmv739R", // 请求的 cancelNewClientOrderId
"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 50 orders per 10 SECOND."
}
}
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 50
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 50
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

如果 orderRateLimitExceededMode 是 DO_NOTHING,那么无论 cancelReplaceMode 的取值,当账户超出未成交订单计数时,响应将有 "status": 429:

{
"id": "3b3ac45c-1002-4c7d-88e8-630c408ecd87",
"status": 429,
"error": {
"code": -1015,
"msg": "Too many new orders; current limit is 50 orders per 10 SECOND."
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 50
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 50
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

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

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

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "order.amend.keepPriority",
"params": {
"symbol": "BTCUSDT",
"origClientOrderId": "my_test_order1",
"newQty": "5",
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}

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

这个请求会把0个订单添加到 EXCHANGE_MAX_ORDERS 过滤器和 MAX_NUM_ORDERS 过滤器中。

请阅读 保留优先权的修改订单常见问题 了解更多信息。

权重: 4

未成交的订单计数: 0

参数:

名称类型是否必须描述
apiKeySTRINGYES
symbolSTRINGYES
orderIdLONGNO需提供 orderId 或 origClientOrderId。
origClientOrderIdSTRINGNO需提供 orderId 或 origClientOrderId。
newClientOrderIdSTRINGNO订单在被修改后被赋予的新 client order ID。
如果未发送则自动生成。
可以将当前 clientOrderId 作为 newClientOrderId 发送来重用当前 clientOrderId 的值。
newQtyDECIMALYES交易的新数量。 newQty 必须大于0, 但是必须比订单的原始数量小。
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 撮合引擎

响应:

来自单个订单的响应:

{
"id": "56374a46-3061-486b-a311-89ee972eb648",
"status": 200,
"result": {
"transactTime": 1741923284382,
"executionId": 16,
"amendedOrder": {
"symbol": "BTCUSDT",
"orderId": 12,
"orderListId": -1,
"origClientOrderId": "my_test_order1",
"clientOrderId": "4zR9HFcEq8gM1tWUqPEUHc",
"price": "5.00000000",
"qty": "5.00000000",
"executedQty": "0.00000000",
"preventedQty": "0.00000000",
"quoteOrderQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"workingTime": 1741923284364,
"selfTradePreventionMode": "NONE"
}
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

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

{
"id": "56374b46-3061-486b-a311-89ee972eb648",
"status": 200,
"result": {
"transactTime": 1741924229819,
"executionId": 60,
"amendedOrder": {
"symbol": "BTUCSDT",
"orderId": 23,
"orderListId": 4,
"origClientOrderId": "my_pending_order",
"clientOrderId": "xbxXh5SSwaHS7oUEOCI88B",
"price": "1.00000000",
"qty": "5.00000000",
"executedQty": "0.00000000",
"preventedQty": "0.00000000",
"quoteOrderQty": "0.00000000",
"cumulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"workingTime": 1741924204920,
"selfTradePreventionMode": "NONE",
"icebergQty": "0.00000000", // 仅在请求中发送了 icebergQty 参数时出现。
"preventedMatchId": 0, // 仅在因 STP 导致订单失效时出现。
"preventedQuantity": "1.200000", // 因 STP 导致订单失效的数量。
"stopPrice": "0.00000000", // 出现在 STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单中。
"strategyId": 1, // 仅在下单时提供了 strategyId 参数时出现。
"strategyType": 1000000, // 仅在下单时提供了 strategyType 参数时出现。
"trailingDelta": 10, // 订单激活前所需的价格变动。
"trailingTime": -1, // 追踪单被激活和跟踪价格变化的时间。
"usedSor": true, // 用于确定订单是否使用SOR的字段。
"workingFloor": "SOR", // 用以定义订单是通过 SOR 还是由订单簿成交的。
"pegPriceType": "PRIMARY_PEG", // 挂钩价格类型。仅用于挂钩订单。
"pegOffsetType": "PRICE_LEVEL", // 挂钩价格偏移类型。如若需要,仅用于挂钩订单。
"pegOffsetValue": 5, // 挂钩价格偏移值。如若需要,仅用于挂钩订单。
"peggedPrice": "87523.83710000", // 订单对应的当前挂钩价格。一旦确定,仅用于挂钩订单。
"expiryReason": "INSUFFICIENT_LIQUIDITY" // 订单过期的原因。当订单过期时出现。
},
"listStatus": {
"orderListId": 4,
"contingencyType": "OTO",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "8nOGLLawudj1QoOiwbroRH",
"symbol": "BTCUSDT",
"orders": [
{
"symbol": "BTCUSDT",
"orderId": 22,
"clientOrderId": "g04EWsjaackzedjC9wRkWD"
},
{
"symbol": "BTCUSDT",
"orderId": 23,
"clientOrderId": "xbxXh5SSwaHS7oUEOCI88B"
}
]
}
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 4
}
]
}

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

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

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "openOrders.cancelAll",
"params": {
"symbol": "BNBUSDT",
"timestamp": 1770736694138,
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88"
}
}

撤销单一交易对的所有挂单,包括交易组。

权重: 1

参数:

名称类型是否必须描述
apiKeySTRINGYES
symbolSTRINGYES
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 撮合引擎

响应:

{
"id": "778f938f-9041-4b88-9914-efbf64eeacc8",
"status": 200,
"result": [
{
"symbol": "BTCUSDT",
"origClientOrderId": "4d96324ff9d44481926157",
"orderId": 12569099453,
"orderListId": -1,
"clientOrderId": "91fe37ce9e69c90d6358c0",
"transactTime": 1684804350068,
"price": "23416.10000000",
"origQty": "0.00847000",
"executedQty": "0.00001000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.23416100",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"stopPrice": "0.00000000", // 出现在 STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单中。
"trailingDelta": 0, // 订单激活前所需的价格变动。
"trailingTime": -1, // 追踪单被激活和跟踪价格变化的时间。
"icebergQty": "0.00000000", // 仅在请求中发送了 icebergQty 参数时出现。
"strategyId": 37463720, // 仅在下单时提供了 strategyId 参数时出现。
"strategyType": 1000000, // 仅在下单时提供了 strategyType 参数时出现。
"selfTradePreventionMode": "NONE"
},
{
"orderListId": 19431,
"contingencyType": "OCO",
"listStatusType": "ALL_DONE",
"listOrderStatus": "ALL_DONE",
"listClientOrderId": "iuVNVJYYrByz6C4yGOPPK0",
"transactionTime": 1660803702431,
"symbol": "BTCUSDT",
"orders": [
{
"symbol": "BTCUSDT",
"orderId": 12569099453,
"clientOrderId": "bX5wROblo6YeDwa9iTLeyY"
},
{
"symbol": "BTCUSDT",
"orderId": 12569099454,
"clientOrderId": "Tnu2IP0J5Y4mxw3IATBfmW"
}
],
"orderReports": [
{
"symbol": "BTCUSDT",
"origClientOrderId": "bX5wROblo6YeDwa9iTLeyY",
"orderId": 12569099453,
"orderListId": 19431,
"clientOrderId": "OFFXQtxVFZ6Nbcg4PgE2DA",
"transactTime": 1684804350068,
"price": "23450.50000000",
"origQty": "0.00850000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "STOP_LOSS_LIMIT",
"side": "BUY",
"stopPrice": "23430.00000000", // 出现在 STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单中。
"selfTradePreventionMode": "NONE"
},
{
"symbol": "BTCUSDT",
"origClientOrderId": "Tnu2IP0J5Y4mxw3IATBfmW",
"orderId": 12569099454,
"orderListId": 19431,
"clientOrderId": "OFFXQtxVFZ6Nbcg4PgE2DA",
"transactTime": 1684804350068,
"price": "23400.00000000",
"origQty": "0.00850000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "BUY",
"selfTradePreventionMode": "NONE"
}
]
}
],
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

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

OCO下单 - 已弃用 (TRADE)​

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "orderList.place",
"params": {
"symbol": "BTCUSDT",
"side": "SELL",
"price": "23420.00000000",
"quantity": "0.00650000",
"stopPrice": "23410.00000000",
"stopLimitPrice": "23405.00000000",
"stopLimitTimeInForce": "GTC",
"newOrderRespType": "RESULT",
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}

发送新的OCO(one-cancels-the-other) 订单: LIMIT_MAKER 订单 + STOP_LOSS/STOP_LOSS_LIMIT 订单(称呼为 legs), 其中一个订单的激活会立即取消另一个订单。

这个请求会把1个订单添加到 EXCHANGE_MAX_ORDERS 过滤器和 MAX_NUM_ORDERS 过滤器中。

权重: 1

未成交的订单计数: 1

参数:

名称类型是否必须描述
apiKeySTRINGYES
symbolSTRINGYES
sideENUMYES详见枚举定义:订单方向
priceDECIMALYES
quantityDECIMALYES
listClientOrderIdSTRINGNO整个orderList的唯一ID
limitClientOrderIdSTRINGNO限价单的唯一ID
limitIcebergQtyDECIMALNO用于使 LIMIT_MAKER 腿单成为冰山订单。
limitStrategyIdLONGNO
limitStrategyTypeINTNO不能低于 1000000
stopPriceDECIMALNO
trailingDeltaINTNO
stopClientOrderIdSTRINGNO止损/止损限价单的唯一ID
stopLimitPriceDECIMALNO如果提供,须配合提交stopLimitTimeInForce
stopLimitTimeInForceENUMNO有效值 GTC/FOK/IOC
stopIcebergQtyDECIMALNO与 STOP_LOSS_LIMIT 腿单一起使用,使其成为冰山订单。
stopStrategyIdLONGNO
stopStrategyTypeINTNO不能低于 1000000
newOrderRespTypeENUMNOJSON 响应格式。支持的数值:订单返回类型
selfTradePreventionModeENUMNO允许的值取决于交易对的配置。支持的数值:STP模式
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 撮合引擎

备注:

  • listClientOrderId 参数指定 OCO 对的 listClientOrderId。

    只有当前一个 OCO 已满或完全过期时,才会接受具有相同 listClientOrderId 的新 OCO。

    listClientOrderId 与单个订单的 clientOrderId 不同。

  • legs 的价格限制:

    side价格关系
    BUYprice < 市场价格 < stopPrice
    SELLprice > 市场价格 > stopPrice
  • 两个 legs 的 quantity 需要相同。

    不过单个 leg 可以设置不同的冰山数量。

    如果使用 stopIcebergQty,stopLimitTimeInForce 必须是 GTC。

  • trailingDelta 仅适用于 OCO 的 STOP_LOSS/STOP_LOSS_LIMIT leg。

响应:

{
"id": "57833dc0-e3f2-43fb-ba20-46480973b0aa",
"status": 200,
"result": {
"orderListId": 1274512,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "08985fedd9ea2cf6b28996",
"transactionTime": 1660801713793,
"symbol": "BTCUSDT",
"orders": [
{
"symbol": "BTCUSDT",
"orderId": 12569138901,
"clientOrderId": "BqtFCj5odMoWtSqGk2X9tU"
},
{
"symbol": "BTCUSDT",
"orderId": 12569138902,
"clientOrderId": "jLnZpj5enfMXTuhKB1d0us"
}
],
"orderReports": [
{
"symbol": "BTCUSDT",
"orderId": 12569138901,
"orderListId": 1274512,
"clientOrderId": "BqtFCj5odMoWtSqGk2X9tU",
"transactTime": 1660801713793,
"price": "23410.00000000",
"origQty": "0.00650000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "STOP_LOSS_LIMIT",
"side": "SELL",
"stopPrice": "23405.00000000", // 出现在 STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单中。
"workingTime": -1,
"selfTradePreventionMode": "NONE"
},
{
"symbol": "BTCUSDT",
"orderId": 12569138902,
"orderListId": 1274512,
"clientOrderId": "jLnZpj5enfMXTuhKB1d0us",
"transactTime": 1660801713793,
"price": "23420.00000000",
"origQty": "0.00650000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "SELL",
"workingTime": 1660801713793,
"selfTradePreventionMode": "NONE"
}
]
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 2
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 2
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

发送新 OCO 订单 (TRADE)​

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "orderList.place.oco",
"params": {
"symbol": "LTCBNB",
"side": "BUY",
"quantity": 1,
"aboveType": "STOP_LOSS_LIMIT",
"abovePrice": "1.5",
"aboveStopPrice": "1.50000001",
"aboveTimeInForce": "GTC",
"belowType": "LIMIT_MAKER",
"belowPrice": "1.49999999",
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}

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

  • OCO 包含了两个订单,分别被称为 上方订单 和 下方订单。
  • 其中一个订单必须是 LIMIT_MAKER/TAKE_PROFIT/TAKE_PROFIT_LIMIT 订单,另一个订单必须是 STOP_LOSS 或 STOP_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 price < 最后交易价格 < STOP_LOSS/STOP_LOSS_LIMIT stopPrice
      • TAKE_PROFIT stopPrice > 最后交易价格 > STOP_LOSS/STOP_LOSS_LIMIT stopPrice
  • OCO 将2 个订单添加到 EXCHANGE_MAX_ORDERS过滤器和 MAX_NUM_ORDERS 过滤器中。

权重: 1

未成交的订单计数: 2

参数:

名称类型是否必须描述
apiKeySTRINGYES
symbolSTRINGYES
listClientOrderIdSTRINGNO整个 OCO order list 的唯一ID。 如果未发送则自动生成。 仅当前一个订单已填满或完全过期时,才会接受具有相同的listClientOrderId。 listClientOrderId 与 aboveClientOrderId 和 belowClientOrderId 不同。
sideENUMYES订单方向:BUY or SELL
quantityDECIMALYES两个订单的数量。
aboveTypeENUMYES
aboveClientOrderIdSTRINGNO上方订单的唯一ID。 如果未发送则自动生成。
aboveIcebergQtyLONGNO请注意,只有当 aboveTimeInForce 为 GTC 时才能使用。
abovePriceDECIMALNO当 aboveType 是 STOP_LOSS_LIMIT, LIMIT_MAKER 或 TAKE_PROFIT_LIMIT 时,可用以指定限价。
aboveStopPriceDECIMALNO如果 aboveType 是 STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT 或 TAKE_PROFIT_LIMIT 才能使用。 必须指定 aboveStopPrice 或 aboveTrailingDelta 或两者。
aboveTrailingDeltaLONGNO请看 追踪止盈止损(Trailing Stop)订单常见问题
aboveTimeInForceENUMNO如果 aboveType 是 STOP_LOSS_LIMIT 或 TAKE_PROFIT_LIMIT,则为必填项。
aboveStrategyIdLONGNO订单策略中上方订单的 ID。
aboveStrategyTypeINTNO上方订单策略的任意数值。小于 1000000 的值被保留,无法使用。
abovePegPriceTypeENUMNOPRIMARY_PEG 或 MARKET_PEG。 参阅 关于挂钩订单参数的注意事项
abovePegOffsetTypeENUMNO
abovePegOffsetValueINTNO最大值: 100。
belowTypeENUMYES支持值:STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT。
belowClientOrderIdSTRINGNO下方订单的唯一ID。 如果未发送则自动生成。
belowIcebergQtyLONGNO请注意,只有当 belowTimeInForce 为 GTC 时才能使用。
belowPriceDECIMALNO当 belowType 是 STOP_LOSS_LIMIT, LIMIT_MAKER 或 TAKE_PROFIT_LIMIT 时,可用以指定限价。
belowStopPriceDECIMALNO如果 belowType 是 STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT 或 TAKE_PROFIT_LIMIT 才能使用。 必须指定 belowStopPrice 或 belowTrailingDelta 或两者。
belowTrailingDeltaLONGNO请看 追踪止盈止损(Trailing Stop)订单常见问题
belowTimeInForceENUMNO如果 belowType 是 STOP_LOSS_LIMIT 或 TAKE_PROFIT_LIMIT,则为必须配合提交的值。
belowStrategyIdLONGNO订单策略中下方订单的 ID。
belowStrategyTypeINTNO下方订单策略的任意数值。小于 1000000 的值被保留,无法使用。
belowPegPriceTypeENUMNO参阅 关于挂钩订单参数的注意事项
belowPegOffsetTypeENUMNO
belowPegOffsetValueINTNO最大值: 100。
newOrderRespTypeENUMNO响应格式可选值: ACK, RESULT, FULL。
selfTradePreventionModeENUMNO允许的 ENUM 取决于交易对上的配置。 支持值:STP 模式
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 撮合引擎

响应:

{
"id": "56374a46-3261-486b-a211-99ed972eb648",
"status": 200,
"result": {
"orderListId": 2,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "cKPMnDCbcLQILtDYM4f4fX",
"transactionTime": 1711062760648,
"symbol": "LTCBNB",
"orders": [
{
"symbol": "LTCBNB",
"orderId": 2,
"clientOrderId": "0m6I4wfxvTUrOBSMUl0OPU"
},
{
"symbol": "LTCBNB",
"orderId": 3,
"clientOrderId": "Z2IMlR79XNY5LU0tOxrWyW"
}
],
"orderReports": [
{
"symbol": "LTCBNB",
"orderId": 2,
"orderListId": 2,
"clientOrderId": "0m6I4wfxvTUrOBSMUl0OPU",
"transactTime": 1711062760648,
"price": "1.50000000",
"origQty": "1.000000",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "STOP_LOSS_LIMIT",
"side": "BUY",
"stopPrice": "1.50000001", // 出现在 STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单中。
"workingTime": -1,
"selfTradePreventionMode": "NONE"
},
{
"symbol": "LTCBNB",
"orderId": 3,
"orderListId": 2,
"clientOrderId": "Z2IMlR79XNY5LU0tOxrWyW",
"transactTime": 1711062760648,
"price": "1.49999999",
"origQty": "1.000000",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "BUY",
"workingTime": 1711062760648,
"selfTradePreventionMode": "NONE"
}
]
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 2
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 2
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

发送新订单列表 - OTO (TRADE)​

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "orderList.place.oto",
"params": {
"symbol": "LTCBNB",
"workingType": "LIMIT",
"workingSide": "SELL",
"workingPrice": 1,
"workingQuantity": 1,
"workingTimeInForce": "GTC",
"pendingType": "MARKET",
"pendingSide": "BUY",
"pendingQuantity": 1,
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}

发送一个新的 OTO 订单。

  • 一个 OTO 订单(One-Triggers-the-Other)是一个包含了两个订单的订单列表.

  • 第一个订单被称为生效订单,必须为 LIMIT 或 LIMIT_MAKER 类型的订单。最初,订单簿上只有生效订单。

  • 第二个订单被称为待处理订单。它可以是任何订单类型,但不包括使用参数 quoteOrderQty 的 MARKET 订单。只有当生效订单完全成交时,待处理订单才会被自动下单。

  • 如果生效订单或者待处理订单中的任意一个被单独取消,订单列表中剩余的那个订单也会被随之取消或过期。

  • 如果生效订单在下订单列表后立即完全成交,则可能会得到订单响应。其中,生效订单的状态为 FILLED ,但待处理订单的状态为 PENDING_NEW。针对这类情况,如果需要检查当前状态,您可以查询相关的待处理订单。

  • OTO 订单将2 个订单添加到 EXCHANGE_MAX_NUM_ORDERS 过滤器和 MAX_NUM_ORDERS 过滤器中。

权重: 1

未成交的订单计数: 2

参数:

名称类型是否必须描述
apiKeySTRINGYES
symbolSTRINGYES
listClientOrderIdSTRINGNO整个订单列表的唯一ID。 如果未发送则自动生成。 仅当前一个订单列表已填满或完全过期时,才会接受含有相同 listClientOrderId 值的新订单列表。 listClientOrderId 与 workingClientOrderId 和 pendingClientOrderId 不同。
newOrderRespTypeENUMNO用于设置JSON响应的格式。 支持的数值: 订单返回类型
selfTradePreventionModeENUMNO允许的数值取决于交易对上的配置。参考 STP 模式
workingTypeENUMYES支持的数值: LIMIT, LIMIT_MAKER
workingSideENUMYES支持的数值: 订单方向
workingClientOrderIdSTRINGNO用于标识生效订单的唯一ID。 如果未发送则自动生成。
workingPriceDECIMALYES
workingQuantityDECIMALYES用于设置生效订单的数量。
workingIcebergQtyDECIMALNO仅当 workingTimeInForce 为 GTC 或 workingType 为 LIMIT_MAKER 时,才能使用此功能。
workingTimeInForceENUMNO支持的数值: 生效时间
workingStrategyIdLONGNO订单策略中用于标识生效订单的 ID。
workingStrategyTypeINTNO用于标识生效订单策略的任意数值。 小于 1000000 的值被保留,无法使用。
workingPegPriceTypeENUMNO参阅 关于挂钩订单参数的注意事项
workingPegOffsetTypeENUMNO
workingPegOffsetValueINTNO最大值: 100。
pendingTypeENUMYES支持的数值: 订单类型 请注意,系统不支持使用 quoteOrderQty 的 MARKET 订单。
pendingSideENUMYES支持的数值: 订单方向
pendingClientOrderIdSTRINGNO用于标识待处理订单的唯一ID。 如果未发送则自动生成。
pendingPriceDECIMALNO
pendingStopPriceDECIMALNO
pendingTrailingDeltaDECIMALNO
pendingQuantityDECIMALYES用于设置待处理订单的数量。
pendingIcebergQtyDECIMALNO只有当 pendingTimeInForce 为 GTC 或者当 pendingType 为 LIMIT_MAKER 时才能使用。
pendingTimeInForceENUMNO支持的数值: 生效时间
pendingStrategyIdLONGNO订单策略中用于标识待处理订单的 ID。
pendingStrategyTypeINTNO用于标识待处理订单策略的任意数值。 小于 1000000 的值被保留,无法使用。
pendingPegOffsetTypeENUMNO
pendingPegPriceTypeENUMNO参阅 关于挂钩订单参数的注意事项
pendingPegOffsetValueINTNO最大值: 100。
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 撮合引擎

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

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

类型强制要求的参数其他信息
workingType = LIMITworkingTimeInForce
pendingType = LIMITpendingPrice, pendingTimeInForce
pendingType = STOP_LOSS 或 TAKE_PROFITpendingStopPrice 与/或 pendingTrailingDelta
pendingType = STOP_LOSS_LIMIT 或 TAKE_PROFIT_LIMITpendingPrice, pendingStopPrice 与/或 pendingTrailingDelta, pendingTimeInForce

响应:

{
"id": "1712544395950",
"status": 200,
"result": {
"orderListId": 626,
"contingencyType": "OTO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "KA4EBjGnzvSwSCQsDdTrlf",
"transactionTime": 1712544395981,
"symbol": "LTCBNB",
"orders": [
{
"symbol": "LTCBNB",
"orderId": 13,
"clientOrderId": "YiAUtM9yJjl1a2jXHSp9Ny"
},
{
"symbol": "LTCBNB",
"orderId": 14,
"clientOrderId": "9MxJSE1TYkmyx5lbGLve7R"
}
],
"orderReports": [
{
"symbol": "LTCBNB",
"orderId": 13,
"orderListId": 626,
"clientOrderId": "YiAUtM9yJjl1a2jXHSp9Ny",
"transactTime": 1712544395981,
"price": "1.000000",
"origQty": "1.000000",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"workingTime": 1712544395981,
"selfTradePreventionMode": "NONE"
},
{
"symbol": "LTCBNB",
"orderId": 14,
"orderListId": 626,
"clientOrderId": "9MxJSE1TYkmyx5lbGLve7R",
"transactTime": 1712544395981,
"price": "0.000000",
"origQty": "1.000000",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "PENDING_NEW",
"timeInForce": "GTC",
"type": "MARKET",
"side": "BUY",
"workingTime": -1,
"selfTradePreventionMode": "NONE"
}
]
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 10000000,
"count": 10
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1000,
"count": 38
}
]
}

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

发送新订单列表 - OTOCO (TRADE)​

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "orderList.place.otoco",
"params": {
"symbol": "LTCBNB",
"workingType": "LIMIT",
"workingSide": "BUY",
"workingPrice": 1.5,
"workingQuantity": 1,
"workingTimeInForce": "GTC",
"pendingSide": "SELL",
"pendingQuantity": 5,
"pendingAboveType": "STOP_LOSS",
"pendingAboveStopPrice": 0.5,
"pendingBelowType": "LIMIT_MAKER",
"pendingBelowPrice": 5,
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}

发送一个新的 OTOCO 订单。

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

权重: 1

未成交的订单计数: 3

参数:

名称类型是否必须描述
apiKeySTRINGYES
symbolSTRINGYES
listClientOrderIdSTRINGNO整个订单列表的唯一ID。 如果未发送则自动生成。 仅当前一个订单列表已填满或完全过期时,才会接受含有相同 listClientOrderId 值的新订单列表。 listClientOrderId 与 workingClientOrderId、pendingAboveClientOrderId 和 pendingBelowClientOrderId 不同。
newOrderRespTypeENUMNO用于设置JSON响应的格式。 支持的数值: 订单返回类型
selfTradePreventionModeENUMNO允许的数值取决于交易对上的配置。参考 STP 模式
workingTypeENUMYES支持的数值: LIMIT, LIMIT_MAKER
workingSideENUMYES支持的数值: 订单方向
workingClientOrderIdSTRINGNO用于标识生效订单的唯一ID。 如果未发送则自动生成。
workingPriceDECIMALYES
workingQuantityDECIMALYES用于设置生效订单的数量。
workingIcebergQtyDECIMALNO仅当 workingTimeInForce 为 GTC 或 workingType 为 LIMIT_MAKER 时,才能使用此功能。
workingTimeInForceENUMNO支持的数值: 生效时间
workingStrategyIdLONGNO订单策略中用于标识生效订单的 ID。
workingStrategyTypeINTNO用于标识生效订单策略的任意数值。 小于 1000000 的值被保留,无法使用。
workingPegPriceTypeENUMNO参阅 关于挂钩订单参数的注意事项
workingPegOffsetTypeENUMNO
workingPegOffsetValueINTNO最大值: 100。
pendingSideENUMYES支持的数值: 订单方向
pendingQuantityDECIMALYES用于设置待处理订单的数量。
pendingAboveTypeENUMYES支持的数值: STOP_LOSS_LIMIT, STOP_LOSS, LIMIT_MAKER, TAKE_PROFIT, TAKE_PROFIT_LIMIT
pendingAboveClientOrderIdSTRINGNO用于标识待处理上方订单的唯一ID。 如果未发送则自动生成。
pendingAbovePriceDECIMALNO当 pendingAboveType 是 STOP_LOSS_LIMIT, LIMIT_MAKER 或 TAKE_PROFIT_LIMIT 时,可用以指定限价。
pendingAboveStopPriceDECIMALNO如果 pendingAboveType 是 STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT 才能使用。
pendingAboveTrailingDeltaDECIMALNO参见 追踪止盈止损(Trailing Stop)订单常见问题
pendingAboveIcebergQtyDECIMALNO只有当 pendingAboveTimeInForce 为 GTC 或 pendingAboveType 为 LIMIT_MAKER 时才能使用。
pendingAboveTimeInForceENUMNO如果 pendingAboveType 是 STOP_LOSS_LIMIT 或 TAKE_PROFIT_LIMIT,则为必填项。
pendingAboveStrategyIdLONGNO订单策略中用于标识待处理上方订单的 ID。
pendingAboveStrategyTypeINTNO用于标识待处理上方订单策略的任意数值。 小于 1000000 的值被保留,无法使用。
pendingAbovePegPriceTypeENUMNO参阅 关于挂钩订单参数的注意事项
pendingAbovePegOffsetTypeENUMNO
pendingAbovePegOffsetValueINTNO最大值: 100。
pendingBelowTypeENUMNO支持的数值: STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT
pendingBelowClientOrderIdSTRINGNO用于标识待处理下方订单的唯一ID。 如果未发送则自动生成。
pendingBelowPriceDECIMALNO当 pendingBelowType 是 STOP_LOSS_LIMIT 或 TAKE_PROFIT_LIMIT 时,可用以指定限价。
pendingBelowStopPriceDECIMALNO如果 pendingBelowType 是 STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT 才能使用。 必须指定 pendingBelowStopPrice 或 pendingBelowTrailingDelta 或两者。
pendingBelowTrailingDeltaDECIMALNO参见 追踪止盈止损(Trailing Stop)订单常见问题
pendingBelowIcebergQtyDECIMALNO只有当 pendingBelowTimeInForce 为 GTC 或 pendingBelowType 为 LIMIT_MAKER 时才能使用。
pendingBelowTimeInForceENUMNO如果 pendingBelowType 是 STOP_LOSS_LIMIT 或 TAKE_PROFIT_LIMIT,则为必须配合提交的值。
pendingBelowStrategyIdLONGNO订单策略中用于标识待处理下方订单的 ID。
pendingBelowStrategyTypeINTNO用于标识待处理下方订单策略的任意数值。 小于 1000000 的值被保留,无法使用。
pendingBelowPegPriceTypeENUMNO参阅 关于挂钩订单参数的注意事项
pendingBelowPegOffsetTypeENUMNO
pendingBelowPegOffsetValueINTNO最大值: 100。
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 撮合引擎

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

类型强制要求的参数其他信息
workingType = LIMITworkingTimeInForce
pendingAboveType = STOP_LOSS/TAKE_PROFITpendingAboveStopPrice 与/或 pendingAboveTrailingDelta
pendingAboveType = STOP_LOSS_LIMIT/TAKE_PROFIT_LIMITpendingAbovePrice, pendingAboveStopPrice 与/或 pendingAboveTrailingDelta, pendingAboveTimeInForce
pendingAboveType = LIMIT_MAKERpendingAbovePrice
pendingBelowType = STOP_LOSS/TAKE_PROFITpendingBelowStopPrice 与/或 pendingBelowTrailingDelta
pendingBelowType = STOP_LOSS_LIMIT/TAKE_PROFIT_LIMITpendingBelowPrice, pendingBelowStopPrice 与/或 pendingBelowTrailingDelta, pendingBelowTimeInForce
pendingBelowType = LIMIT_MAKERpendingBelowPrice

响应:

{
"id": "1712544408508",
"status": 200,
"result": {
"orderListId": 629,
"contingencyType": "OTO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "GaeJHjZPasPItFj4x7Mqm6",
"transactionTime": 1712544408537,
"symbol": "LTCBNB",
"orders": [
{
"symbol": "LTCBNB",
"orderId": 23,
"clientOrderId": "OVQOpKwfmPCfaBTD0n7e7H"
},
{
"symbol": "LTCBNB",
"orderId": 24,
"clientOrderId": "YcCPKCDMQIjNvLtNswt82X"
},
{
"symbol": "LTCBNB",
"orderId": 25,
"clientOrderId": "ilpIoShcFZ1ZGgSASKxMPt"
}
],
"orderReports": [
{
"symbol": "LTCBNB",
"orderId": 23,
"orderListId": 629,
"clientOrderId": "OVQOpKwfmPCfaBTD0n7e7H",
"transactTime": 1712544408537,
"price": "1.500000",
"origQty": "1.000000",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"workingTime": 1712544408537,
"selfTradePreventionMode": "NONE"
},
{
"symbol": "LTCBNB",
"orderId": 24,
"orderListId": 629,
"clientOrderId": "YcCPKCDMQIjNvLtNswt82X",
"transactTime": 1712544408537,
"price": "0.000000",
"origQty": "5.000000",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "PENDING_NEW",
"timeInForce": "GTC",
"type": "STOP_LOSS",
"side": "SELL",
"stopPrice": "0.500000",
"workingTime": -1,
"selfTradePreventionMode": "NONE"
},
{
"symbol": "LTCBNB",
"orderId": 25,
"orderListId": 629,
"clientOrderId": "ilpIoShcFZ1ZGgSASKxMPt",
"transactTime": 1712544408537,
"price": "5.000000",
"origQty": "5.000000",
"executedQty": "0.000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "PENDING_NEW",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "SELL",
"workingTime": -1,
"selfTradePreventionMode": "NONE"
}
]
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 10000000,
"count": 18
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1000,
"count": 65
}
]
}

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

下 SOR 订单 (TRADE)​

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "sor.order.place",
"params": {
"symbol": "BTCUSDT",
"side": "BUY",
"type": "LIMIT",
"timeInForce": "GTC",
"price": 31000,
"quantity": 0.5,
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}

发送使用智能订单路由 (SOR) 的新订单。这个请求会把1个订单添加到 EXCHANGE_MAX_ORDERS 过滤器和 MAX_NUM_ORDERS 过滤器中。

参阅 智能订单路由 (SOR) 了解更多详情。

权重: 1

未成交的订单计数: 1

参数:

名称类型是否必须描述
apiKeySTRINGYES
symbolSTRINGYES
sideENUMYESBUY 或 SELL
typeENUMYES仅支持 LIMIT 和 MARKET 订单。
timeInForceENUMNO仅适用于 LIMIT 订单类型。
priceDECIMALNO
quantityDECIMALYES
newClientOrderIdSTRINGNO用户自定义的orderid,如空缺系统会自动赋值。如果几个订单具有相同的 newClientOrderID 赋值,
那么只有在前一个订单成交后才可以接受下一个订单,否则该订单将被拒绝。
newOrderRespTypeENUMNO指定响应类型:
icebergQtyDECIMALNO仅有限价单可以使用该参数,含义为创建冰山订单并指定冰山订单的数量。
strategyIdLONGNO
strategyTypeINTNO赋值不能小于 1000000.
selfTradePreventionModeENUMNO允许的 ENUM 取决于交易对的配置。支持的值有:STP 模式。
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 撮合引擎

注意: sor.order.place 只支持 限价 和 市场 单, 并不支持 quoteOrderQty。

响应:

{
"id": "3a4437e2-41a3-4c19-897c-9cadc5dce8b6",
"status": 200,
"result": [
{
"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", // 用以定义订单是通过 SOR 还是由订单簿成交的。
"selfTradePreventionMode": "NONE",
"usedSor": true, // 用于确定订单是否使用SOR的字段。
"stopPrice": "0.00000000", // 出现在 STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单中。
"trailingDelta": 10, // 订单激活前所需的价格变动。
"icebergQty": "0.00000000", // 仅在请求中发送了 icebergQty 参数时出现。
"strategyId": 1, // 仅在下单时提供了 strategyId 参数时出现。
"strategyType": 1000000, // 仅在下单时提供了 strategyType 参数时出现。
"preventedMatchId": 0, // 仅在因 STP 导致订单失效时出现。
"preventedQuantity": "1.200000", // 因 STP 导致订单失效的数量。
"trailingTime": -1, // 追踪单被激活和跟踪价格变化的时间。
"pegPriceType": "PRIMARY_PEG", // 挂钩价格类型。仅用于挂钩订单。
"pegOffsetType": "PRICE_LEVEL", // 挂钩价格偏移类型。如若需要,仅用于挂钩订单。
"pegOffsetValue": 5, // 挂钩价格偏移值。如若需要,仅用于挂钩订单。
"peggedPrice": "87523.83710000", // 订单对应的当前挂钩价格。一旦确定,仅用于挂钩订单。
"expiryReason": "INSUFFICIENT_LIQUIDITY" // 订单过期的原因。当订单过期时出现。
}
],
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

测试 SOR 下单接口 (TRADE)​

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "sor.order.test",
"params": {
"symbol": "BTCUSDT",
"side": "BUY",
"type": "LIMIT",
"timeInForce": "GTC",
"price": 0.1,
"quantity": 0.1,
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}

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

权重:

条件请求权重
没有 computeCommissionRates1
有 computeCommissionRates20

参数:

名称类型是否必须描述
apiKeySTRINGYES
computeCommissionRatesBOOLEANNO默认值: false
symbolSTRINGYES
sideENUMYES详见枚举定义:订单方向
typeENUMYES详见枚举定义:订单类型
timeInForceENUMNO详见枚举定义:生效时间
priceDECIMALNO
quantityDECIMALYES
newClientOrderIdSTRINGNO用户自定义的orderid,如空缺系统会自动赋值。如果几个订单具有相同的 newClientOrderID 赋值,那么只有在前一个订单成交后才可以接受下一个订单,否则该订单将被拒绝。
newOrderRespTypeENUMNO指定响应类型: ACK, RESULT 或 FULL; 默认为 FULL。
icebergQtyDECIMALNO仅有限价单可以使用该参数,含义为创建冰山订单并指定冰山订单的数量。
strategyIdLONGNO
strategyTypeINTNO赋值不能小于 1000000。
selfTradePreventionModeENUMNO允许的 ENUM 取决于交易对的配置。支持的值有:STP 模式。
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 缓存

响应:

没有 computeCommissionRates:

{
"id": "3a4437e2-41a3-4c19-897c-9cadc5dce8b6",
"status": 200,
"result": {},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

有 computeCommissionRates:

{
"id": "3a4437e2-41a3-4c19-897c-9cadc5dce8b6",
"status": 200,
"result": {
// 订单交易的标准佣金率。
"standardCommissionForOrder": {
"maker": "0.00000112",
"taker": "0.00000114"
},
// 订单交易的税率。
"taxCommissionForOrder": {
"maker": "0.00000112",
"taker": "0.00000114"
},
// 以BNB支付时的标准佣金折扣。
"discount": {
"enabledForAccount": true,
"enabledForSymbol": true,
"discountAsset": "BNB",
"discount": "0.25000000" // 当用BNB支付佣金时,在标准佣金上按此比率打折。
}
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 20
}
]
}

撤销订单列表订单 (TRADE)​

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "orderList.cancel",
"params": {
"symbol": "BTCUSDT",
"orderListId": 1274512,
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}

取消整个订单列表。

权重: 1

参数:

名称类型是否必须描述
apiKeySTRINGYES
symbolSTRINGYES
orderListIdINTNOorderListId 或 listClientOrderId 必须被提供
listClientOrderIdSTRINGNOorderListId 或 listClientOrderId 必须被提供
newClientOrderIdSTRINGNO用户自定义的本次撤销操作的ID(注意不是被撤销的订单的自定义ID)。如无指定会自动赋值。
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 撮合引擎

备注:

  • 如果同时指定了 orderListId 和 listClientOrderId 参数,首先将会用orderListId 进行搜索,然后将检索结果中的 listClientOrderId 与订单进行比对。如果两个条件都不满足,则请求将被拒绝。

  • 使用 order.cancel 撤销订单列表内的某个订单,则整个订单列表将被撤销。

响应:

{
"id": "c5899911-d3f4-47ae-8835-97da553d27d0",
"status": 200,
"result": {
"orderListId": 1274512,
"contingencyType": "OCO",
"listStatusType": "ALL_DONE",
"listOrderStatus": "ALL_DONE",
"listClientOrderId": "6023531d7edaad348f5aff",
"transactionTime": 1660801720215,
"symbol": "BTCUSDT",
"orders": [
{
"symbol": "BTCUSDT",
"orderId": 12569138901,
"clientOrderId": "BqtFCj5odMoWtSqGk2X9tU"
},
{
"symbol": "BTCUSDT",
"orderId": 12569138902,
"clientOrderId": "jLnZpj5enfMXTuhKB1d0us"
}
],
"orderReports": [
{
"symbol": "BTCUSDT",
"orderId": 12569138901,
"orderListId": 1274512,
"clientOrderId": "BqtFCj5odMoWtSqGk2X9tU",
"transactTime": 1660801720215,
"price": "23410.00000000",
"origQty": "0.00650000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "STOP_LOSS_LIMIT",
"side": "SELL",
"stopPrice": "23405.00000000", // 出现在 STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单中。
"selfTradePreventionMode": "NONE"
},
{
"symbol": "BTCUSDT",
"orderId": 12569138902,
"orderListId": 1274512,
"clientOrderId": "jLnZpj5enfMXTuhKB1d0us",
"transactTime": 1660801720215,
"price": "23420.00000000",
"origQty": "0.00650000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "SELL",
"selfTradePreventionMode": "NONE"
}
]
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}

新订单列表 - OPO (TRADE)​

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "orderList.place.opo",
"params": {
"symbol": "BTCUSDT",
"workingType": "LIMIT",
"workingSide": "BUY",
"workingPrice": "101496",
"workingQuantity": "0.0007",
"workingTimeInForce": "GTC",
"pendingType": "MARKET",
"pendingSide": "SELL",
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}

发送一个 OPO 订单。

  • OPO 会向 EXCHANGE_MAX_NUM_ORDERS 过滤器和 MAX_NUM_ORDERS 过滤器中添加 2 个订单。

权重: 1

未成交的订单计数: 2

参数:

名称类型是否必须描述
apiKeySTRINGYES
symbolSTRINGYES
listClientOrderIdSTRINGNO订单列表中的唯一 ID。如果未发送,则自动生成。只有当之前的同一 listClientOrderId 的订单列表已成交或完全过期后,才接受新的同一 listClientOrderId 的订单列表。listClientOrderId 与 workingClientOrderId 和 pendingClientOrderId 不同。
newOrderRespTypeENUMNOJSON 响应格式。支持的数值:订单返回类型
selfTradePreventionModeENUMNO允许的数值取决于交易对的配置。支持的数值:STP模式
workingTypeENUMYES支持的数值:LIMIT,LIMIT_MAKER
workingSideENUMYES支持的数值:订单方向
workingClientOrderIdSTRINGNO生效订单中挂单的任意唯一 ID。如果未发送,则自动生成。
workingPriceDECIMALYES生效订单价格
workingQuantityDECIMALYES设置生效订单的数量
workingIcebergQtyDECIMALNO仅当 workingTimeInForce 为 GTC 或 workingType 为 LIMIT_MAKER 时可用
workingTimeInForceENUMNO支持的数值:生效时间
workingStrategyIdLONGNO用于标识订单策略中生效订单的任意数字值
workingStrategyTypeINTNO用于标识生效订单策略的任意数字值。小于 1000000 的值为保留值,不能使用。
workingPegPriceTypeENUMNO参阅 关于挂钩订单参数的注意事项
workingPegOffsetTypeENUMNO
workingPegOffsetValueINTNO最大值: 100。
pendingTypeENUMYES支持的数值:订单类型。注意,不支持使用 quoteOrderQty 的 MARKET 订单。
pendingSideENUMYES支持的数值:订单方向
pendingClientOrderIdSTRINGNO待处理订单中挂单的任意唯一 ID。如果未发送,则自动生成。
pendingPriceDECIMALNO待处理订单价格
pendingStopPriceDECIMALNO待处理订单止损价格
pendingTrailingDeltaDECIMALNO待处理订单跟踪止损差值
pendingIcebergQtyDECIMALNO仅当 pendingTimeInForce 为 GTC 或 pendingType 为 LIMIT_MAKER 时可用
pendingTimeInForceENUMNO支持的数值:生效时间
pendingStrategyIdLONGNO用于标识订单策略中待处理订单的任意数字值
pendingStrategyTypeINTNO用于标识待处理订单策略的任意数字值。小于 1000000 的值为保留值,不能使用。
pendingPegPriceTypeENUMNO参阅 关于挂钩订单参数的注意事项
pendingPegOffsetTypeENUMNO
pendingPegOffsetValueINTNO最大值: 100。
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 撮合引擎

响应:

{
"id": "eabb220d-1c53-4f8a-8bca-a1cd3594b3ce",
"status": 200,
"result": {
"orderListId": 2,
"contingencyType": "OTO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "OiOgqvRagBefpzdM5gjYX3",
"transactionTime": 1762941318142,
"symbol": "BTCUSDT",
"orders": [
{
"symbol": "BTCUSDT",
"orderId": 2,
"clientOrderId": "pUzhKBbc0ZVdMScIRAqitH"
},
{
"symbol": "BTCUSDT",
"orderId": 3,
"clientOrderId": "x7ISSjywZxFXOdzwsThNnd"
}
],
"orderReports": [
{
"symbol": "BTCUSDT",
"orderId": 2,
"orderListId": 2,
"clientOrderId": "pUzhKBbc0ZVdMScIRAqitH",
"transactTime": 1762941318142,
"price": "101496.00000000",
"origQty": "0.00070000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"workingTime": 1762941318142,
"selfTradePreventionMode": "NONE"
},
{
"symbol": "BTCUSDT",
"orderId": 3,
"orderListId": 2,
"clientOrderId": "x7ISSjywZxFXOdzwsThNnd",
"transactTime": 1762941318142,
"price": "0.00000000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "PENDING_NEW",
"timeInForce": "GTC",
"type": "MARKET",
"side": "SELL",
"workingTime": -1,
"selfTradePreventionMode": "NONE"
}
]
}
}

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

新订单列表 - OPOCO (TRADE)​

{
"id": "5494febb-d167-46a2-996d-70533eb4d976",
"method": "orderList.place.opoco",
"params": {
"symbol": "BTCUSDT",
"workingType": "LIMIT",
"workingSide": "BUY",
"workingPrice": "102496",
"workingQuantity": "0.0017",
"workingTimeInForce": "GTC",
"pendingSide": "SELL",
"pendingAboveType": "LIMIT_MAKER",
"pendingAbovePrice": "104261",
"pendingBelowType": "STOP_LOSS_LIMIT",
"pendingBelowPrice": "101613",
"pendingBelowStopPrice": "10100",
"pendingBelowTimeInForce": "IOC",
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}

发送一个 OPOCO 订单。

权重: 1

未成交的订单计数: 3

参数:

名称类型是否必须描述
apiKeySTRINGYES
symbolSTRINGYES
listClientOrderIdSTRINGNO订单列表中的唯一 ID。如果未发送,则自动生成。只有当之前的同一 listClientOrderId 的订单列表已成交或完全过期后,才接受新的同一 listClientOrderId 的订单列表。listClientOrderId 与 workingClientOrderId、pendingAboveClientOrderId 和 pendingBelowClientOrderId 不同。
newOrderRespTypeENUMNOJSON 响应格式。支持的数值:订单返回类型
selfTradePreventionModeENUMNO允许的数值取决于交易对的配置。支持的数值:STP模式
workingTypeENUMYES
workingSideENUMYES支持的数值:订单方向
workingClientOrderIdSTRINGNO生效订单中挂单的任意唯一 ID。如果未发送,则自动生成。
workingPriceDECIMALYES生效订单价格
workingQuantityDECIMALYES设置生效订单的数量
workingIcebergQtyDECIMALNO仅当 workingTimeInForce 为 GTC 或 workingType 为 LIMIT_MAKER 时可用
workingTimeInForceENUMNO支持的数值:生效时间
workingStrategyIdLONGNO用于标识订单策略中生效订单的任意数字值
workingStrategyTypeINTNO用于标识生效订单策略的任意数字值。小于 1000000 的值为保留值,不能使用。
workingPegPriceTypeENUMNO参阅 关于挂钩订单参数的注意事项
workingPegOffsetTypeENUMNO参阅 关于挂钩订单参数的注意事项
workingPegOffsetValueINTNO用于挂钩的价格水平(最大值:100)。 参阅 关于挂钩订单参数的注意事项
pendingSideENUMYES支持的数值:订单方向
pendingAboveTypeENUMYES支持的数值:STOP_LOSS_LIMIT,STOP_LOSS,LIMIT_MAKER,TAKE_PROFIT,TAKE_PROFIT_LIMIT
pendingAboveClientOrderIdSTRINGNO待处理"上方"订单中开放订单的任意唯一 ID。如果未发送,则自动生成。
pendingAbovePriceDECIMALNO当 pendingAboveType 为 STOP_LOSS_LIMIT、LIMIT_MAKER 或 TAKE_PROFIT_LIMIT 时,可用于指定限价。
pendingAboveStopPriceDECIMALNO当 pendingAboveType 为 STOP_LOSS、STOP_LOSS_LIMIT、TAKE_PROFIT、TAKE_PROFIT_LIMIT 时可用。
pendingAboveTrailingDeltaDECIMALNO详见 追踪止盈止损常见问题
pendingAboveIcebergQtyDECIMALNO仅当 pendingAboveTimeInForce 为 GTC 或 pendingAboveType 为 LIMIT_MAKER 时可用。
pendingAboveTimeInForceENUMNO如果 pendingAboveType 是 STOP_LOSS_LIMIT 或 TAKE_PROFIT_LIMIT,则为必填项。
pendingAboveStrategyIdLONGNO用于标识订单策略中待处理上方订单的任意数字值。
pendingAboveStrategyTypeINTNO用于标识待处理上方订单策略的任意数字值。小于 1000000 的值为保留值,不能使用。
pendingAbovePegPriceTypeENUMNO参阅 关于挂钩订单参数的注意事项
pendingAbovePegOffsetTypeENUMNO参阅 关于挂钩订单参数的注意事项
pendingAbovePegOffsetValueINTNO用于挂钩的价格水平(最大值:100)。 参阅 关于挂钩订单参数的注意事项
pendingBelowTypeENUMNO支持的数值:STOP_LOSS,STOP_LOSS_LIMIT,TAKE_PROFIT,TAKE_PROFIT_LIMIT
pendingBelowClientOrderIdSTRINGNO待处理"下方"订单中开放订单的任意唯一 ID。如果未发送,则自动生成。
pendingBelowPriceDECIMALNO当 pendingBelowType 为 STOP_LOSS_LIMIT 或 TAKE_PROFIT_LIMIT 时,可用于指定限价。
pendingBelowStopPriceDECIMALNO当 pendingBelowType 为 STOP_LOSS、STOP_LOSS_LIMIT、TAKE_PROFIT 或 TAKE_PROFIT_LIMIT 时可用。pendingBelowStopPrice、pendingBelowTrailingDelta 或两者之一必须被指定。
pendingBelowTrailingDeltaDECIMALNO详见 追踪止盈止损常见问题
pendingBelowIcebergQtyDECIMALNO仅当 pendingBelowTimeInForce 为 GTC 或 pendingBelowType 为 LIMIT_MAKER 时可用。
pendingBelowTimeInForceENUMNO支持的数值:生效时间
pendingBelowStrategyIdLONGNO用于标识订单策略中待处理下方订单的任意数字值。
pendingBelowStrategyTypeINTNO用于标识待处理下方订单策略的任意数字值。小于 1000000 为保留值,不能使用。
pendingBelowPegPriceTypeENUMNO参阅 关于挂钩订单参数的注意事项
pendingBelowPegOffsetTypeENUMNO
pendingBelowPegOffsetValueINTNO最大值: 100。
recvWindowDECIMALNO最大值: 60000。
支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。
timestampLONGYES用于请求签名的 Unix 时间戳,单位为毫秒或微秒。该值必须反映客户端当前时间,并会在签名接口中由服务器进行校验。
signatureSTRINGYES

数据源: 撮合引擎

响应:

{
"id": "606063bf-43ea-40a6-a463-5c66fbd53b56",
"status": 200,
"result": {
"orderListId": 1,
"contingencyType": "OTO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "TVbG6ymkYMXTj7tczbOsBf",
"transactionTime": 1763000139104,
"symbol": "BTCUSDT",
"orders": [
{
"symbol": "BTCUSDT",
"orderId": 6,
"clientOrderId": "3czuJSeyjPwV9Xo28j1Dv3"
},
{
"symbol": "BTCUSDT",
"orderId": 7,
"clientOrderId": "kyIKnMLKQclE5FmyYgaMSo"
},
{
"symbol": "BTCUSDT",
"orderId": 8,
"clientOrderId": "i76cGJWN9J1FpADS56TtQZ"
}
],
"orderReports": [
{
"symbol": "BTCUSDT",
"orderId": 6,
"orderListId": 1,
"clientOrderId": "3czuJSeyjPwV9Xo28j1Dv3",
"transactTime": 1763000139104,
"price": "102496.00000000",
"origQty": "0.00170000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"workingTime": 1763000139104,
"selfTradePreventionMode": "NONE"
},
{
"symbol": "BTCUSDT",
"orderId": 7,
"orderListId": 1,
"clientOrderId": "kyIKnMLKQclE5FmyYgaMSo",
"transactTime": 1763000139104,
"price": "101613.00000000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "PENDING_NEW",
"timeInForce": "IOC",
"type": "STOP_LOSS_LIMIT",
"side": "SELL",
"stopPrice": "10100.00000000",
"workingTime": -1,
"selfTradePreventionMode": "NONE"
},
{
"symbol": "BTCUSDT",
"orderId": 8,
"orderListId": 1,
"clientOrderId": "i76cGJWN9J1FpADS56TtQZ",
"transactTime": 1763000139104,
"price": "104261.00000000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "PENDING_NEW",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "SELL",
"workingTime": -1,
"selfTradePreventionMode": "NONE"
}
]
}
}

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