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 13:33:23 +08:00
parent cacca80e11
commit 430376eb61
18 changed files with 1089 additions and 120 deletions
+4 -1
View File
@@ -68,6 +68,8 @@ class OrderRequest(BaseModel):
symbol: str
order_type: str
volume: float
sl: float = None # ★ 硬止损价格
tp: float = None # ★ 硬止盈价格
class CloseRequest(BaseModel):
ticket: int
@@ -146,7 +148,8 @@ def api_symbol(symbol: str):
def api_order(req: OrderRequest):
_ensure_connected()
with _lock:
result = _provider.send_order(req.symbol, req.order_type, req.volume)
result = _provider.send_order(req.symbol, req.order_type, req.volume,
sl=req.sl, tp=req.tp)
if result is None:
return JSONResponse(status_code=503, content={"error": "下单失败"})
return serialize_order_result(result)