diff --git a/backend/risk_guard.py b/backend/risk_guard.py index e582431..22cdb95 100644 --- a/backend/risk_guard.py +++ b/backend/risk_guard.py @@ -67,7 +67,7 @@ HOLD_TIMEOUT_GRACE_MIN = 10 # 红灯后10分钟人工窗口 HOLD_TIMEOUT_AUTO_CLOSE_MIN = HOLD_TIMEOUT_RED_MIN + HOLD_TIMEOUT_GRACE_MIN # 70分钟 # 数据新鲜度 -MARKET_DATA_STALE_SEC = 10 +MARKET_DATA_STALE_SEC = 30 # 30秒(允许signal_engine启动回灌) ACCOUNT_UPDATE_STALE_SEC = 20 CHECK_INTERVAL = 5 # 风控检查间隔(秒) @@ -451,6 +451,19 @@ def check_auto_resume(): risk_state.circuit_break_reason = None write_risk_state() + # 数据新鲜度恢复(熔断原因含"数据异常"且当前数据已恢复新鲜) + if (risk_state.circuit_break_reason + and "数据异常" in risk_state.circuit_break_reason + and "人工" not in risk_state.circuit_break_reason): + # 检查数据是否已恢复 + api_gap = now - risk_state.last_api_success + if api_gap < 10: + logger.info("✅ 数据新鲜度恢复,自动恢复交易") + risk_state.status = "normal" + risk_state.block_new_entries = False + risk_state.circuit_break_reason = None + write_risk_state() + # ============ 前端紧急指令处理 ============