diff --git a/scripts/batch_reassess.py b/scripts/batch_reassess.py index 5b72556c..c262a63a 100644 --- a/scripts/batch_reassess.py +++ b/scripts/batch_reassess.py @@ -149,20 +149,27 @@ def parse_response(text): nums = re.findall(r'[\d.]+', l) pct = "" if nums: - # 取第一个合理的百分比(1-100之间) for n in nums: f = float(n) if 1 <= f <= 100: pct = f"{f:.0f}%" break - # 如果没有百分比,用文字描述映射到百分比 raw = l.replace("建议仓位","").strip() if not pct: if "轻仓" in raw: pct = "3%" elif "中" in raw and "仓" in raw: pct = "5%" elif "重仓" in raw: pct = "10%" - elif "清仓" in raw or "零仓" in raw: pct = "0%" + elif "清仓" in raw or "零仓" in raw or "不参与" in raw: pct = "0%" else: pct = "5%" + # 信号与仓位一致性校验 + if result["signal"] in ("观望", "卖出"): + pct = "0%" + elif result["signal"] == "关注": + # 关注信号仓位不超过5% + if pct and pct != "0%": + pct_num = int(pct.replace("%","")) + if pct_num > 5: + pct = "5%" result["position"] = pct break