From c0cafb04008d8cc392c67c11346f72e490c367c7 Mon Sep 17 00:00:00 2001 From: jackyu66git Date: Tue, 5 May 2026 01:09:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20BG=2022002=E8=A7=86=E4=B8=BA=E5=B7=B2?= =?UTF-8?q?=E5=B9=B3=E4=BB=93=E4=B8=8D=E9=87=8D=E8=AF=95=20+=20=E5=88=A0?= =?UTF-8?q?=E9=99=A4STBL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - closeLeg: 22002(暂无仓位可平)→ 标记已平仓,不报错不重试 - closeLeg: 新增holdSide参数传给BG API - scanner.go: 删除STBL币对 --- trader.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/trader.go b/trader.go index b947525..77e2630 100644 --- a/trader.go +++ b/trader.go @@ -3,6 +3,7 @@ package main import ( "fmt" "log" + "strings" "sync" "time" @@ -1404,9 +1405,15 @@ func (t *Trader) closeLeg(leg *PositionLeg) string { } resp, err := t.bitget.PlaceMarketOrder(side, leg.Coin+"USDT", leg.Size, "close", holdSide) if err != nil { - return fmt.Sprintf("BG close 22002: %v", err) + // 22002 = no position on exchange (already closed manually or previously) + if strings.Contains(err.Error(), "22002") { + log.Printf("[Trader] BG %s %s: already closed (22002)", side, leg.Coin+"USDT") + } else { + return fmt.Sprintf("%v", err) + } + } else { + log.Printf("[ExRes] BG close %s %s: size=%s → response=%s", side, leg.Coin+"USDT", leg.Size, resp) } - log.Printf("[ExRes] BG close %s %s: size=%s → response=%s", side, leg.Coin+"USDT", leg.Size, resp) } else { log.Printf("[Order] HL close %s %s | size=%s", side, leg.Coin, leg.Size) resp, err := t.hyperliquid.PlaceMarketOrder(leg.Coin, side, leg.Size)