From c03a4adb53422cea0cf55787fbae9d3583a5d776 Mon Sep 17 00:00:00 2001 From: "GDP\\solonot" Date: Wed, 12 Nov 2025 18:14:56 +0800 Subject: [PATCH] update --- core/sfgrid/sfgrid_ui.py | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/core/sfgrid/sfgrid_ui.py b/core/sfgrid/sfgrid_ui.py index 0a359ee..609cdd0 100644 --- a/core/sfgrid/sfgrid_ui.py +++ b/core/sfgrid/sfgrid_ui.py @@ -124,12 +124,21 @@ class TradeTargetUI(ttk.Frame): command=self.delete_selected_trade, width=12).pack(side=tk.LEFT, padx=2) ttk.Button(toolbar_frame, text="🛠 交易设置", command=self.trade_settings, width=12).pack(side=tk.LEFT, padx=2) + ttk.Button(toolbar_frame, text="🛠 网格修正", + command=self.grid_correct, width=12).pack(side=tk.LEFT, padx=2) ttk.Button(toolbar_frame, text="▣ 实时监控", command=self.toggle_market_monitor, width=12).pack(side=tk.RIGHT, padx=2) # 表格区域 self.create_tables_area(main_frame) + def grid_correct(self): + + target = self.get_selected_target() + if not target: + return + self.create_grid_correction_window(target) + def create_tables_area(self, parent): """创建表格区域""" @@ -572,22 +581,13 @@ class TradeTargetUI(ttk.Frame): if not target: return - # 获取顶层窗口 - root = self.winfo_toplevel() - - # 创建顶层窗口 - view_window = tk.Toplevel(root) - view_window.title(f"网格配置查看 - {target.stock_code} ({target.stock_name})") - view_window.geometry("500x450") - view_window.resizable(False, False) - # 检查标的的状态,status为1时仅可查看 - # if target.status == 1: - # # 创建只读的网格配置查看窗口 - # self.create_grid_view_window(target) - # else: - # # 创建可编辑的网格配置窗口 - # self.create_grid_config_window(target) + if target.status == 1: + # 创建只读的网格配置查看窗口 + self.create_grid_view_window(target) + else: + # 创建可编辑的网格配置窗口 + self.create_grid_config_window(target) def create_grid_view_window(self, target: SFGridTradeTarget): """创建网格配置查看窗口(只读)""" @@ -940,7 +940,7 @@ class TradeTargetUI(ttk.Frame): required_position_frame.pack(fill=tk.X, pady=5) grid_index_value = getattr(target, 'grid_index') - required_position = grid_index_value * config.grid_volume + required_position = grid_index_value * target.grid_volume ttk.Label(required_position_frame, text="需求持仓量:", width=12).pack(side=tk.LEFT) required_position_label = ttk.Label(required_position_frame, text=str(required_position), width=10, anchor=tk.CENTER) required_position_label.pack(side=tk.LEFT, padx=5) @@ -965,7 +965,7 @@ class TradeTargetUI(ttk.Frame): # 增加按钮 ttk.Button(grid_index_frame, text="+", width=3, - command=lambda: self.increase_grid_index(grid_index_var, len(config.grid_price)-1, target, required_position_label, position_status_label)).pack(side=tk.LEFT, padx=(5, 0)) + command=lambda: self.increase_grid_index(grid_index_var, len(target.getPriceGrid())-1, target, required_position_label, position_status_label)).pack(side=tk.LEFT, padx=(5, 0)) # 当前价格(实时更新) price_frame = ttk.Frame(options_frame) @@ -1022,7 +1022,7 @@ class TradeTargetUI(ttk.Frame): setattr(target, 'grid_index', new_grid_index) # 重新计算需求持仓量 - required_position = new_grid_index * config.grid_volume + required_position = new_grid_index * target.grid_volume # 检查持仓量是否满足要求 current_position = getattr(target, 'current_position') @@ -1063,7 +1063,7 @@ class TradeTargetUI(ttk.Frame): def update_required_position_and_status(self, grid_index: int, target: SFGridTradeTarget, required_position_label: ttk.Label, position_status_label: ttk.Label): """更新需求持仓量和持仓状态""" # 计算需求持仓量 - required_position = grid_index * config.grid_volume + required_position:int = grid_index * target.grid_volume # type: ignore required_position_label.config(text=str(required_position)) # 更新持仓量状态