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

如何通过CCXT实现Bitget跟单交易订单的平仓操作?

Bitget跟单交易平仓正确实现方式

你现有代码存在3个核心逻辑错误,直接跑会出现开反向仓、平仓报错的问题:

  • 开平仓方向完全写反:持有long多单时平仓需要下卖单,持有short空单时平仓需要下买单,你当前写的多单对应buy、空单对应sell是开仓/加仓逻辑,根本无法平仓
  • 平仓触发条件写错:curposition == 'flat'代表当前已经是空仓状态,不需要任何平仓操作,你把平仓接口调用放在这个分支里完全不符合逻辑
  • 接口参数硬编码无效:post_closeTrackOrder的trackingNo参数不能传固定字符串'currentTrack',必须传你开跟单仓时接口返回的真实跟踪单号,symbol也不要写死成ETH的交易对,直接用策略传的ticker变量即可

Bitget跟单平仓直接用官方SDK提供的post_closeTrackOrder接口即可,全量平仓不需要额外传方向参数,接口会自动根据当前持仓方向匹配平仓对手单,部分平仓时额外传quantity参数指定平仓数量即可。

修正后的可运行代码如下:

side = data['strategy']['order_action'].upper()
quantity = data['strategy']['order_contracts']
ticker = data['ticker']
curposition = data['strategy']['market_position']
# 替换为你开对应跟单仓位时,接口返回的真实trackingNo,建议开仓成功后存在缓存/变量中
open_track_no = "替换为实际开仓返回的跟踪单号"

if curposition == 'long':
    # 多单平仓
    bitget.post_closeTrackOrder(
        symbol=ticker,
        trackingNo=open_track_no,
        quantity=quantity  # 要全平的话删掉这个参数即可
    )
elif curposition == 'short':
    # 空单平仓
    bitget.post_closeTrackOrder(
        symbol=ticker,
        trackingNo=open_track_no,
        quantity=quantity
    )
elif curposition == 'flat':
    # 已空仓无操作
    pass

几个实操注意事项:

  • 如果你本地安装的是最新版Bitget Python SDK,部分版本方法名调整为close_track_order,调用报方法不存在时先核对SDK版本对应的接口命名
  • 接口调用前先在模拟盘验证权限、参数正确性,确认能正常平仓再切实盘
  • 平仓请求发出去后,建议间隔1-2秒调用跟单持仓查询接口核对仓位剩余量,避免因网络波动、参数错误导致漏平

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:54:52