Skip to main content
条件单不在订单簿上。它待在一个独立的存储里盯着某个价格,只有在触发条件满足时才变成一笔真正的订单。在那之前,它不占用任何队列位置,也不向任何人展示深度。 这个区别决定了本页的其余内容。一笔挂在簿上的限价单随时可能被撮合;条件单则根本无法被撮合——它只能被转换,而转换发生在区块执行内部一个确定的位置。

三种形态

同一套触发机制服务于三种不同的意图,区别在于各自附着在什么上面。 第三种最不像一笔订单。它的作用范围是仓位,不是某个数量,所以仓位规模一变,它就跟着变——参见止盈与止损。

触发

决定条件单何时触发的有两件事:它盯的是哪个价格,以及这项检查发生在区块的哪个位置。 盯哪个价格:触发器可以盯标记价格,也可以盯最新成交价。标记价格经过平滑,更难被推动,所以是保护性订单更安全的默认选择;最新成交价反应更快,也更贴近你看到的成交打印,某些策略要的正是这个。这个选择逐单设定。 在区块的哪个位置:条件单在撮合跑起来之前先被扫描一遍,用的是区块开始时固定下来的标记价格。被本区块价格触发的订单,就在本区块内变成活动订单,不是下一个区块。完整的优先级顺序参见交易排序。
触发器盯的是其中之一
标记价格经过平滑,更难被推动——更安全的默认
最新成交价反应更快,更贴近你看到的成交打印
停在条件单存储中不占队列位置,不展示深度
条件满足?
转换为市价单或限价单
在本区块撮合
在撮合跑起来之前扫描,用的是区块开始时固定下来的标记价格。
尚未满足 — 下个区块再查

联动

条件单很少单独行动。联动有三种模式,各有各的撤销语义。 止盈和止损互相撤销。 一对保护性订单是二选一(OCO)关系:任意一条腿触发,另一条会被自动撤销。不会出现你已经空仓、却还挂着一个活动止损的情况。 附着的订单对跟着父订单走。 如果你把止盈和止损附着在正在下的一笔订单上,这一对在父订单成交之前不会生效。父订单要是在成交前被撤销,附着的两条腿也一并消失。 附着于仓位的订单对跟着仓位走。 仓位一旦关闭——被你自己的订单平掉、被强平,或者被自动减仓——附着在它上面的保护性订单也会被撤销。它们存在是为了保护某个东西;那个东西没了,它们也就没了。
这是集成方最常搞错的地方。止损如果活得比它保护的那个仓位还久,下一次触发就会朝反方向开出一个新仓位。联动机制正是用来防这一手的,而且由协议强制执行,不靠下单的客户端自觉。

订单状态

条件单会经过一组明确定义的状态,每一次状态转换都是可观测的协议事件。 最让人意外的状态是在转换时被拒绝。一笔订单可以被接受、等上几个小时、正确触发,最后仍然失败——因为条件是在转换那一刻重新检查的,不只是在下单时检查。保证金可能已经不够了;一笔只减仓的条件单可能已经没有仓位可减了。触发确实发生了,只是由此产生的订单没能活下来。

下单时与转换时的检查

两套不同的规则在两个不同的时点生效。 下单时,协议会检查触发价格在你指定的方向上说不说得通——一下单就会触发的止损是失误,不是策略——以及触发价离当前价格是不是还在允许范围之内。未成交订单数量上限和频率限制也在这里生效。 转换时,会按你当时的实际仓位重新算保证金够不够、重新检查只减仓约束;条件市价单和任何市价单一样,同样受滑点保护约束。参见市价单与滑点保护。
条件单不保证成交。它保证的是条件满足时会有一笔订单被提交。在快速行情中,产生的订单可能在远离触发价的位置成交,或者——如果转换成的是限价单——根本不成交。保护性订单能降低跳空带来的敞口,但消除不了它。

后续阅读

止盈与止损

两种保护性形态,以及仓位变化时各自的行为。

标记价格

大多数保护性触发器应当盯的价格,以及它为什么要平滑。

交易排序

触发扫描相对于撤单和新订单处在什么位置。

订单类型

条件单会转换成什么。