嘉信高级订单技巧(1):OCO 家族,止盈止损与分档退出
投资理财

嘉信高级订单技巧(1):OCO 家族,止盈止损与分档退出

一挪迈

发表于11 分钟阅读

之前写过盈透的订单教程,本文来讲讲嘉信理财(thinkorswim 交易软件)的高级订单。

如果你对盈透那几篇感兴趣,请看:

盈透订单类型教程懒人包

关于嘉信订单的基础知识,在这几篇文章中也有提到,可以再复习一下:

美股券商订单类型(thinkorsiwm 为例,其他券商类似)

注意:本人主要讲 thinkorswim 软件的操作,嘉信理财我只推荐这款交易软件

 本文后面会统一把 thinkorswim 简称为 TOS

由于 TOS 有多个高级订单可以选,本文作为第一篇,会覆盖:

  1. 高级订单的入口
  2. 独立 OCO: 已有仓位挂止盈止损
  3. 1st trgs OCO:开仓后自动止盈止损
  4. Link:绝对价格/相对价格的设置
  5. 1st trgs 2 OCO / 3 OCO:分档出场
  6. 已混点与决策表

第二篇:不会互斥取消的多单结构:Blast All、1st trgs All、1st trgs Seq → 嘉信高级订单技巧(2)

TOS 高级订单入口

手机 App 操作入口

在下单页面,点击左下角「More / 更多」,点击 「Create Advanced Order / 创建高级订单」,即可打开高级订单编辑界面:

其中右上角可以切换高级订单类型,下方则是订单详情设置了。

一般高级订单都是多个订单的组合,上方绿色边框的是你的主订单,也就是你在点击 「创建高级订单」 按钮之前所设置的订单。

下方点击➕就可以添加订单。

电脑软件操作入口

在电脑端的 thinkorswim,无论是你点击了 「Buy」 「Sell」 按钮,还是点击了 「Bid」、「Ask」 报价,还是右键菜单选择 Buy 或者 Sell,都会触发弹起底部的订单编辑器(Order Entry Tools)

在与提交订单的绿色按钮同一行的左边,即可看到高级订单的入口,默认是 「单个订单 / Single」

点击就会展开高级订单下拉菜单: 电脑端的差异就是,它不会另外打开一个编辑高级订单的界面,你需要在上面主订单的位置继续添加具体的高级订单组合。

下拉菜单里和本文相关的项主要是:OCO1st trgs OCO1st trgs 2 OCO1st trgs 3 OCO。 其余如 Blast All / 1st trgs All / 1st trgs Seq,见第 2 篇。

独立 OCO

先说一下 OCO 家族最基本的单位:什么是 OCO?

OCO = One Cancels Other(一个成交,取消另一个)。
一组 OCO 通常就是两条腿:比如 限价止盈 + 止损,谁先成交,另一条自动取消。

什么时候用独立 OCO

仓位已经在账户里,你只想补一套退出单。这和后面的 1st trgs OCO 差别在有没有「第一单触发」。

最小例子

假设已持有 AAPL 100 股,现价约 282.5:

  • 止盈:SELL 100 @ 300 LIMIT
  • 止损:SELL 100 @ 270 STOP

在高级订单里选 OCO(注意:不是 1st trgs OCO),把两腿都加进同一组,确认后提交。

独立 OCO 结构:两腿互斥
独立 OCO 结构:两腿互斥

注意

  1. 没有持仓多头股票却挂 卖出 的 OCO,可能变成开空或被拒
  2. 独立 OCO 没有「主订单成交后才激活」的保护;两腿提交后就会按各自类型工作。
  3. 若你对照过盈透:独立 OCO 接近「已有仓位上的 Bracket / OCA 出场腿」。可复习:盈透附加订单盈透 OCA

还没开仓、想「买进的同时挂好止盈止损」→ 用下一节 1st trgs OCO

1st trgs OCO / 订单1激活OCO订单

这是最最常用的高级订单类型了。第一笔订单成交后,再激活一组 OCO 订单。

名字可能比较抽象,我先完整的把它原始句子写出来:

first triggers (one cancels other) 第一个订单成交后,激活一组 OCO 订单。 OCO 就是 one cancels other 的缩写。一组 OCO 由两个订单组成,这两个订单其中一个成交,另一个则自动取消。

