假设手上拿着一张 2 ETH 的 ETHUSDT 多单,想先减一点,提交卖出 0.5 ETH 的订单,并且全部成交。单向持仓下,多单剩 1.5 ETH;双向持仓下,如果选的是「开仓 / 卖出做空」,多单仍是 2 ETH,另有 0.5 ETH 空单。如果选的是「平仓 / 平多」,才会把多单减到 1.5 ETH。卖出数量相同,还要看订单是在开空还是平多。
分岔就出在持仓模式这个设置上。币安帮助中心把它归在「双向持仓」栏目,那篇说明的正文却用另一套叫法:单向持仓模式、对冲模式;英文界面写作 One-way Mode 和 Hedge Mode。几个名字说的是同一个开关。
同一张反向单,两种模式下落在哪
币安的对冲模式说明给单向模式的定义只有一句:一个合约下只能持有单一方向的仓位,两个方向同时开,会「互相取消或减少仓位规模」。说白了,单向模式下每个合约只记一个净数。买是往上加,卖是往下减,减过了零就翻到空头那边去。
双向模式反过来,同一个合约里多头仓位、空头仓位分开记账,谁也不冲谁。
还是开头那张 2 ETH 多单,几种常见操作对比一下。假设卖单全部成交,单向那一列未开启只减仓,双向那一列按「开仓 / 卖出做空」理解;平多则要选「平仓」那一侧:
| 点卖出 / 做空的数量 | 单向持仓:账上剩下 | 双向持仓:账上剩下 |
|---|---|---|
| 0.5 ETH | 多单 1.5 ETH | 多单 2 ETH + 空单 0.5 ETH |
| 2 ETH | 没有仓位 | 多单 2 ETH + 空单 2 ETH |
| 3 ETH | 空单 1 ETH | 多单 2 ETH + 空单 3 ETH |
单向那一列最该留神的是第三行。本想平仓,手一抖多打了一个数,平完多单还倒开出一张空单。只减仓这个勾选项就是防这个的,止盈止损单尤其需要它,细节在止盈止损和条件单那篇。双向那一列的坑在第一行:以为自己在减仓,其实是加了一张反向单。
开关在哪,什么时候拨不动
帮助页写的路径是:打开 U 本位或币本位合约的交易界面,点右上角的设置图标,进【交易】-【仓位模式】,在单向持仓模式和对冲模式之间选。英文界面对应的是 [Features] - [Position Mode]。
什么时候拨不动,帮助页和接口文档各说了一半。
帮助页那句是:有未平仓位或挂单,就无法调整仓位模式。容易漏的是范围。币安开发者文档里切换持仓模式的接口说明写明,这个设置对每一个交易对生效;同一页还写着,币本位迁移完成后,U 本位和币本位共用同一个设置,改一次两边一起变,只要任何一边还有仓位或挂单,切换就会被拒。所以清的不是眼前这一个合约,而是所有合约的持仓和当前委托,止盈止损这类还没触发的条件单也要一并看一眼。
也因为是全账户一个开关,没法只让 BTCUSDT 开双向、别的合约留单向。
想平多,却点成了开空
双向模式下,「开」和「平」是两个动作。接口文档把规矩写得很死:这个模式下每一笔单子都必须标明针对的是多头仓位(LONG)还是空头仓位(SHORT),只减仓参数在双向模式下根本不能传。单向模式里靠只减仓兜底的那层保护,到了这里换成了你自己选对「平」的那一边。
一种需要防的错单是:多单到了想止盈的位置,却在开仓那一侧点了卖出 / 做空。成交后多单原封不动,又多出一张空单。只有同一合约多空数量相等、两边仓位都还在时,后续价格变化带来的盈亏变动才相互抵消;数量不等,差额仍承受价格风险。手续费和资金费用还要另算,不能把对锁当成账户权益不会变化的保证。
分辨自己在哪种模式,最快的办法是看持仓列表:同一个合约出现多、空两行的,就是双向;下单区多出开仓、平仓的分隔,也是同一个信号。
多空对锁,账到底怎么算
中文圈把双向模式里同时拿着多空两张单叫「锁仓」。帮助页给了个例子:BTCUSDT 开 1 BTC 多单、0.5 BTC 空单。以下只算价格变动产生的盈亏,假设两边都在 22,000 USDT 开仓,仓位全程保留,不计手续费和资金费用。价格从 22,000 USDT 涨到 24,000,两张合计赚 (1 − 0.5) × 2,000 = 1,000 USDT;跌到 19,000,合计亏 (1 − 0.5) × 3,000 = 1,500 USDT,比只拿 1 BTC 多单亏的 3,000 少一半。
把这组数换个角度看:两张单子的净敞口就是 0.5 BTC 多。在上述开仓价格相同、仓位未被平掉且不计费用的假设下,这组对锁的价格盈亏等于单拿一张 0.5 BTC 多单。差别落在另外几处。
手续费。这组对锁开仓成交了 1.5 BTC(1 加 0.5),单拿 0.5 BTC 多单只成交 0.5 BTC;将来平掉也是一样。费率和成交价都相同的话,开平各一次付出去的手续费是后者的三倍,价格敞口却一样。
资金费用。币安资金费率说明里的公式是:资金费用 = 仓位名义价值 × 资金费率,名义价值按标记价格算。假设两张 BTCUSDT 永续仓位在同一次资金费结算时都仍持有。资金费率为正时,多头付、空头收;费率为负时方向反过来。按标记价格 P(USDT/BTC)、带正负号的资金费率 r 计算,多头支出减去空头收入 = (1 − 0.5) × P × r USDT;正值为净支出,负值为净收入。净额等于 0.5 BTC 多仓的资金费用。对锁省不掉它,也不会凭空多出来。资金费用怎么收付,资金费率那篇拆过。
强平。逐仓时两张单各有自己的保证金和强平价。单边行情走得够远,亏的那张可能先被强平,剩下的那张就成了没有对冲的单边仓位。等量对锁(比如 2 多 2 空)账面上看着「涨跌都不怕」,前提是两张都还活着。全仓下两张共用账户余额,情况又不一样,见逐仓和全仓那篇。
如果你是想在浮亏时先锁上、等想清楚再解,要记住:等量反向仓位只能在两张仓位都保留时抵消后续价格变动,已有浮亏不会消失,开平反向仓位也会产生手续费。什么时候解、先解哪一张,仍然需要判断。双向模式可以用于同时管理同一合约的多空策略,但不代表需要为了使用它而多开一单。我手动下单、只打算持有一个方向时,会先核对单向模式和平仓订单的只减仓设置;是否成交、会不会强平,仍要分别检查。
切换和对锁,常被问到的三件事
切换持仓模式时提示无法调整,是哪里没清干净?
币安帮助页写的是,有未平仓位或挂单就不能调整仓位模式。按币安开发者文档,这个设置对每一个交易对生效,币本位迁移完成后 U 本位和币本位共用一份,所以要检查的是全部合约的持仓和当前委托,止盈止损这类还没触发的条件单也一并看一眼,不只是正在看的那一个合约。
能不能只让 BTCUSDT 用双向持仓,其他合约保持单向?
按币安开发者文档对切换持仓模式接口的说明,这个设置对每一个交易对生效,没有按单个合约分开设置的参数。想用双向,就是整个合约账户一起切。
双向持仓下开了等量的多单和空单,是不是就不会爆仓了?
不能这么理解。逐仓时两张仓位各有各的保证金和强平价,单边行情可能先打掉亏损的那一张,剩下的那张就不再有对冲。对锁期间两张仓位还会各自结算资金费用,开仓和平仓也都要付手续费。