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

如何通过Binance API平仓?遇订单类型API报错求助

Binance期货API市价平仓解决方案

问题原因分析

你遇到的两个报错本质是参数使用错误:

  • 错误码-2021:STOP_MARKET类型订单要求stopPrice与当前市价有合理价差,不能立即触发。你设置的stopPrice导致订单满足触发条件,因此被系统拒绝。
  • 错误码-4136:closePosition=True参数仅适用于止损/止盈类订单(如STOP_MARKET、TAKE_PROFIT_MARKET),MARKET类型订单不支持该参数。

正确实现方式

网页端的市价平仓,本质是发送带reduceOnly=True参数的市价订单,确保仅减少现有持仓而非开新仓。具体步骤如下:

1. 获取当前持仓信息

先查询目标币种的持仓方向和数量:

# 获取持仓信息
position_info = self.client.futures_position_information(symbol=symbol)[0]
position_amount = float(position_info['positionAmt'])

# 确定平仓方向和数量
if position_amount > 0:
    # 持有多单,平仓方向为SELL
    close_side = "SELL"
    close_quantity = abs(position_amount)
elif position_amount < 0:
    # 持有空单,平仓方向为BUY
    close_side = "BUY"
    close_quantity = abs(position_amount)
else:
    # 无持仓,无需操作
    print("无持仓可平")

2. 发送市价平仓订单

使用MARKET类型订单,配合reduceOnly=True参数执行平仓:

if position_amount != 0:
    close_order = self.client.futures_create_order(
        symbol=symbol,
        side=close_side,
        type="MARKET",
        quantity=close_quantity,
        reduceOnly=True,
        test=True  # 测试环境可保留,正式环境移除
    )
    print("平仓订单提交成功:", close_order)

关键参数说明

  • reduceOnly=True:强制订单仅用于减少现有持仓,避免误开反向新仓,是平仓操作的核心安全参数。
  • quantity:需设置为当前持仓的绝对值,确保平掉全部仓位;若仅需平部分仓位,可修改为对应数值。

内容的提问来源于stack exchange,提问作者Marek Biolik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:00:06