You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

币安期货多/空仓位平仓方法及代码平仓误开新仓问题咨询

币安期货平仓多头/空头仓位的正确方法

你遇到的问题核心是没指定仅平仓的订单属性,普通的SELL/BUY订单在平掉现有仓位后会自动反向开仓,只需添加reduceOnly=True参数就能解决——该参数会限制订单仅减少现有仓位,不创建新的反向仓位。

核心逻辑

  • 持有多头仓位时,用side="SELL"配合reduceOnly=True平仓
  • 持有空头仓位时,用side="BUY"配合reduceOnly=True平仓

双向持仓模式代码示例

如果你的账户是双向持仓模式(可分别持有多头、空头),仓位信息中的positionSide会明确标记LONG或SHORT,代码如下:

# 假设已获取目标仓位数据
position_side = positions[position]['positionSide']
close_qty = float(positions[position]['origQty'])

if position_side == "LONG":
    # 平多头仓位
    client.futures_create_order(
        symbol=str(tkr),
        side="SELL",
        type="MARKET",
        quantity=close_qty,
        reduceOnly=True  # 核心参数:仅平仓,不开新仓
    )
elif position_side == "SHORT":
    # 平空头仓位
    client.futures_create_order(
        symbol=str(tkr),
        side="BUY",
        type="MARKET",
        quantity=close_qty,
        reduceOnly=True
    )

单向持仓模式代码示例

若账户是默认的单向持仓模式,positionSide为BOTH,需通过positionAmt的正负判断仓位方向(正数=多头,负数=空头):

# 假设已获取目标仓位数据
position_amt = float(positions[position]['positionAmt'])
close_qty = abs(position_amt)

if position_amt > 0:
    # 平多头仓位
    client.futures_create_order(
        symbol=str(tkr),
        side="SELL",
        type="MARKET",
        quantity=close_qty,
        reduceOnly=True
    )
elif position_amt < 0:
    # 平空头仓位
    client.futures_create_order(
        symbol=str(tkr),
        side="BUY",
        type="MARKET",
        quantity=close_qty,
        reduceOnly=True
    )

内容的提问来源于stack exchange,提问作者Alaa Ismail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 13:12:17