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

使用CCXT对接Bybit平仓反向仓位时触发130125错误求助

解决Bybit 130125错误:当前仓位为0无法提交减仓订单

核心问题分析

错误码130125明确说明当前对应方向的仓位为0,但你提交了reduce_only: True的订单——这类订单仅用于减少已有仓位,无对应仓位时提交必然触发报错。

具体修复步骤

  1. 提交减仓订单前必须检查对应方向仓位
    在调用create_order执行减仓操作前,先通过CCXT的fetch_positions接口获取当前仓位状态,确认对应方向(多/空)有可用持仓后再执行减仓:
# 获取指定标的的仓位数据
positions = bybitX.fetch_positions([symbol])
for pos in positions:
    # 有多头仓位时,才能提交sell方向的减仓订单
    if pos['side'] == 'long' and pos['contracts'] > 0:
        bybitX.create_order(
            symbol=symbol,
            type='Market',
            side='sell',
            amount=pos['contracts'],
            price=None,
            params={'reduce_only': True}
        )
    # 有空头仓位时,才能提交buy方向的减仓订单
    elif pos['side'] == 'short' and pos['contracts'] > 0:
        bybitX.create_order(
            symbol=symbol,
            type='Market',
            side='buy',
            amount=pos['contracts'],
            price=None,
            params={'reduce_only': True}
        )

注意:不要硬编码仓位数量(比如你的0.01),直接使用实际持仓量,避免提交超出仓位的减仓请求。

  1. 严格分离开仓与平仓逻辑
    你的代码中减仓订单后直接执行开仓操作,若减仓时无对应仓位会直接报错中断流程。需先确保减仓操作(如果需要)执行完成,再进行开仓:
# 先处理反向仓位平仓
positions = bybitX.fetch_positions([symbol])
reverse_pos_closed = True
for pos in positions:
    # 这里替换成你的反向仓位判断逻辑(比如当前要开多,就平空仓)
    if pos['side'] == 'short' and pos['contracts'] > 0:
        reverse_pos_closed = False
        # 平空头仓位
        bybitX.create_order(
            symbol=symbol,
            type='Market',
            side='buy',
            amount=pos['contracts'],
            price=None,
            params={'reduce_only': True}
        )
        reverse_pos_closed = True

# 确认反向仓位已平(或原本无反向仓位),再执行开仓
if reverse_pos_closed:
    bybitX.create_order(
        symbol=symbol,
        type='Market',
        side='Buy',
        amount=amount_Buy,
        price=None,
        params={'leverage': leverage}
    )
  1. 避免重复触发无效指令
    确保TradingView的指令不会重复推送,或在本地维护仓位状态缓存,减少重复查询交易所的同时,避免无意义的减仓请求。

额外注意事项

  • Bybit的reduce_only订单要求订单方向必须与当前仓位方向相反(多头仓位只能用sell减仓,空头只能用buy减仓),方向错误也会触发类似报错。
  • 检查CCXT版本是否为最新,旧版本可能存在参数映射问题,导致reduce_only参数未正确传递给Bybit接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:10:14