独立交易读本 · 不提供投资建议
nalog.币安现货 · 下单与规则
SPOT TRADING JOURNAL看懂指令,再决定下一步
从这里开始限价单不成交最小下单金额撤单后发生什么

币安挂了止盈卖单再挂止损,为什么提示余额不足

账户里只有 1 ETH,先用它挂了一张止盈卖单,再挂同样 1 ETH 的止损单就会被拒:那 1 ETH 已经被第一张单占住,可用是 0。想上下两头都有单子,要么把两张单绑成一组 OCO,要么把数量拆开各挂一份。

本文内容可用余额为什么是 0:在资产和当前委托里找占用止损单还没触发,为什么也占余额同时设止盈和止损:撤掉止盈单,改挂一张 OCO不用 OCO:把数量拆开,各挂一张还没买进:买单成交以后再自动挂出止盈止损

假设现货账户里有 1.0000 ETH,ETH/USDT 在 2,245 USDT 附近。你先挂了一张限价卖单:价格 2,500.00,数量 1.0000,涨上去就卖。接着想防一手下跌,订单类型切到【止盈止损】,触发价填 2,050.00、委托价 2,040.00、数量 1.0000,点卖出,提示余额不足。

ETH 一个也没少。第一张卖单已经把这 1.0000 ETH 全部占住,可用余额变成 0,第二张单要的是另外 1.0000 ETH。两张各自独立的卖单不能共用同一份币;想让它们共用,得把两张单做成一组。

可用余额为什么是 0:在资产和当前委托里找占用

先打开现货资产里 ETH 那一行,读总额、可用和委托中三个数。这个例子应当是总额 1.0000、可用 0、委托中 1.0000。三个数之间怎么换算,挂单占用余额那篇用 USDT 买单的例子拆过一遍。然后到交易页下方的【当前委托】找那张 2,500.00 的卖单。如果只显示了当前交易对,ETH/BTC 这类别的交易对上挂着的 ETH 卖单就看不到,它们占的是同一份 ETH。所有占用都找齐,再决定撤哪一张。

还有一种情况长得很像:当前委托里一张单都没有,止损单照样提示余额不足。这时看总额是不是比你填的数量少一点,比如买入时手续费从买到的 ETH 里扣掉了一点,总额是 0.9990 而不是 1.0000。这笔扣费怎么算,见币安卖出后还剩一点币卖不掉。

止损单还没触发,为什么也占余额

止损单要等价格跌到 2,050 才挂进订单簿,在那之前占余额,看上去不太合理。币安帮助中心《什么是止盈止损订单及如何使用》的说法是:下单成功后,就可以在【当前委托】里看到“止盈止损”类型的订单;触发价没有达到时,限价委托单不会生效。也就是说,没触发的止损单已经算一张当前委托,只是还没进订单簿。

现货接口文档的术语表给账户余额里的 locked 下的定义是:被当前挂单及平台其他服务占用的数量(原文 locked in open orders and other services)。两段放在一起看,未触发的止损单占余额就说得通了。帮助页没有哪一句直接写“止损单在触发前就占用余额”,这里是从两处原文推出来的;挂单后看一眼 ETH 的可用有没有减少,在自己账户里就能核对。

买入方向也一样。挂着一张 2,000.00 的限价买单等回调,又想挂一张涨破 2,400 就追的止盈止损买单,两张各要一份 USDT,USDT 只够一份时,第二张同样会被拒。

同时设止盈和止损:撤掉止盈单,改挂一张 OCO

币安帮助中心《如何使用OCO (One-Cancels-the-Other) 功能》对 OCO 的定义是:把止损限价单和限价单组合成一个 OCO 订单,其中的止损单被触发,或限价单成交或部分成交时,另一个订单自动撤销。现货接口的 OCO 上线说明写得更直接:两条腿必须是同一个数量(Both legs must have the same quantity)。

币安帮助中心《如何使用OCO (One-Cancels-the-Other) 功能》简体中文页,未登录。正文第一段写 OCO 是把止损限价和限价单组合成一个订单,止损单被触发或限价单成交、部分成交时另一个订单自动撤销,下方是 OCO 买入订单图示
来源:币安帮助中心《如何使用OCO (One-Cancels-the-Other) 功能》简体中文页,未登录打开。第一段就是正文引用的定义,可以对照“部分成交时另一个订单自动撤销”这半句;截于 2026 年 11 月。

