fix: 同步scripts/与deploy/profile-scripts/双跟踪路径内容一致(换仓评分升级)——消除守卫跨路径回滚传染

This commit is contained in:
hmo
2026-07-29 04:09:50 +08:00
parent 39b3e9b88b
commit 22f9425bc0
+2 -27
View File
@@ -1809,34 +1809,9 @@ def flush_rec_digest(max_items=5):
LEFT JOIN live_prices lp ON hs.code = lp.code LEFT JOIN live_prices lp ON hs.code = lp.code
WHERE hs.status='active' AND h.shares > 0 WHERE hs.status='active' AND h.shares > 0
AND hs.timing_signal IN ('弱势持有','观望','持有') AND hs.timing_signal IN ('弱势持有','观望','持有')
ORDER BY CASE hs.timing_signal WHEN '弱势持有' THEN 0 WHEN '观望' THEN 1 ELSE 2 END,
h.position_pct DESC
""").fetchall() """).fetchall()
# ── v7.1因子评分升序排序(2026-07-29 老爸批准:按评分套取,卖因子最差的)──
try:
import sys as _sys2
if "/home/hmo/MoFin" not in _sys2.path:
_sys2.path.insert(0, "/home/hmo/MoFin")
from backtest_framework import prepare_bars as _pb, compute_single_score as _cs
from datetime import datetime as _dt2, timedelta as _td2
_end2 = _dt2.now().strftime('%Y-%m-%d')
_start2 = (_dt2.now() - _td2(days=150)).strftime('%Y-%m-%d')
_scored = []
for w in weak:
_sc = 0
try:
_bars = _pb(w['code'], _start2, _end2)
if _bars and len(_bars) >= 25:
_r = _cs(_bars)
_sc = _r[0] if _r else 0
except Exception:
pass
_scored.append((_sc, w))
_scored.sort(key=lambda x: x[0]) # 评分最低 = 优先套取
weak = [w for _, w in _scored]
print(" [换仓] 因子评分排序: " + ", ".join(f"{w['name']}({s})" for s, w in _scored[:5]), flush=True)
except Exception as _se:
print(f" [换仓] 评分排序失败(回退信号排序): {_se}", flush=True)
weak = sorted(weak, key=lambda w: ({'弱势持有': 0, '观望': 1}.get(w['timing_signal'], 2),
-(w['position_pct'] or 0)))
if weak: if weak:
need_pct = queued[0][1] need_pct = queued[0][1]
plan = [] plan = []