diff --git a/backend/live_executor.py b/backend/live_executor.py index cb614ff..42db7f1 100644 --- a/backend/live_executor.py +++ b/backend/live_executor.py @@ -263,7 +263,17 @@ async def execute_entry(session: aiohttp.ClientSession, signal: dict, db_conn): t_signal = signal_ts # 信号时间戳(ms) - # 0. 检查风控状态(读risk_guard写的状态文件) + # 0. 信号新鲜度检查(超过2秒弃仓) + SIGNAL_MAX_AGE_MS = 2000 + signal_age_ms = time.time() * 1000 - t_signal + if signal_age_ms > SIGNAL_MAX_AGE_MS: + logger.warning(f"[{symbol}] ❌ 信号过期: {signal_age_ms:.0f}ms > {SIGNAL_MAX_AGE_MS}ms,弃仓") + _log_event(db_conn, "warn", "trade", + f"信号过期弃仓 {direction} {symbol} | age={signal_age_ms:.0f}ms | score={score}", + symbol, {"signal_age_ms": round(signal_age_ms), "score": score}) + return None + + # 0.5 检查风控状态(读risk_guard写的状态文件) try: with open("/tmp/risk_guard_state.json") as f: risk_state = json.load(f)