如何在交易平台中设置 OCO 订单

OCO(one-cancels-the-other,互相取消)订单是两笔关联订单:其中一笔成交,另一笔就会自动取消。它适用于突破行情、将止损与获利目标配对,以及重新入场。下面是设置方法。

免责声明

这不是投资建议。所提供的信息仅用于教育和信息目的,不构成对任何金融产品买入或卖出的推荐。

这些风险警示的英文版本具有权威性。仅为方便起见,提供翻译版本。

OCO(one-cancels-the-other,互相取消)订单是两笔关联订单:其中一笔成交后,另一笔会自动取消。当你希望在两个价格水平中的其中一个来退出持仓时(通常是获利目标或止损),但又不希望两者都触发时,这种订单非常有用。先成交的一方获胜;另一方会被取消。

本文是一个实用的操作指南:介绍OCO订单何时有意义、如何在典型交易平台上设置,以及需要注意哪些事项。

何时 OCO 订单有意义

三种常见用途:

  1. 括单(Bracket orders)。 做多仓位,同时设置获利目标和止损。将卖出限价单放在当前价格之上,并将卖出止损单放在当前价格之下。先触发的那一笔会成交,另一笔会取消。仓位会在两个价格中的其中一个被平掉。
  2. 突破入场(Breakout entries)。 等待价格突破阻力位或跌破支撑位的交易者。将买入止损单放在阻力位之上,并将卖出止损单放在支撑位之下。先触发的那一笔会进入仓位,另一笔会取消。
  3. 重新入场(Re-entries)。 希望在某个价位之上做多、在某个价位之下做空的交易者。结构与突破入场相同,但对仓位的两侧都进行管理。

共同的模式:OCO 订单关乎选择。你不知道哪一侧会先触发,但你希望两边都做好准备。

如何在典型交易平台上设置 OCO

具体步骤会因 Broker 而异,但结构相同。在大多数平台上(thinkorswim、Interactive Brokers、Tastyworks、TradeStation):

  1. 在持仓或打开订单票据上右键单击。 大多数平台在订单类型下拉菜单中提供 OCO 选项。
  2. 设置第一笔。 通常是限价单(获利目标)或止损单(止损)。
  3. 设置第二笔。 与第一笔相对应的那一笔订单。
  4. 将两笔订单链接为 OCO。 大多数平台有复选框或按钮可将订单标记为 OCO。
  5. 提交。 平台会同时发送两笔订单;其中一笔成交,另一笔会自动取消。

平台还允许你在提交后调整价格和订单类型。只要其中一笔成交或你手动取消两笔,OCO 链接就会一直保持。

常见变体

在止损一侧使用止损限价(stop-limit)的 OCO

普通止损单在触发后会转换为市价单,这可能在波动较大的市场中产生滑点。止损限价单在触发后会以指定价格转换为限价单,从而避免滑点,但如果价格跳空穿过该限价,可能导致无法成交。

权衡取舍:止损市价单可能因滑点而成交;止损限价单则会以指定价格成交,或根本不成交。OCO 可以将止损市价单(用于止损)与限价单(用于获利目标)组合在一起,或在两侧都使用止损限价单。

跟踪止损 OCO

跟踪止损是一种会随着价格朝有利方向变动而自动调整的止损单。跟踪止损 OCO 将跟踪止损(会随价格上移的止损)与限价单(获利目标)结合起来。如果价格反转,仓位会在跟踪止损处平仓;如果先达到目标价,则在限价处平仓。

跟踪止损 OCO 适用于动量交易:你希望捕捉跨多天的行情,但在出现反转时退出。随着价格上涨,跟踪止损会锁定利润;限价目标则提供向上的退出点。

有时间限制的 OCO

有些交易平台允许你为 OCO 设置到期时间。如果在到期时刻 OCO 的两个分支都没有成交,系统会自动取消该 OCO。适用于仅在特定时间窗口内有效的设置(例如:财报公告期间或市场开盘时)。

到期规则因平台而异。有些平台默认使用“good till cancelled”(GTC,取消前有效),这意味着 OCO 会无限期保持激活。其他平台可能默认使用“day”(当日)或“good till close”(GTC,收盘前有效)。请根据策略有意地设置到期时间。

可能出错的地方

三种模式:

1. 快速行情中两笔同时触发

在快速波动的市场中,两笔订单可能在同一毫秒内触发。平台可能会成交其中一笔、另一笔,或两笔——具体取决于订单路由。“OCO”仅保证:如果其中一笔先成交,另一笔会被取消;但如果两笔在平台完成取消之前就都成交了,结果可能是部分平仓,或反向翻仓到相反方向。

修复方法:在可能同时跳空穿过两个价位的市场中不要使用 OCO。改用带缓冲的 stop-market,或接受可能发生部分成交的风险。

2. 停损腿在影线(wick)上触发

在K线的影线中,价格会短暂触及止损水平,但收盘价在其上方。止损市价单会在影线触发并以止损价格(或更差的价格)成交。OCO会取消限价单,但你已经在噪音中被提前出场。

解决办法:使用带缓冲的止损限价单,或使用基于时间的确认。

3. 平台不支持真正的 OCO

有些平台只支持“关联订单”或“触发即成交(if-touched)”订单,看起来像 OCO,但取消逻辑不同。请阅读平台文档以确认 OCO 的实际行为。

如何评估

在设置 OCO 订单时,请询问:

  • 平台是否支持真正的 OCO?(用流动性较好的标的下一个小订单进行测试,以确认其行为。)
  • 每一条腿支持哪些订单类型?(止损市价、止损限价、追踪止损、限价。选项越多,你能运行的策略就越多。)
  • 默认到期时间是什么?(当日、GTC 或自定义。请有意地设置。)
  • 如何处理部分成交?(如果限价那一腿只成交了 50%,OCO 会取消吗?大多数平台会取消;有些平台会保留未成交的那一腿继续生效。)
  • 止损腿的滑点是多少?(止损市价成交会有滑点。请在模拟交易账户中测试,以查看实际成交质量。)

常见问题解答

OCO 和挂单(bracket order)是同一回事吗?

挂单(bracket order)是一种特定类型的 OCO:将一个入场单与一个利润目标和一个止损单通过 OCO 关联起来。一般的 OCO 可以是任意两个关联的订单;挂单是其中一个常见用例。

我可以在多个账户之间设置 OCO 吗?

大多数平台不支持跨账户的 OCO。OCO 是在单个账户内的持仓层级设置的。

OCO 和 OTO(一个触发另一个)有什么区别?

OTO 是两笔关联订单:只有当第一笔成交后,第二笔才会下单。OCO 是两笔关联订单:当第一笔成交后,第二笔会被取消。

所有经纪商都支持 OCO 订单吗?

大多数一流经纪商都支持,包括 Interactive Brokers、Schwab、Tastyworks、TradeStation 和 E*TRADE。具体实现方式各不相同。

相关资源

从哪里开始

如果你想在交易中使用 OCO 订单,实际的第一步是:在支持该订单类型的 Broker 处开设一个模拟交易(纸面交易)账户,并用小额仓位测试其行为。模拟账户是你在投入真实资金之前验证交易平台 OCO 逻辑的唯一方式。查看我们的Broker 表,了解当前支持 OCO 的平台列表。