feat: per_stock_reassess也落库策略判断(从full_analysis复用parse_response提取策略失效/切换)(老莫:重评策略切换决策全路径生效)

This commit is contained in:
xxm
2026-08-18 20:31:27 +08:00
parent 6b846941aa
commit 8b5499bab1
@@ -470,6 +470,26 @@ def main():
_rc_conn.close()
if _sig:
print(f" ✅ LLM信号={_sig} 已对齐")
# 2026-08-18 策略判断落库(复用 batch 的 parse_response 从 full_analysis 提取)
try:
from batch_reassess import parse_response as _pr2
_p2 = _pr2(_full_analysis_text or "")
_j2 = _p2.get("strategy_judge", "")
_st2 = _p2.get("strategy_switch_to", "")
if _j2 == "策略失效重定":
_rc_conn = __import__('sqlite3').connect('/home/hmo/MoFin/data/mofin.db')
_rc_conn.execute("UPDATE holding_strategies SET strategy_state='invalidated' WHERE code=? AND status='active'", (code,))
_rc_conn.commit(); _rc_conn.close()
print(f" ✅ 策略判断=策略失效重定,strategy_state→invalidated")
elif _j2 == "更换策略归类" and _st2:
_rc_conn = __import__('sqlite3').connect('/home/hmo/MoFin/data/mofin.db')
_rc_conn.execute("UPDATE holding_strategies SET strategy_attributed=?, strategy_state='switched', strategy_provenance='llm_attributed' WHERE code=? AND status='active'", (_st2, code))
_rc_conn.commit(); _rc_conn.close()
print(f" ✅ 策略判断=更换策略归类,strategy_attributed={_st2}")
elif _j2:
print(f" ️ 策略判断={_j2}(维持/修改参数,不落库)")
except Exception as _pe:
print(f" ⚠️ 策略判断落库失败: {_pe}")
# 冷却期已更新(reassessed_at写入)
except Exception as _dbe:
print(f" [DB FAIL] holding_strategies 写入失败: {_dbe}", file=sys.stderr)