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

使用pybit修改Bybit活跃仓位止盈止损时遇130127错误求助

问题:使用pybit修改Bybit期货仓位止盈止损时触发ErrCode:130127错误

问题描述

我用Python调用Bybit官方的pybit包,尝试修改线性期货活跃仓位的止损(stop loss),但调用set_trading_stop函数时一直收到InvalidRequestError: Not modified (ErrCode: 130127)错误。

我已经在论坛和Stack Overflow搜过相关内容,但只找到ccxt包的解决方案。由于pybit包已被归档无法提交GitHub Issue,特此求助。

代码片段

session_auth.set_trading_stop(orderId=myorderid, symbol=crypto, stopLoss='25000', category='linear', positionIdx=0, slTriggerBy='MarkPrice')

错误信息

InvalidRequestError: Not modified (ErrCode: 130127) (ErrTime: 06:43:33).
Request → POST https://api.bybit.com/private/linear/position/trading-stop: {'api_key': 'xxx', 'category': 'linear', 'orderId': '67bf2151-1f30-4b33-b2b8-332023a33f2c', 'positionIdx': 0, 'recv_window': 5000, 'slTriggerBy': 'MarkPrice', 'stopLoss': '25000', 'symbol': 'BTCUSDT', 'timestamp': 1681886613451, 'sign': 'xxx'}.

解决方案

ErrCode:130127的核心原因是请求未触发任何实际修改,可以按以下步骤排查解决:

  1. 核对当前仓位的止损设置
    先调用get_positions接口获取现有仓位的止损值,确认你要设置的stopLoss是否和当前值重复:

    positions = session_auth.get_positions(category='linear', symbol=crypto)
    print(positions)
    

    查看返回结果里的stop_loss字段,对比你要设置的数值。

  2. 移除不必要的参数
    修改仓位止损不需要传递orderId参数(该参数用于关联订单,而非仓位),去掉后重试:

    session_auth.set_trading_stop(symbol=crypto, stopLoss='25000', category='linear', positionIdx=0, slTriggerBy='MarkPrice')
    
  3. 检查positionIdx是否匹配仓位模式

    • 单向持仓模式下positionIdx固定为0
    • 双向持仓模式下,多头对应1,空头对应2
      如果模式不匹配,会导致找不到目标仓位,进而触发“未修改”错误。
  4. 确认价格精度合规
    比如BTCUSDT的最小价格变动单位是0.5,确保stopLoss的值是该单位的整数倍(25000是符合要求的,但25000.3这类数值会触发问题)。

  5. 验证仓位状态
    确保目标仓位处于未平仓的活跃状态,已平仓仓位无法修改止损。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:55:08