feat: 一票制并发锁 + MT5硬止损兜底

- 一票制: _pending_long/_pending_short 计数器防同一周期内多信号穿透
- 硬止损: MT5下单时附带sl/tp,倍率1.5x(止损)/1.3x(止盈),比EA软止损更宽
- config.py: 新增 hard_sl_multiplier/hard_tp_multiplier
- 全部 send_order 链路(abc/remote/live/server/dryrun/backtest) 支持 sl/tp 参数
- 对冲模块: 彻底移除
- 日志: 去重+30轮摘要
This commit is contained in:
silencesdg
2026-05-14 14:07:13 +08:00
parent cacca80e11
commit 430376eb61
18 changed files with 1089 additions and 120 deletions
+2 -2
View File
@@ -37,14 +37,14 @@ class MACrossStrategy(BaseStrategy):
is_cross_up = latest['short_ma'] > latest['long_ma'] and previous['short_ma'] <= previous['long_ma']
logger.debug(f"金叉判断 (is_cross_up): {is_cross_up}")
if is_cross_up:
logger.info(f"{self.name}: 检测到金叉,生成买入信号")
logger.debug(f"{self.name}: 检测到金叉,生成买入信号")
return 1
# 判断死叉
is_cross_down = latest['short_ma'] < latest['long_ma'] and previous['short_ma'] >= previous['long_ma']
logger.debug(f"死叉判断 (is_cross_down): {is_cross_down}")
if is_cross_down:
logger.info(f"{self.name}: 检测到死叉,生成卖出信号")
logger.debug(f"{self.name}: 检测到死叉,生成卖出信号")
return -1
logger.debug(f"--- {self.name} 信号生成结束 (无信号) ---")