fix: promote推送改造——只推有操作建议信号的(买入/可买入/可加仓,走push_recommend_alert标准通道:门禁+12维全文+单只单条),观望/关注提拔不进XMPP只归档broadcast(老莫:多票堆长文截断不行+无操作建议不要发)
This commit is contained in:
@@ -284,32 +284,25 @@ def main():
|
||||
conn.commit()
|
||||
print(f"\n[PROMOTE] 本次处理{processed}个,提拔{promoted}只(剩余留待下批)", flush=True)
|
||||
|
||||
# 推XMPP(老莫:进自选必须附完整 12 维重评全文)
|
||||
# 推XMPP(2026-08-25 老莫新规则:①多票堆一条长文截断不行→每只单独一条
|
||||
# ②无操作建议(观望/关注)不推XMPP只归档broadcast)
|
||||
if promoted > 0:
|
||||
try:
|
||||
import urllib.request
|
||||
codes = ",".join("?" * len(newly_promoted_codes))
|
||||
promoted_rows = conn.execute(
|
||||
f"SELECT code, name, strategy_name, rr_ratio, full_analysis "
|
||||
f"SELECT code, name, timing_signal "
|
||||
f"FROM holding_strategies WHERE status='active' AND code IN ({codes})",
|
||||
tuple(newly_promoted_codes)
|
||||
).fetchall() if newly_promoted_codes else []
|
||||
body = f"🤖 候选自动提拔: {promoted}只新入自选(评分降序优中选优,每批≤{MAX_NEW_PER_RUN})\n"
|
||||
for i, (code, name, strat, rr, fa) in enumerate(promoted_rows, 1):
|
||||
nm = name or code
|
||||
body += f"\n━━━ [{i}] {code} {nm} ━━━\n"
|
||||
body += f"策略: {strat or 'unknown'} | RR: {rr or 'N/A'}\n"
|
||||
if fa and len(str(fa)) > 50:
|
||||
body += f"【12维重评】\n{fa}\n"
|
||||
else:
|
||||
body += "(重评报告生成中/未就绪,稍后补推)\n"
|
||||
if len(body) > 6000:
|
||||
body = body[:6000] + "\n…(内容过长已截断)"
|
||||
req = urllib.request.Request("http://127.0.0.1:5805/",
|
||||
data=json.dumps({"to": "hmo@yoin.fun", "body": body, "type": "chat"}).encode(),
|
||||
headers={"Content-Type": "application/json"})
|
||||
urllib.request.urlopen(req, timeout=10)
|
||||
print(f"[PROMOTE] XMPP 通知已发送({promoted}只含完整重评)", flush=True)
|
||||
_ACTION_SIG = ("买入", "可买入", "可加仓") # 有操作建议的信号
|
||||
pushed = 0
|
||||
for code, name, tsig in promoted_rows:
|
||||
if any(s in str(tsig or "") for s in _ACTION_SIG):
|
||||
# 有操作建议:走标准推荐通道(质量门禁+12维完整分析,单只单条不堆叠)
|
||||
from mofin_db import push_recommend_alert
|
||||
if push_recommend_alert(conn, code):
|
||||
pushed += 1
|
||||
print(f"[PROMOTE] XMPP: {pushed}只有操作建议已推送;其余{len(promoted_rows)-pushed}只观望/关注仅归档broadcast(不进池通知不打扰)", flush=True)
|
||||
except Exception as e:
|
||||
print(f"[PROMOTE] XMPP 通知失败: {e}", flush=True)
|
||||
# 2026-08-18 老莫:重评未就绪的必须补推——后台 detach 补跑重评+补推
|
||||
|
||||
Reference in New Issue
Block a user