Senzoukria · 术语表

OCO 订单(一个成交则撤销另一个)

OCO 订单把两张或更多订单链接起来,使得其中一张成交时其余的被撤销。它最常见的用途是给一个未平仓头寸配一对出场单——一张保护性止损加一张止盈目标——而实践中最要紧的问题是:这个链接在哪里被执行,交易所、券商的服务器,还是交易软件内部。

更新于 2026 年 9 月首次发布:2026年9月25日

本页目录
  1. 链接怎么工作
  2. 链接住在哪里
  3. 需要知道的几种失效方式
  4. 一个算例
  5. 在 Senzoukria 里
  6. 相关内容
  7. 同一栏目
  8. 其他语言版本
  9. 常见问题

链接怎么工作

一个 OCO 组里的每一张订单都是一张普通的在途订单:一张止损、一张限价或者别的类型,停在券商或者交易所那里。链接是加在它们之上的一条额外规则:当其中一腿报告成交时,撤销其余的。

对一个做多头寸的出场对来说,这意味着下方一张卖出止损、上方一张卖出限价;先被触到的那一张平掉头寸,而另一张必须消失,否则它后来成交就会开出一个新的头寸——而且是反方向的头寸。这就是 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 的两腿有可能都成交吗?
有可能,在急行情里,如果第二腿在它的撤销被处理之前就执行了。交易所原生和券商侧的链接能把这个时间窗收窄;而一个客户端侧的链接需要一次网络往返,消除不了它。在急行情里的任何一次出场之后去核对头寸,才是真正的保险。
NEXT

继续阅读