Skip to main content
自成交防护不让一笔订单跟你自己挂着的流动性成交。新进订单眼看要和同一账户的订单成交,这次撮合就被拦下来,不予执行。 它始终开启,覆盖所有市场、所有账户。没有开关,也没有参数可设。

为什么需要它

两个原因,都重要。 对敲刷量。 和自己交易会制造成交量和成交记录,却不转移任何风险。这是一种伪造活跃度的手段,在撮合层就阻止它,意味着场所公布的成交量反映的是不同参与方之间的真实交易。 意外自成交。 更常见,也没那么险恶。做市商双边报价,或者同一账户下跑着好几个策略,很容易和自己的报价撞上。没有防护,两条腿都要付吃单费率,成交完了仓位却毫无变化。

会发生什么

撮合器一旦发现新进订单要吃的是同一账户挂着的流动性,挂着的那笔订单就被撤销,新进订单继续与订单簿的其余部分撮合。
新进订单
会吃到自己挂着的订单?
正常撮合
撤销挂着的那笔订单
你的订单继续吃向订单簿其余部分
单个账户之内始终拦截。没有开关,也没有参数可设。
子账户之间不拦截——它们按设计就是彼此独立的账户。
被撤销的是挂单方,不是吃单方——并带一个专门的状态,好让自动化系统把它和普通撤单区分开。
撤销挂单方而不是吃单方,意味着你刚提交的订单仍然按你的意图执行,而挡在它前面的那个过期报价被移走。被撤销的订单带一个专门的状态,让你把自成交撤销和普通撤销区分开——这在任何自动化系统里都值得暴露出来,因为报价这样消失,说明你自己那套策略内部撞上了。

作用范围

防护作用在单个账户之内。子账户被视为彼此独立的账户,相互之间不受保护。 这条边界是有意划的,不是疏漏。子账户存在的意义就是隔离策略——风险独立、保证金独立、账目独立。真正相互独立的策略,完全可能合理地站在同一笔交易的两侧;禁止这一点,等于让一个子账户的报价悄悄卡住另一个子账户的成交。
如果你运行的多个策略绝不能相互成交,请把它们放在同一账户下,这样防护才会生效。如果你的策略之间可能合理地站在对立面,子账户才是正确的结构。这个决定应当主动去做,而不是事后才发现。

它不做什么

它不保证你的订单成交。 如果那个价位上唯一的流动性正是你自己挂的订单,撤掉它并不会凭空变出一个对手方——你的订单会继续吃向订单簿,而那边可能已经没人接了。 它不能阻止账户之间的协同交易。 防护是撮合层的机制,只管单个账户之内。两个不同账户互相成交,撮合器区分不出它和普通交易。 撤销不会减少你的仓位。 被撤销的挂单是订单,不是仓位。你的敞口毫无变化。

后续阅读

撮合

这项检查在区块执行的哪个位置运行。

订单类型

只挂单订单,以及它们与你自己挂单之间的互动。

修改订单

在不与自己交叉的前提下管理报价。

手续费

一次自成交本来会付出的吃单费率。