fix(digest): 信号从非动作级转入动作级时强制入队
- 原条件只检查tag新旧(持有→卖出时tag已遗留current_recommend→不入队) - 新加: 旧信号非动作+新信号动作→入队(即使tag不变) - 补充触发00700/300308/688639的历史卖出推送
This commit is contained in:
+9
-4
@@ -1248,9 +1248,10 @@ def sync_recommend_tag(conn, code: str, timing_signal: str):
|
|||||||
active_manual(人工标记)永不动。与 XMPP 动作级告警同源(红线#12)。"""
|
active_manual(人工标记)永不动。与 XMPP 动作级告警同源(红线#12)。"""
|
||||||
try:
|
try:
|
||||||
recompute_rr(conn, code) # 先入先算:保证 tag/入队/盯盘排序拿到新鲜 RR
|
recompute_rr(conn, code) # 先入先算:保证 tag/入队/盯盘排序拿到新鲜 RR
|
||||||
_old_tag_row = conn.execute(
|
_row = conn.execute(
|
||||||
"SELECT tag FROM holding_strategies WHERE code=? AND status='active'", (code,)).fetchone()
|
"SELECT tag, timing_signal FROM holding_strategies WHERE code=? AND status='active'", (code,)).fetchone()
|
||||||
_old_tag = (_old_tag_row[0] or '') if _old_tag_row else ''
|
_old_tag = (_row[0] or '') if _row else ''
|
||||||
|
_old_sig = (_row[1] or '') if _row else ''
|
||||||
# 卖出/止盈 仅对持仓股算动作信号(没持仓卖什么)
|
# 卖出/止盈 仅对持仓股算动作信号(没持仓卖什么)
|
||||||
_ACTION_BUY = ("买入", "可买入", "可加仓")
|
_ACTION_BUY = ("买入", "可买入", "可加仓")
|
||||||
_ACTION_SELL = ("卖出", "止盈")
|
_ACTION_SELL = ("卖出", "止盈")
|
||||||
@@ -1264,7 +1265,11 @@ def sync_recommend_tag(conn, code: str, timing_signal: str):
|
|||||||
"WHERE code=? AND status='active' AND (tag IS NULL OR tag != 'active_manual')",
|
"WHERE code=? AND status='active' AND (tag IS NULL OR tag != 'active_manual')",
|
||||||
(code,))
|
(code,))
|
||||||
conn.commit()
|
conn.commit()
|
||||||
if _old_tag != 'current_recommend':
|
# 入队条件:tag 新鲜转成 或 信号从非动作级转入动作级
|
||||||
|
#(防:信号持有→卖出但tag已遗留current_recommend就不入队——2026-07-27 老爸)
|
||||||
|
_old_action = _old_sig in _ACTION_BUY or _old_sig in _ACTION_SELL
|
||||||
|
_new_action = timing_signal in _ACTION_BUY or timing_signal in _ACTION_SELL
|
||||||
|
if _old_tag != 'current_recommend' or (not _old_action and _new_action):
|
||||||
enqueue_recommend(conn, code) # 新推荐 → 摘要队列(batch 结束统一发)
|
enqueue_recommend(conn, code) # 新推荐 → 摘要队列(batch 结束统一发)
|
||||||
elif _old_tag == 'current_recommend':
|
elif _old_tag == 'current_recommend':
|
||||||
# 空信号或非动作信号 → 清除自动推荐(active_manual 不动)
|
# 空信号或非动作信号 → 清除自动推荐(active_manual 不动)
|
||||||
|
|||||||
Reference in New Issue
Block a user