动态步长-fix
This commit is contained in:
parent
6efcf3ea9d
commit
a0fb7e949c
@ -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]:
|
||||
"""获取当前持仓的完整摘要"""
|
||||
|
||||
@ -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}",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user