From 8cc0aa13c569715046ed6dcc80870217298d91f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=A5=E5=BE=AE?= Date: Wed, 8 Jul 2026 11:19:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20reassess=E7=BB=93=E6=9E=9C=E5=86=99?= =?UTF-8?q?=E5=85=A5strategy=5Fevaluations=E8=A1=A8(=E6=8C=81=E4=BB=93/?= =?UTF-8?q?=E8=87=AA=E9=80=89/=E6=97=A0=E7=AD=96=E7=95=A53=E7=A7=8D?= =?UTF-8?q?=E8=B7=AF=E5=BE=84)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/mofin_collect.py | 43 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/scripts/mofin_collect.py b/scripts/mofin_collect.py index efcdfddb..904cd69e 100644 --- a/scripts/mofin_collect.py +++ b/scripts/mofin_collect.py @@ -74,6 +74,21 @@ try: ) if result and result.get("action"): print(f" 🔄 FORCE_REASSESS {code} {name}: {hours_stale:.0f}h过期→已立即重评→{result['action'][:60]}", flush=True) + # 写strategy_evaluations表(产生即落盘,不断链) + try: + cur.execute(""" + INSERT INTO strategy_evaluations + (code, eval_type, status, new_stop_loss, new_tp, reason, created_at) + VALUES (?, 'reassess', 'completed', ?, ?, ?, ?) + """, ( + code, + result.get("stop_loss"), + result.get("take_profit"), + f"{result.get('action','')} RR={result.get('rr_ratio','?')} 信号={result.get('timing_signal','')}", + now.isoformat() + )) + except Exception as eval_err: + print(f" ⚠️ 写evaluation表失败: {eval_err}", flush=True) else: print(f" ⚠️ FORCE_REASSESS {code} {name}: 重评返回空结果", flush=True) except Exception as e: @@ -105,6 +120,20 @@ try: ) if result and result.get("action"): print(f" 🔄 CREATE_STRATEGY {code} {name}: 无策略→已创建→{result['action'][:60]}", flush=True) + try: + cur.execute(""" + INSERT INTO strategy_evaluations + (code, eval_type, status, new_stop_loss, new_tp, reason, created_at) + VALUES (?, 'reassess', 'completed', ?, ?, ?, ?) + """, ( + code, + result.get("stop_loss"), + result.get("take_profit"), + f"{result.get('action','')} RR={result.get('rr_ratio','?')} 信号={result.get('timing_signal','')}", + now.isoformat() + )) + except Exception as eval_err: + print(f" ⚠️ 写evaluation表失败: {eval_err}", flush=True) else: print(f" ⚠️ CREATE_STRATEGY {code} {name}: 重评返回空", flush=True) except Exception as e: @@ -130,6 +159,20 @@ try: if result and result.get("action"): wl_stale += 1 print(f" 📋 WATCHLIST_REASSESS {code} {name}: →{result['action'][:60]}", flush=True) + try: + cur.execute(""" + INSERT INTO strategy_evaluations + (code, eval_type, status, new_stop_loss, new_tp, reason, created_at) + VALUES (?, 'reassess', 'completed', ?, ?, ?, ?) + """, ( + code, + result.get("stop_loss"), + result.get("take_profit"), + f"自选:{result.get('action','')} RR={result.get('rr_ratio','?')} 信号={result.get('timing_signal','')}", + now.isoformat() + )) + except Exception as eval_err: + print(f" ⚠️ 写evaluation表失败: {eval_err}", flush=True) else: wl_fresh += 1 except Exception as e: