一个订单支付另一个订单(One Pays the Other,简称 OPO)
什么是一个订单支付另一个订单(OPO)?
这是 OTO 和 OTOCO 的一种特殊行为,其中生效订单收到的数量将用作待执行订单的数量。因此,订单触发时唯一的数量要求是生效订单的数量。
生效订单收到的资金会被锁定,用于待执行订单,且不可用于交易或提现。如果订单列表在待执行订单被提交到撮合引擎之前被取消,这些锁定的资金将被解锁。
OPO 与 OTO 几乎相同,唯一的区别是待执行订单不用指定数量。
我如何使用它?
请参考下表:
| API | 请求方式 |
|---|---|
| REST API | POST /api/v3/orderList/opo POST /api/v3/orderList/opoco |
| WebSocket API | orderList.place.opo orderList.place.opoco |
| FIX API | NewOrderList <E>,其中 OPO (25046)=true |
该订单列表与其他订单列表有什么区别?
- 待执行订单在提交到撮合引擎时没有数量;数量将基于生效订单完全成交后收到的数量确定。
- 收到的数量会扣除相应的手续费。如果收到的资产不是 BNB 且有足够的可用资金,手续费将从可用资金(即
free余额)中扣除。 - 待执行订单的数量会在生效订单完全成交后进行检查(例如过滤器)。
- 如果某个交易对配置了
LOT_SIZE和/或MARKET_LOT_SIZE过滤器,待执行订单的数量会被调整以满足这些要求。未使用的锁定数量将被解锁并返还到free余额。 - 待执行的 OPO 订单的数量在生效订单完全成交之前不可修改。
- 仅接受生效订单为买入(BUY)方向,待执行订单为卖出(SELL)方向的情况。
哪些交易对支持 OPO 订单?
| 订单类型 | Exchange Information 中需要包含 |
|---|---|
| OPO | otoAllowed 和 opoAllowed |
| OPOCO | otoAllowed、opoAllowed 和 ocoAllowed |