看过我之前写的盈透订单类型的,应该记得这个「OCO」,这算是行业约定俗成的说法,很多券商都会这么叫。

OK,再梳理一下,那么 「1st trgs OCO」这个高级订单,总共至少有3个订单组成,第一个订单为主订单,其余订单构成一组 OCO。

需要注意的是,这里盈透和 TOS 有一些差异,TOS 把盈透的 OCA(one cancels all / 一个成交取消其余所有)合并进了 OCO。

因此,你可以在 TOS 的 「1st trgs OCO」类型中添加任意多的子订单。(「多个子订单」和后文的 1st trgs 2 OCO 不是一回事,见文末易混点。)

光说概念太抽象,我们上具体例子:

买入股票后,自动挂单止盈和止损

止盈和止损,所有新手都会忽略的,但却是最重要的环节。通过这个高级订单,帮你解决。

逻辑很简单:

第一个订单(买入股票)成交之后,触发一组 OCO。OCO 由止盈和止损两单组成。

根据上面所说的原理:

  1. OCO 只会在第一个买入单成交后才会激活(避免你无端先卖空)
  2. OCO 的止盈和止损两个订单互斥,只要其中一个触发,另一个自动取消。

实例: 苹果现价 282.5,打算以这个价格买入 100 股。 止盈点:300 止损点:270

那就可以这么设置(电脑端和手机端):

如果你是做空,则买卖方向反过来,止盈在下方,止损在上方

自动止盈止损的变体

上面是用限价单做了最简单的实例,除了 限价单,我们还有更多的订单类型可用,以及更多的订单有效期可供选择。你可以组合出更高级的用法。

比如「突破买入」

BUY STOP 100 IBIT @ 35.00

当 IBIT 突破到 35 才买入;买入成交后,自动触发止盈止损:

SELL 100 @ 38.00 LIMIT SELL 100 @ 33.80 STOP

这是单档退出(一组止盈 + 一组止损)。若希望突破成交后分两档/三档止盈,见下文 1st trgs 2 OCO / 3 OCO

绝对价格 / 相对价格

在电脑端的 TOS 中,当你编辑高级订单组合的时候,会发现子订单一个设置项:Link

总共有 8 个可选(Link 的 8 项清单随客户端版本/产品(股票 vs 期权)略有差异,建议加「以当前客户端为准」):

  • MAN:即「手动」。这也是默认项,选择 MAN 后,Price 列你需要输入一个绝对值的价格。比如你想 284.3 卖出,就得填 284.3
  • TRG:Trigger price,绑定主订单的价格,可以简单理解为第一个主订单的成交价格。选择后输入 +/- 相对价格,比如 +1 或者 -2,意思是开仓价格+1usd 或者 -2usd
  • LAST:最新成交价
  • BID:买一价
  • ASK:卖一价
  • ASK/BID:系统自动判断,买单用 ASK,卖单用 BID
  • MARK:中间价,通常就是 bid-ask 的中间值
  • AVG PRC:你的平均持仓成本价

怎么选(实用版)

场景更常见的 Link
止盈写死目标价MAN 填绝对价
止盈/止损相对开仓价偏移TRG ± 金额(或按你客户端支持的百分比)
已有仓、参考持仓成本AVG PRC

其余 LAST / BID / ASK / MARK 更偏盘口敏感场景;搞不清时优先 MAN + 绝对价,确认页看一眼再提交。

1st trgs 2 OCO / 3 OCO:分档出场

上面单档 bracket(1st trgs OCO)解决的是:开仓后一套止盈 + 一套止损。

若你的计划是:分批止盈(例如先走一半、再走一半),可以用:

  • 1st trgs 2 OCO:主单成交后,激活 两组 OCO
  • 1st trgs 3 OCO:主单成交后,激活 三组 OCO

结构(以 2 OCO 为例)

  1. 主订单:例如 BUY 200 AAPL @ Limit(或 Stop 突破)
  2. 成交后同时激活:
    • OCO 组 1(对应 100 股):止盈 T1 + 止损 S1
    • OCO 组 2(对应 100 股):止盈 T2 + 止损 S2
1st trgs 2 OCO:两档并行,组内互斥、组间独立
1st trgs 2 OCO:两档并行,组内互斥、组间独立

数量怎么对齐

