diff --git a/deploy/profile-scripts/mofin_db.py b/deploy/profile-scripts/mofin_db.py index d1f6a186..97621dd6 100644 --- a/deploy/profile-scripts/mofin_db.py +++ b/deploy/profile-scripts/mofin_db.py @@ -1380,7 +1380,11 @@ def sync_recommend_tag(conn, code: str, timing_signal: str): 动作级信号 → current_recommend;信号降级 → 清除 current_recommend; active_manual(人工标记)永不动。与 XMPP 动作级告警同源(红线#12)。""" try: - recompute_rr(conn, code) # 先入先算:保证 tag/入队/盯盘排序拿到新鲜 RR + # 2026-08-18 修复:RR 由 scanner 定(老莫原则),已有值不重算覆盖。 + # 原逻辑每次信号同步都 recompute_rr → 重评后参数漂移 → scanner 定的 RR(2.29) 被悄悄改成 1.51。 + _rr_have = conn.execute("SELECT rr_ratio FROM holding_strategies WHERE code=? AND status='active'", (code,)).fetchone() + if not (_rr_have and (_rr_have[0] or 0) > 0): + recompute_rr(conn, code) # 仅 RR 缺失(0)时兜底,保证 tag/入队/盯盘排序有值 _row = conn.execute( "SELECT tag, timing_signal FROM holding_strategies WHERE code=? AND status='active'", (code,)).fetchone() _old_tag = (_row[0] or '') if _row else ''