添加优化超时

This commit is contained in:
2026-07-06 05:06:15 +08:00
parent e49bdb1116
commit f94728fa88
3 changed files with 19 additions and 4 deletions
+16 -2
View File
@@ -1532,6 +1532,11 @@ class MT5BacktestGUI:
self.opt_leverage.set("1:100")
self.opt_leverage.pack(side='left', padx=5)
ttk.Label(acct_row, text="等待超时(分钟):").pack(side='left', padx=10)
self.opt_timeout_min = ttk.Entry(acct_row, width=8)
self.opt_timeout_min.insert(0, "60")
self.opt_timeout_min.pack(side='left', padx=5)
wf_frame = ttk.LabelFrame(test_frame, text="向前优化 (Forward)")
wf_frame.pack(fill='x', padx=5, pady=5)
@@ -1754,6 +1759,9 @@ class MT5BacktestGUI:
self.opt_deposit.insert(0, str(test_cfg.get('deposit')))
if test_cfg.get('leverage'):
self.opt_leverage.set(str(test_cfg.get('leverage')))
if 'timeout_min' in test_cfg:
self.opt_timeout_min.delete(0, tk.END)
self.opt_timeout_min.insert(0, str(test_cfg.get('timeout_min')))
exec_delay = int(test_cfg.get('execution_delay', 0) or 0)
if exec_delay == 0:
@@ -1905,7 +1913,8 @@ class MT5BacktestGUI:
'optimization_mode': self._get_opt_optimization_mode(),
'optimization_criterion': self._get_opt_optimization_criterion(),
'deposit': int(self.opt_deposit.get()) if self.opt_deposit.get().isdigit() else 10000,
'leverage': self.opt_leverage.get()
'leverage': self.opt_leverage.get(),
'timeout_min': int(self.opt_timeout_min.get()) if self.opt_timeout_min.get().isdigit() else 60
},
'walk_forward': {
'enabled': self.wf_enabled.get(),
@@ -2206,7 +2215,12 @@ class MT5BacktestGUI:
self.opt_log.insert('end', f"等待XML结果,候选目录: {mt5_data_dir} | {mt5_install_dir}\n")
self.opt_log.update()
wait_timeout = 600
try:
wait_timeout = int(self.opt_timeout_min.get()) * 60
except ValueError:
wait_timeout = 60 * 60
self.opt_log.insert('end', f"等待超时: {wait_timeout // 60} 分钟\n")
self.opt_log.update()
start_time = time.time()
while time.time() - start_time < wait_timeout:
xml_path = _find_latest_optimizer_xml([mt5_data_dir, mt5_install_dir], ea_name)