fix: price_monitor同股同区间30分钟冷却去重
This commit is contained in:
@@ -331,6 +331,16 @@ def run_once(round_label=""):
|
||||
state = load_state()
|
||||
outputs = []
|
||||
state_updated = False
|
||||
# 时间冷却:同股同区间30分钟内不重复推
|
||||
_push_cooldown = {}
|
||||
def _can_push(code, zone_key):
|
||||
now = time.time()
|
||||
key = f"{code}_{zone_key}"
|
||||
last = _push_cooldown.get(key, 0)
|
||||
if now - last < 1800: # 30分钟
|
||||
return False
|
||||
_push_cooldown[key] = now
|
||||
return True
|
||||
|
||||
# 收集所有需要检查的代码
|
||||
check_codes = set()
|
||||
@@ -384,8 +394,9 @@ def run_once(round_label=""):
|
||||
buy_lo = d.get("entry_low", 0)
|
||||
buy_hi = d.get("entry_high", 0)
|
||||
rr = result.get("rr_ratio", 0)
|
||||
msg = f"🔔 {name}({code}) 价{price}→触发操作区间{max(buy_lo,0):.2f}~{buy_hi:.2f},已触发重评|RR={rr}"
|
||||
push_to_xmpp(msg)
|
||||
if _can_push(code, "stop_loss"):
|
||||
msg = f"🔔 {name}({code}) 价{price}→触发操作区间{max(buy_lo,0):.2f}~{buy_hi:.2f},已触发重评|RR={rr}"
|
||||
push_to_xmpp(msg)
|
||||
outputs.append(f" 📨 止损重评→已推送Dad: {action}")
|
||||
except Exception as e:
|
||||
outputs.append(f" ⚠️ 止损重评失败: {e}")
|
||||
@@ -418,13 +429,15 @@ def run_once(round_label=""):
|
||||
zone_desc = f"操作区间{lo}~{hi}"
|
||||
if "买入" in timing_signal or "加仓" in timing_signal or "止损" in action:
|
||||
rr = result.get("rr_ratio", 0)
|
||||
msg = f"🔔 {name}({code}) 价{price}→触发{zone_desc},已触发重评|RR={rr}"
|
||||
push_to_xmpp(msg)
|
||||
outputs.append(f" 📨 区间触发重评→已推送Dad: {action}")
|
||||
if _can_push(code, key):
|
||||
msg = f"🔔 {name}({code}) 价{price}→触发{zone_desc},已触发重评|RR={rr}"
|
||||
push_to_xmpp(msg)
|
||||
outputs.append(f" 📨 区间触发重评→已推送Dad: {action}")
|
||||
else:
|
||||
reason = f"重评结果:{timing_signal},不构成操作建议"
|
||||
msg = f"📋 {name}({code}) 价{price}→{zone_desc},{reason}"
|
||||
push_to_xmpp(msg)
|
||||
if _can_push(code, key + "_note"):
|
||||
msg = f"📋 {name}({code}) 价{price}→{zone_desc},{reason}"
|
||||
push_to_xmpp(msg)
|
||||
outputs.append(f" 📨 区间触发→已推送说明: {reason}")
|
||||
except Exception as e:
|
||||
outputs.append(f" ⚠️ 区间重评失败: {e}")
|
||||
|
||||
Reference in New Issue
Block a user