自我交易预防 (Self Trade Prevention - STP) 常见问题
免责声明:
- 此处使用的佣金和价格是虚构的,并不反映实际交易所的设置。
什么是 Self Trade Prevention - STP?
自我交易预防是指阻止订单与来自同一账户或者同一 tradeGroupId
账户的订单交易。
什么是自我交易(self-trade)?
在以下任一情况下都可能发生自我交易:
- 属于同一账户的订单之间交易。
- 属于相同
tradeGroupId
的账户的订单之间交易。
STP 触发时会发生什么?
如果订单会触发自我交易,系统将执行五种可能的模式:
NONE
- 此模式使订单免于自我 交易预防。
EXPIRE_TAKER
- 此模式通过立即使吃单者(taker)的剩余数量过期来预防交易。
EXPIRE_MAKER
- 此模式通过立即使潜在挂单者(maker)的剩余数量过期来预防交易。
EXPIRE_BOTH
- 此模式通过立即同时使吃单和挂单者的剩余数量过期来预防交易。
DECREMENT
- 此模式通过阻止匹配的数量来增加两种订单的 prevented quantity
。这将使可用数量较少的订单过期, 如果两个订单的可用数量相等,那么两个订单都将过期。
STP 的发生取决于 Taker 订单 的 STP 模式。
因此,订单薄上的订单的 STP 模式不再有效果,并且将在所有未来的订单处理中被忽略。
什么是交易组 Id(Trade Group Id)?
属于同一 tradeGroupId
的账户被视为同一交易组。相同交易组成员提交的订单有 STP 资格。
每个账户可以从 GET /api/v3/account
(REST API)或 account.status
(WebSocket API)确认账户是否属于同一个 tradeGroupId
。
tradeGroupId
也存在 GET /api/v3/preventedMatches
(REST API)或 myPreventedMatches
(WebSocket API)的响应中。
如果该值为 -1
,这表示账户未设置 tradeGroupId
,因此 STP 只能发生在同一账户的订单之间。