fix: sync_recommend_tag不再重算覆盖scanner定的RR(688081被recompute从2.29改成1.51,违反RR由scanner定原则)。RR缺失(0)才兜底

This commit is contained in:
xxm
2026-08-18 18:48:29 +08:00
parent add377027e
commit caf8a5a73b
+5 -1
View File
@@ -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 ''