From a0fb7e949cd97ef3e25ef353b30c57449ac752c4 Mon Sep 17 00:00:00 2001 From: "zhangkun9038@dingtalk.com" Date: Thu, 27 Nov 2025 16:26:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A8=E6=80=81=E6=AD=A5=E9=95=BF-fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- user_data/strategies/grid_manager.py | 8 +++++++- user_data/strategies/staticgrid.py | 13 ++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/user_data/strategies/grid_manager.py b/user_data/strategies/grid_manager.py index 74050c1..d6122b5 100644 --- a/user_data/strategies/grid_manager.py +++ b/user_data/strategies/grid_manager.py @@ -306,8 +306,14 @@ class GridManager: def _round_to_grid(self, price: float) -> float: """ 将价格舍入到最接近的网格点(向下舍入) + 基于 lower_price 的偏移量进行计算 """ - return int(price / self.step) * self.step + # 计算相对于下沿的偏移量 + offset = price - self.lower_price + # 舍入到最接近的网格间距 + grid_count = int(offset / self.step) + # 返回对应的网格价格 + return self.lower_price + grid_count * self.step def get_summary(self) -> Dict[str, Any]: """获取当前持仓的完整摘要""" diff --git a/user_data/strategies/staticgrid.py b/user_data/strategies/staticgrid.py index 60686c3..5af60c3 100644 --- a/user_data/strategies/staticgrid.py +++ b/user_data/strategies/staticgrid.py @@ -4,7 +4,7 @@ from pandas import DataFrame from typing import Optional, Dict, Any import logging import sys -from grid_manager import GridManager, OrderFill, AdjustmentType +from grid_manager import GridManager, OrderFill, AdjustmentType, GridLevel logger = logging.getLogger(__name__) @@ -75,6 +75,17 @@ class StaticGrid(IStrategy): grid_manager.grid_prices = [new_lower + i * step for i in range(grid_manager.total_grid_levels)] grid_manager.step = step # 更新步长 + # 重新初始化 grid_states(应对范围和步长的变化) + grid_manager.grid_states.clear() + for price in grid_manager.grid_prices: + grid_manager.grid_states[price] = GridLevel( + price=price, + status="empty", + quantity=0.0, + entry_price=0.0, + entry_time=0 + ) + print(f"[StaticGrid] {pair} 更新网格范围 - 从 1000-5000 更新为 {new_lower:.2f}-{new_upper:.2f}", file=sys.stderr, flush=True) print(f"[StaticGrid] {pair} 新网格数: {grid_manager.total_grid_levels}, 步长: {step:.4f}",