链接怎么工作
一个 OCO 组里的每一张订单都是一张普通的在途订单:一张止损、一张限价或者别的类型,停在券商或者交易所那里。链接是加在它们之上的一条额外规则:当其中一腿报告成交时,撤销其余的。
对一个做多头寸的出场对来说,这意味着下方一张卖出止损、上方一张卖出限价;先被触到的那一张平掉头寸,而另一张必须消失,否则它后来成交就会开出一个新的头寸——而且是反方向的头寸。这就是 OCO 存在的全部理由。
链接住在哪里
| 位置 | 能在你断线后存活吗 | 典型弱点 |
|---|---|---|
| 交易所(原生) | 能 | 只覆盖交易所支持的产品和订单类型 |
| 券商服务器 | 能 | 取决于该券商的实现和它的延迟 |
| 交易软件(客户端) | 不能 | 软件或者它的连接一停,链接就停了 |
需要知道的几种失效方式
- 两腿都成交:在急行情里,第二腿可能在它的撤销指令到达之前就成交了,留下一个并非本意的头寸。
- 一腿部分成交:除非另一腿被同步减量,它仍然带着全部数量,所以后来被触发时会把头寸平过头。
- 断线:一个客户端侧的链接停止监视;两腿都还在券商那里工作着,但彼此不再链接。
- 撤销被拒绝或者没有确认:在去查券商的在途订单之前,剩下那一腿的状态是未知的。
一个算例
一位交易者在 5,000.00 做多 2 手 ES,止损在 4,995.00、目标在 5,010.00,两者以 OCO 链接。目标成交:链接为止损发出撤销,券商确认,账户变为平仓,没有留下任何在途订单。
现在假设在价格转头向下之前,目标只成交了 1 手。止损仍然带着 2 手;如果它被触发,它会对着一个 1 手的头寸卖出 2 手,让账户净空 1 手。只有在剩余数量被保持一致的情况下,OCO 才算完成了它的工作——这就是为什么部分成交是出场管理里最需要盯的那一类事件。
在 Senzoukria 里
在 Rithmic 连接上,OCO 链接是本地的:软件的订单会话监视两腿并发出撤销。从经纪商账户面板的 SL 和 TP 字段下止损和目标,会发出两张与头寸相反的订单并把它们链接起来,同时给出提示「止损与目标已发出。OCO 由本应用在连接期间维护,请保持运行。」自动驾驶在两腿都被确认之后,用同样的方式链接它的止损和目标。两腿必须属于当前账户、同一合约、同一方向和同一数量。
如果订单会话在一个链接处于活动状态时结束,一条安全提示会说明本应用在断线期间无法维护这个链接,并要求你去券商那里核对订单和头寸;当有多于一腿成交,或者一次撤销被拒绝、没有确认时,软件不做任何自动重试,而是提出同样的核对要求。紧凑下单板的「OCO Strategy」——以跳数附在市价进场上的止损和目标——存在于模拟账户面板上。
相关内容
同一栏目
其他语言版本
常见问题
- 软件关掉之后,我的 OCO 会怎样?
- 在客户端侧的 OCO 下,两张订单还在券商那里工作,但已经没有任何东西把它们链接起来:如果其中一张成交,另一张还在,之后可能开出一个不想要的头寸。在 Senzoukria 里,这个链接是运行中的软件的本地功能,这就是它在断线时发出警告、并要求你去查券商在途订单的原因。
- OCO 的两腿有可能都成交吗?
- 有可能,在急行情里,如果第二腿在它的撤销被处理之前就执行了。交易所原生和券商侧的链接能把这个时间窗收窄;而一个客户端侧的链接需要一次网络往返,消除不了它。在急行情里的任何一次出场之后去核对头寸,才是真正的保险。