跳到主要内容

保留优先级的修改订单请求(Order Amend Keep Priority) 常见问题

免责声明:

  • 此处使用的交易对和价格是虚构的,并不反映实际交易所的设置。
  • 为了简化过程,本文档中的示例不包括佣金。

什么是 Order Amend Keep Priority?

保留优先级的修改订单请求(Order Amend Keep Priority)用于修改(修正)现有订单并 不失去在订单簿上的优先级

允许进行以下订单修改:

  • 减少现有订单的原始数量。

我该如何修改我的订单数量?

使用以下请求:

API请求
REST APIPUT /api/v3/order/amend/keepPriority
WebSocket APIorder.amend.keepPriority
FIX APIOrderAmendKeepPriorityRequest <XAK>

“撤消挂单再下单”(cancel-replace)和”保留优先级的修改订单请求“之间的区别?

撤消挂单再下单请求 撤消挂单并重新下单。
在时间上的优先级会被丢失。 新订单在相同价格的现有订单之后执行。

留优先级的修改订单请求 就地修改现有订单。
修改后的订单在相同价格的现有订单中保持其时间优先级。

比如,拿下面的订单簿为例:

用户订单 ID订单方向订单价格数量
用户 A10BUY87,0001.00
⭐️ 你15BUY87,0005.50
用户 B20BUY87,0004.00
用户 C21BUY86,9992.00

您的订单 15 是根据价格和时间排在队列中的第二个订单。

您想将数量从 5.50 减少.50 降至 5.00。

如果您使用 cancel-replace 取消 orderId=15 并使用 qty=5.00 来下新订单, 订单簿将如下所示:

用户订单 ID订单方向订单价格数量
用户 A10BUY87,0001.00
⭐️ 你11BUY87,0005.50
用户 B20BUY87,0004.00
⭐️ 你(new) 22BUY87,0005.00
用户 C21BUY86,9992.00

请注意:新订单将获得新的订单 ID,并且您会失去时间优先级:订单 22 将在订单 20 之后交易。

如果您改用 保留优先级的修改订单请求orderId=15 的数量减少到 qty=5.00,订单簿将如下所示:

用户订单 ID订单方向订单价格数量
用户 A10BUY87,0001.00
⭐️ 你15BUY87,000(amended) 5.00
用户 B20BUY87,0004.00
用户 C21BUY86,9992.00

请注意:订单 ID 保持不变,订单在队列中保持其优先级。只有订单数量会发生变化。

保留优先级的修改订单请求是否会影响未成交订单数量(速率限制)?

目前,保留优先级的修改订单请求对未成交订单计数为 0。

我如何才能知道我的订单是否已被修改?

如果订单修改成功,API 响应会包含具有新数量的订单。

在账户信息流上,您将收到执行类型为 "x": "REPLACED""executionReport" 事件。

如果修改后的订单隶属于订单列表,并且 client order ID 已被更改,您还将收到一个列表状态类型为 "l": "UPDATED" 的 "listStatus" 事件。

您也可以使用以下请求来查询订单修改历史:

API请求
REST APIGET /api/v3/order/amendments
WebSocket APIorder.amendments

如果我的修改请求不成功,该怎么办?

如果请求由于任何原因失败(比如,因为过滤器,权限,帐户限制等而失败),那么订单修改请求会被拒绝,而订单将保持不变。

我有可能在我的修改订单请求中重用现在的 clientOrderId 么?

没问题。

默认状态下,被修改的订单会得到一个随即生成的新 client order ID。但是,你可以通过现有的 current client order ID 赋值给 newClientOrderId 参数的方式来重用数据。

我可以对冰山订单进行修改吗?

可以的。

请注意:只有当 newQty 低于未修改前的可见数量时,冰山订单的可见数量才能被改变。

我可以对订单列表进行修改吗?

在订单列表中的订单是可以被修改的。

请注意:OCO 订单对必须具有相同的数量,因为只有一个订单可以执行。这意味着修改任一订单都会影响两个订单。

对于 OTO 订单,您可以对生效订单和待处理订单进行单独修改。

哪些交易对允许保留优先级的修改订单请求?

相关信息可在 Exchange Information 中找到。 允许保留优先级的修改订单请求的交易对将会把 amendAllowed 设置为 true