币安 OCO 是什么、为什么常被拒单

OCO 这三个字母劝退了不少人。它看着像个高级功能,提交时又特别容易弹出红字拒单,试了几次没成功就干脆放弃。其实 OCO 的核心只有一句话——把止盈和止损绑成一组,谁先成谁说了算,另一个自动作废。真正卡人的不是这个概念,而是它对价格高低顺序有一套不讲情面的硬规则。把顺序弄懂,被拒单的烦恼基本一次性解决。
OCO 到底是什么:二选一
OCO 是 One-Cancels-the-Other 的缩写,直译就是「一个取消另一个」。说白了,它是一组绑在一起的两张单,系统帮你看着:哪一张先满足条件成交了,另一张立刻自动取消。所以你永远不会出现两张都成交的尴尬。
它解决的是一个很实在的场景。假设你手里有点币,心里有两手打算:涨到某个价就止盈走人,跌到某个价就止损离场。如果用普通单,你没法同时挂这两张——要么挂了止盈忘了止损,要么两张都挂着、万一都触发就把你不想卖的也卖了。OCO 把这两个出口打包成一组,涨也好跌也好,只走其中一个门,另一个门自动关上。
所以记住这个画面就够了:OCO = 上面留个止盈出口、下面留个止损出口,中间是当前价,二选一。它本质上是把订单类型里的限价单和条件止损单组合起来用,并不是什么全新的东西,只是把两件事捆在了一次提交里。
一张 OCO 里有几个价格
这是新手第一道坎:表单里冒出三个价格框,一下不知道哪个填哪个。拆开看其实很清楚,它对应的是「两张单」。
止盈那张是一张普通限价单,只需要一个价——你愿意止盈卖出的限价。这部分和你平时挂限价卖单没区别。
止损那张是条件单,需要两个价——一个触发价、一个限价。这正是触发价和限价的分工:触发价负责「跌到这里就唤醒这张止损单」,限价负责「唤醒后按什么价去挂」。如果你还没分清这两个的区别,强烈建议先看那篇,否则 OCO 的三个价格会一直绕你。
所以三个框 = 止盈限价(1 个) + 止损触发价 + 止损限价(2 个)。看懂了这个拆法,你就知道每个数字在为哪张单服务,接下来排顺序才不会乱。
卖单的硬规则:限价 > 市价 > 触发价
到了 OCO 最核心、也最容易栽的地方。以最常见的卖出 OCO(手里有币、想同时挂止盈和止损)为例,这三个价格之间有一套必须满足的高低顺序,填拧了系统直接拒单,没有商量余地。
这套顺序可以概括成一行:止盈限价 > 当前市价 > 止损触发价。换成大白话:
- 止盈限价要高于当前市价。因为止盈是「等涨上去再卖」,卖价自然得比现在高。如果你把止盈价填得低于现价,这张限价单一提交就该立刻成交了,那它就不是「等触发」,违反了 OCO 的逻辑,被拒。
- 止损触发价要低于当前市价。因为止损是「跌破某个点就跑」,触发点自然得在现价下方。如果触发价填得高于现价,等于一提交就该被触发,同样违规,被拒。
- 止损限价设在触发价附近、不高于触发价。你都决定跌破触发价要走了,挂出去的卖价就不该再比触发价高,否则又没人接、又自相矛盾。
把它们排成一条线就是:上方是止盈限价,中间是当前市价,下方是止损触发价,止损限价贴着触发价或更低。任何一个数字越界,跨到了不该在的区间,提交就会被拒。这就是常说的「卖单 限价 > 市价 > 触发」。
被拒单,通常是这几个原因
提交 OCO 弹红字,绝大多数逃不出下面几类。对着排查一遍,基本都能定位。
一、价格高低顺序错了(最常见)
就是上一节那套规则没满足:止盈限价没高于市价,或止损触发价没低于市价。这是头号原因。很多人是把某个价位多敲少敲了一位数,或者干脆把止盈止损的方向记反了,导致某一边在提交瞬间就该成交,系统判定违规。先核对这个,十有八九是它。
二、数量低于最小下单量
每个交易对都有最小下单数量和最小下单金额的门槛,OCO 的两张单都得各自满足。如果你拆得太碎、数量太小,会被挡下。这其实和普通单一样,只是 OCO 要同时满足两张,更容易撞线。关于这道门槛,买入按钮是灰的那篇讲得更全。
三、价格精度不符合步进规则
每个交易对对价格的小数位、最小变动单位都有规定(常叫 tick size)。你填的价如果精度不对,比如多了一位小数,也会被拒。一般界面会帮你规整,但手动粘贴数字时容易出问题。
四、余额或可用数量不够
卖出 OCO 要占用对应数量的币,买入 OCO 要占用对应的计价资金。如果余额被其它挂单冻结了一部分,可用不足,也提交不了。
怎么一次设对
把上面拆解的东西收成一个下单前的检查顺序,能省掉反复试错:
- 先在脑子里画那条线:当前市价在中间,止盈在上、止损在下(卖出 OCO)。方向定死,再碰数字。
- 填止盈限价时,确认它明显高于现价;填止损触发价时,确认它明显低于现价。两个都跨在现价的正确一侧。
- 止损限价别设得比触发价高,贴着触发价或略低,给成交留点余地——这和限价止损「保价格不保成交」的取舍是一回事。
- 核对数量过没过最小下单量、价格精度对不对、余额够不够。
嫌脑算容易错,可以先用本站的OCO 参数校验器把你打算填的几个价位过一遍,它会按「限价 > 市价 > 触发」这类规则提示你哪个数字越界了,再回币安界面对着填。工具纯前端、不联网、不放假数据,只帮你查顺序,不替你下单、更不告诉你该设在什么价位——设多少是你自己的判断。
常见问题
OCO 是什么意思?
OCO 是 One-Cancels-the-Other 的缩写,意思是一组绑在一起的两张单,二选一:一张是止盈方向的限价单,一张是止损方向的条件单。哪一张先被满足成交,另一张就自动取消,所以你不会两张都成交。
卖出 OCO 的价格顺序到底怎么排?
对卖出 OCO,常见的硬规则是止盈限价高于当前市价,当前市价又高于止损触发价,也就是限价 > 市价 > 触发价。止盈挂在上方等涨,止损守在下方防跌,中间是现价。任何一个数字跨过这个顺序,系统都会拒单。
为什么我的 OCO 一直提交不了、被拒单?
最常见的原因是价格顺序填错:止盈限价没高于市价,或止损触发价没低于市价,导致某一边的单在提交瞬间就该立刻成交,违反了 OCO 的设定。其次是数量低于最小下单量、余额不足、价格精度不符合该交易对的步进规则。先核对高低顺序,再核对数量与精度。
OCO 两张单会不会同时成交?
不会。OCO 的设计就是二选一:任一张被触发并开始成交,另一张立即被系统取消。它的意义正是让你在同一时间既留好止盈出口又留好止损出口,而不必担心两边一起触发。
资料与出处
OCO(One-Cancels-the-Other)是币安现货提供的一种组合条件单,价格的高低顺序校验、最小下单量与价格精度都会随交易对和界面版本变化,文中只讲规则方向、不写死任何具体数字,实际以你当前下单页的提示与拒单信息为准。想核对官方定义,可查阅币安帮助中心里关于 OCO 与条件单的条目,或在 Binance Academy 里找 OCO 订单的科普。