主单数量建议
200 股2 OCO,每组 100
300 股3 OCO,每组 100;或 2 OCO 做 150+150
100 股还想分两档需能拆成两组数量(如 50+50);注意整手/期权乘数等约束

原则:各组出场数量之和 = 主单(或你计划兑现的)数量,避免多平或少平。

价格表示例(数字请按你截图当日行情改)

假设主单买入 200 股,成本参考 100:

数量止盈止损
OCO1100105 Limit97 Stop
OCO2100110 Limit97 Stop

说明:

  • 两档止盈不同,体现分批目标。
  • 止损可以相同或不同;上表用同一止损价、数量拆开,是常见写法之一。
  • 以你确认页与模拟盘验证为准——部分成交、改单后数量是否联动,客户端版本可能有差异。

为什么不用「一个 1st trgs OCO 里塞 4 条腿」来分档?

在一个 OCO(OCA 语义)里塞「T1、T2、S1、S2」四条腿时:

  • 组内仍是互斥族:一腿成交可能取消其余,不一定符合「T1 成交后 T2 仍挂着」的分档直觉。
  • 分档的正确语义更接近:两组(或三组)各自的 OCO,组与组之间不因另一组止盈而成交就整组清空(具体以平台行为为准,但产品设计意图上 2/3 OCO 就是为此)。

细节对比见下一节易混点。

3 OCO

与 2 OCO 相同,只是多一组(例如 100×3 或自定义数量)。
对大多数人:两档足够;档越多,确认页越容易设错数量/方向。

谁需要 / 谁不需要

  • 需要:明确的分批止盈计划、希望开仓瞬间一次挂完。
  • 不需要:单一目标价 + 单一止损 → 1st trgs OCO 即可,别增加复杂度。

易混点:多子单 OCO ≠ 1st trgs 2 OCO

当你选择 1st trgs OCO 时,手机和电脑端都可以给 OCO 组添加超过 2 个子订单。
此时它在语义上更接近 OCA(One Cancels All):任一子单成交,取消同组其余子单。

这和 1st trgs 2 OCO / 3 OCO 容易混,对照如下:

1st trgs OCO + 多子单1st trgs 2 OCO / 3 OCO
产品入口1st trgs OCO,手动加多条腿菜单直接选 2 OCO / 3 OCO
结构一组互斥(OCA)两组/三组 OCO,组间并行
典型用途少见;复杂条件硬塞分档止盈(每档自己的止盈+止损)
分批止盈不推荐靠「多腿互斥」硬模拟推荐

另外:

  • 分批止盈不要用 1st trgs Seq(见第 2 篇)。Seq 是强顺序接力,不是「两档止盈并存」。
  • 普通交易者很少需要往一个 OCO 里塞 6、7 条腿:难理解、易设错。
  • 若逻辑复杂到平台高级订单表达不清,再考虑 API/程序化;分档出场优先用 2/3 OCO,而不是先上 API。

OCO 家族怎么选

你的情况用哪个
已有仓,挂止盈 + 止损OCO
开仓同时挂止盈 + 止损1st trgs OCO
开仓后分 2/3 档止盈(+ 对应止损)1st trgs 2 OCO / 3 OCO
一个互斥组里多条腿1st trgs OCO 多子单(≈OCA)——通常不是分档首选
多个独立订单、互不取消不是 OCO第 2 篇 Blast All / 1st trgs All / Seq
OCO 家族怎么选
OCO 家族怎么选

实操注意

  1. 确认页:高级订单每条子单的数量、方向、价格、TIF 可能不一致,提交前逐行看。
  2. 部分成交:主单未完全成交时,子单如何变化。以你当前客户端确认页与 Working Orders 为准;重要账户先 paperMoney 测一次。
  3. 改单 / 取消:优先理解「整组」与「单腿」取消的差异,避免只改一腿导致保护单裸奔。
  4. Auto Send:测试时关掉,避免误发。
  5. TIF:GTC / EXT / EXTO 等与 OCO 组合时,出场腿是否覆盖盘前盘后,需与 订单有效期 对照。

一挪迈的总结

OCO 家族只做一件事:让退出条件互斥且自动

  • 已有仓位 → OCO
  • 开仓顺便挂退出 → 1st trgs OCO
  • 要分档 → 1st trgs 2/3 OCO

下一篇:嘉信高级订单技巧(2)(Blast All / 1st trgs All / 1st trgs Seq)