跳到正文
币安中文帮助页深色界面:标题为如何使用OCO (One-Cancels-the-Other) 功能,发布于 2019-08-19 15:10,什么是OCO订单一段说明止损限价单和限价单组合成一张 OCO 订单,其中一张触发或成交,另一张自动撤销,下方的 OCO 买入订单图示说明标出 A 当前价格、B 触发价格、B1 限价单和 C 价格
OCO 订单在币安中文帮助页(2026 年 10 月)上称作选择性委托订单,由止损限价单和限价单组合而成,其中一张触发或成交,另一张自动撤销,页面用 A、B、C 三个价格的图示说明买入 OCO:触发价格 B 应高于当前价格 A,抄底的被动限价单价格 C 应低于当前价格。

在币安现货用一张 OCO 订单同时挂好止盈和止损

币安现货的 OCO 订单能一次挂好止盈和止损两张单,其中一张触发,另一张自动撤销;止损一侧触发后挂出的是限价单,行情急跌时可能成交不了。

币安把 OCO 放在现货下单区里。进入交易(Trade)→ 现货(Spot),打开订单类型下拉菜单选 OCO,就能一次填好两张单:止盈(Take Profit)一栏是一张限价单,止损(Stop Loss)一栏是一张止损限价单(Stop-Limit)。按币安帮助页的说明,这两张单是联动的,其中一张触发,另一张就撤销。文中括号里的英文是币安英文帮助页上的字段名,中文界面的叫法以你屏幕上显示的为准。

两个价格要分别落在当前市价的两侧,卖出 OCO 和买入 OCO 的方向正好相反。止损这一侧另有一点要留意:它是止损限价单,价格到了触发价只是挂出一张限价单,行情穿过限价太快的话,这张单可能成交不了。

提交前先核对两个价格

用 OCO 卖出:止盈限价高于当前价,止损触发价低于当前价。用 OCO 买入:止盈限价低于当前价,止损触发价高于当前价。

币安现货的 OCO 订单在哪里:网页端和 App 入口

网页端登录后进入交易 → 现货,在订单类型下拉菜单里点 OCO。App 的路径相同:交易 → 现货,再从订单类型下拉菜单里选 OCO。

先选好交易对再填价格。OCO 表单里的价格都是拿这个交易对的当前价来比的,在 BTC/USDT 上合适的价位,换一个交易对就对不上了。

币安帮助页的演示用的是买入 OCO,最后一步是点买入(Buy)提交订单。按下去之前先确认方向是买还是卖。两个方向的价格规则互为镜像,同一组数字在这一边成立,换到另一边就不符合条件。

OCO 表单里每一栏分别填什么

表单里有两栏都叫限价(Limit),要靠它们各自所在的区块来分辨,所以填之前先看一眼栏位上方的区块标题。

表单栏位币安帮助页对这一栏的解释
止盈(Take Profit)下的限价(Limit)限价单的价格
触发价(Stop)止损限价单的触发价格
止损(Stop Loss)下的限价(Limit)止损限价单的限价
数量(Amount)想买入的加密货币数量(帮助页以买入为例)

所以止损这一侧要填两个数。触发价是启动它的价格;它下面的限价,是触发之后挂到订单簿上那张限价单的价格。按币安现货 API 文档术语表的定义,限价单的成交价不会差于订单设定的价格。照这个定义,第二个数是你离场时能接受的最差价格,并不保证按这个价成交。

两个数该隔多远?币安帮助页的建议是,止损限价单的限价可以试着设得离触发价近一些。

OCO 的止盈价和止损价,各该在市价的哪一边

订单方向币安给出的 OCO 设置条件
卖出 OCO价格(限价单)> 当前市价 > 止损触发价(止损限价单)
买入 OCO价格(限价单)< 当前市价 < 止损触发价(止损限价单)

每一行从左往右读。卖出时,止盈单等在市价上方,止损触发价等在市价下方,价格先往哪边走,就先碰到哪一张。币安的卖出示例把限价单设在 3,000,止损触发价设在 1,500:涨到 3,000 或以上,限价单成交,止损限价单撤销;跌到 1,500,止损限价单触发,限价单撤销。

买入 OCO 的位置倒过来。买入示例里限价是 1,500,在市价下方;止损触发价是 3,000,在市价上方。价格跌到 1,500 或以下,限价买单成交,止损限价单撤销;涨到 3,000,止损限价单触发,限价买单撤销。一张 OCO 里放了两个可能的入场价位,最后只会走通其中一个。

这两个示例都要求提交时市价在 1,500 和 3,000 之间。币安不接受你的 OCO 时,先拿自己填的数字和实时价格比一比,再去查别的原因。行情快的时候,填表这点时间里价格就可能越过你设的某个价位,订单也就不再符合上表的条件。

用币安学院的数字算一遍:0.1 BTC 的卖出 OCO

币安学院(Binance Academy)的 OCO 词条举的是一笔已经持有的币:以 90,000 美元买入的 0.1 BTC。OCO 把一张 100,000 美元的限价卖单,和一张触发价 87,000 美元、限价 85,000 美元的止损限价单配成一对。填进表单是这样:

栏位学院示例里的数值
止盈(Take Profit)下的限价(Limit)100,000
触发价(Stop)87,000
止损(Stop Loss)下的限价(Limit)85,000
数量(Amount)0.1 BTC

先套卖出条件:100,000 > 当前价 > 87,000。提交时 BTC 的价格得在 87,000 到 100,000 美元之间,否则订单不符合条件。

如果 BTC 先涨到 100,000 美元,限价单成交,止损限价单撤销。对照 90,000 美元的买入价,这一笔是 0.1 ×(100,000 − 90,000)= 1,000 美元,未扣交易手续费。

如果 BTC 先跌到 87,000 美元,止损限价单被触发,限价卖单撤销,订单簿上随即挂出一张 85,000 美元的限价卖单。正好按 85,000 美元成交的话,结果是 0.1 ×(85,000 − 90,000)= −500 美元,未扣手续费。这张单的成交价只会是 85,000 美元或更高;市场上没人肯出这个价的时候,它会一直挂着不成交。

触发价和限价之间那 2,000 美元是特意留的。学院的解释是,卖出方向的 OCO,触发价通常设得比限价高一些,用来应对快速波动的行情。代价也算得出来:价差每多留 1 美元,你的最低卖出价就低 1 美元。

一张成交、部分成交或被撤销后,另一张单怎么处理

币安帮助页写的联动是双向的:一张触发,另一张撤销;撤掉其中一张,另一张也会自动撤销。现货 API 文档的术语表对通过 API 下的 OCO 有一条对应的规则:其中一张成交,另一张自动失效。

部分成交的情况,按学院页面的说法,任意一张单全部或部分成交,平台都会自动撤销剩下的那张。也就是说,止盈单只卖掉一部分数量,止损那一侧就已经没了。出现部分成交后,先到当前委托(Open Orders)里看还有哪些单在挂着,别默认剩下的币还有止损单看着。

撤单的连带效果一样。你没法只撤掉止损单、把它往下挪一点,同时让止盈单留着。两张单会一起撤,在你重新下一张 OCO 之前,这一组里没有任何单在生效。

OCO 的止损单会不会卖不出去?

会,因为止损这一侧是止损限价单。币安现货 API 文档的术语表这样定义这类订单:市价到达触发价后,一张限价单被挂到订单簿上。价格到了触发价,币并不会马上卖出,系统只是按你在止损栏填的限价挂出一张限价单去排队。

币安学院对这个风险的说法是:行情走得太快,价格在找到买家之前就跌穿了限价,这张限价单可能成交不了。放到上面的 BTC 例子里,就是价格从 87,000 美元上方一路跌到 85,000 美元下方,这期间愿意出 85,000 美元或更高价的买家不够。卖单挂出去了,市价已经在它下面,它只能等。

能不能成交,主要看触发价和止损限价之间留了多大的价差。限价贴近触发价(币安帮助页建议可以这样试),你能接受的最差价格就离选定的价位不远。距离拉大,比如学院例子里的 2,000 美元,给急跌留的余地多一些,最差价格也跟着往下移。多大的间距都保证不了成交,安排仓位时要把止损一侧被直接跳过的情况算进去。

OCO 下单后在哪里查看订单

币安帮助页提到两个标签页:所有未成交的挂单列在当前委托(Open Orders)下,已成交订单的记录在历史委托(Order History)下。前一个用来看还有什么单在等,后一个用来确认成交的是哪一侧。

止损一侧触发了但没成交,它仍然是一张挂在订单簿上的限价单,按理也会列在当前委托里。行情急跌之后先打开这个标签页看一眼,再判断币有没有卖掉。

如果那张单还挂着,市价已经在它的价格下面,可选的做法是继续挂着等,或者撤掉它,换一种订单类型离场。市价单、限价单和止损限价单下单后的表现各不相同,换之前先弄清楚要用的那一种会怎样成交。

常见问题

币安的 OTOCO 订单比 OCO 多了什么?

OTOCO 在 OCO 这一对订单前面加了一张入场单。币安把三张单串在一起:先挂出一张入场单,等它成交,止盈单和止损单这一组 OCO 才自动生效。普通 OCO 没有前面这一步,两张单下单后同时生效。据币安学院介绍,币安在 2024 年 6 月推出了 OTOCO。

为什么要用 OCO,不分开下一张限价单和一张止损限价单?

分开下的两张单互不关联,一张成交了,另一张还会继续挂着。币安学院提醒,这样可能多出一笔本不想要的持仓,或者多担一份本可避免的风险。OCO 把两张单绑在一起,只有其中一张能成交,撤掉一侧另一侧也跟着撤。

Theo Marsh
在 Onbit 编辑部撰写新手指南。Theo 是我们编辑团队的笔名。Onbit 独立运营,你通过我们的链接注册时,我们可能会拿到一笔推广佣金——你不会因此多花一分钱。这里的内容都不是投资建议。