From 9aa25a15825537b2fa5f6eb091af241a554ede70 Mon Sep 17 00:00:00 2001 From: "zhangkun9038@dingtalk.com" Date: Thu, 27 Nov 2025 15:53:51 +0800 Subject: [PATCH] fix --- user_data/strategies/grid_manager.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/user_data/strategies/grid_manager.py b/user_data/strategies/grid_manager.py index ac163bf..4e6abf3 100644 --- a/user_data/strategies/grid_manager.py +++ b/user_data/strategies/grid_manager.py @@ -395,6 +395,19 @@ class GridManager: self.total_invested = trade.stake_amount self.avg_entry_price = trade.open_rate + # 重新初始化 grid_levels(仅保留当前持仓) + self.grid_levels.clear() + if self.total_quantity > 0 and self.avg_entry_price > 0: + # 创建一个体现当前持仓的网格点 + # 依据平均价格找最接近的网格位置 + grid_price = round(self.avg_entry_price / self.step) * self.step + self.grid_levels[grid_price] = GridLevel( + price=grid_price, + quantity=self.total_quantity, + entry_time=candle_index, + status="open" + ) + # 如果 trade 有多个 entry(加仓的情况) if hasattr(trade, 'trades') and trade.trades: entries = [t for t in trade.trades if t.entry_side == 'entry'] @@ -403,7 +416,8 @@ class GridManager: print(f"[GridManager] {self.pair} 从 Trade 对象同步状态 - " f"持仓: {self.total_quantity:.6f}, " f"投入: {self.total_invested:.2f} USDT, " - f"平均价: {self.avg_entry_price:.2f}", + f"平均价: {self.avg_entry_price:.2f}, " + f"网格点数: {len(self.grid_levels)}", file=sys.stderr, flush=True) def record_pending_order(self, order_id: str, adjustment: PositionRecord) -> None: