添加优化超时

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)
+1 -1
View File
@@ -33,7 +33,7 @@ class EAAutoScanner:
"test_config": {
"symbol": "EURUSD", "period": "H1",
"from_date": "2025.01.01", "to_date": "2025.12.31",
"model": 1, "deposit": 10000, "leverage": "1:100"
"model": 1, "deposit": 10000, "leverage": "1:100", "timeout_min": 60
},
"walk_forward": {"enabled": False, "forward_mode": 0, "forward_date": ""}
}
+2 -1
View File
@@ -279,7 +279,8 @@ def generate_prompt(results: List[SetFileResult], output_dir: str = '.') -> List
lines.append(' "optimization_mode": 2, // 优化模式: 0=禁用, 1=慢速完整算法, 2=快速遗传算法, 3=MarketWatch所有符号')
lines.append(' "optimization_criterion": 1, // 优化指标: 0=余额最大, 1=盈利因子最大, 2=期望收益, 3=回撤最小, 4=恢复因子, 5=夏普比率, 6=自定义, 7=复合指标')
lines.append(' "deposit": 10000, // 初始保证金')
lines.append(' "leverage": "1:100" // 杠杆')
lines.append(' "leverage": "1:100", // 杠杆')
lines.append(' "timeout_min": 60 // 等待优化结果的超时(分钟)')
lines.append(' },')
lines.append(' "walk_forward": {')
lines.append(' "enabled": true, // 是否启用前向测试')