同一个数量,最后只有一边真正卖出,所以一组 1.0000 ETH 的 OCO 需要的可用是 1.0000,不是 2.0000;挂好后看委托中是不是 1.0000 就能确认。

从“两张单”换成“一组 OCO”,按这个顺序做:

  • 撤掉 2,500.00 那张卖单。撤之前看一眼它的已成交数量。假设已经卖出 0.3000,撤掉的只是剩下的 0.7000,后面 OCO 的数量也只能填 0.7000。撤单后为什么不一定能按原数量重下,见点了撤单,可以马上重新下一整笔吗。
  • 等订单显示已撤销,再看 ETH 可用。可用回到撤掉的那部分(本例 1.0000,部分成交过就是剩下的数量)再往下走;没回来,就回到上一节逐张找还有谁占着。
  • 订单类型选 OCO,价格按卖出的顺序填。帮助页给卖单的条件是:价格(限价单)> 当前市价 > 止损触发价。套到例子里:止盈限价 2,500.00,当前约 2,245,止损触发价 2,050.00,止损限价 2,040.00,数量 1.0000。

撤掉止盈单到挂上 OCO 之间,这 1 ETH 上下都没有单子。余额只有一份,没法先挂新的再撤旧的,所以这几步最好连着做完,别在中间去看别的。

OCO 挂好以后还有一个后续问题:2,500 那一边只成交了一部分,止损那一边就会被撤掉,剩下的币没有止损。这种情况单独写在币安 OCO 订单止盈只成交一部分,止损单就没了。

不用 OCO:把数量拆开,各挂一张

另一种办法是让两张单各占一部分。比如 0.6000 ETH 挂 2,500.00 的限价卖单,0.4000 ETH 挂触发价 2,050.00、委托价 2,040.00 的止损单,两张加起来正好 1.0000,可用够用。

它的代价在价格走到任何一边时才显出来。跌到 2,050,只有 0.4000 被卖出,那 0.6000 还挂在 2,500 等着,下方没有任何保护;涨到 2,500,卖掉 0.6000,剩下的 0.4000 也不会跟着走。拆单相当于两头各只设了一部分,拆成几比几,取决于你更怕哪一边。

拆得太碎会碰上两条规则。2026-11-07 查公开接口 exchangeInfo 的 ETHUSDT:最小名义金额(NOTIONAL)5 USDT,数量步长 0.0001。按 2,040 的委托价算,一张止损单至少要 0.0025 ETH(0.0025 × 2,040 = 5.10 USDT),0.0024 ETH 只有 4.896 USDT,会被拒。最小金额和步长怎么逐项核对,见金额够了,为什么还是提示数量不合法。

同一天这个交易对的 MAX_NUM_ALGO_ORDERS 是 5。过滤器文档说明它限制的是一个账户在一个交易对上同时挂着的 STOP_LOSS、STOP_LOSS_LIMIT、TAKE_PROFIT、TAKE_PROFIT_LIMIT 订单数;文档列出的只有这四种,普通限价单不在其中。这个交易对上没有别的条件单时,把止损拆成六档,第六张就过不去。

还没买进:买单成交以后再自动挂出止盈止损

币还没买的时候,问题顺序反过来:买单占的是 USDT,止盈止损要卖的 ETH 还不在账户里,现在根本挂不上。现货接口术语表里有一种挂法叫 OTOCO:先有一张工作中的订单,比如限价买单,它全部成交以后,后面那一组 OCO 才自动挂出。

要留意的是“全部成交”。原文是 When the working order fully fills;买单只成交一部分时,那一组止盈止损还不会出现,已经买到的部分暂时没有保护。这个挂法在网页和 App 订单类型菜单里叫什么,本文没有逐一核对,选之前先读菜单旁边的说明。

文中 1 ETH 的持仓和 2,500、2,050、2,040 这些价位都是假设;ETH/USDT 的参数取自 2026-11-07 的公开接口,以后可能调整。

还没有币安账户?注册教程按顺序写了邮箱验证、邀请码填写、身份认证和登录保护,每一步卡住时怎么查也写在里面。

看币安注册步骤 →

接着读