This commit is contained in:
zhangkun9038@dingtalk.com 2025-11-27 15:53:51 +08:00
parent 658db450ec
commit 9aa25a1582

View File

@ -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: