From 3eb19ea35773f08370f2012ea9acb34296996153 Mon Sep 17 00:00:00 2001 From: xxm Date: Thu, 13 Aug 2026 01:39:36 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4v=5Fcombo?= =?UTF-8?q?=E6=B3=A2=E6=AE=B5=E5=87=BA=E5=9C=BA=E7=A1=AC=E7=BC=96=E7=A0=81?= =?UTF-8?q?(=E8=BF=9E=E7=BB=AD2=E6=97=A5=E7=A0=B4MA10)=E2=80=94=E2=80=94k?= =?UTF-8?q?=E7=BA=BF=E5=BD=A2=E6=80=81=E7=94=B1LLM=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E8=AF=8D=E5=88=A4=E6=96=AD(=E8=80=81=E8=8E=AB=E5=8E=9F?= =?UTF-8?q?=E5=88=99),=20swing=E6=8C=81=E4=BB=93=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E8=B5=B0zones=E2=86=92LLM=E9=87=8D=E8=AF=84=E2=86=92timing=5Fs?= =?UTF-8?q?ignal=E7=BB=B4=E6=8C=81=E6=89=8D=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/profile-scripts/price_monitor.py | 34 ++++--------------------- 1 file changed, 5 insertions(+), 29 deletions(-) diff --git a/deploy/profile-scripts/price_monitor.py b/deploy/profile-scripts/price_monitor.py index a7ef07de..60c5ee63 100644 --- a/deploy/profile-scripts/price_monitor.py +++ b/deploy/profile-scripts/price_monitor.py @@ -525,35 +525,11 @@ def run_once(round_label=""): if code not in state: state[code] = {} - # ── v_combo波段出场检测(exit_mode=swing的持仓,2026-07-29落地)── - if d.get("exit_mode", "swing") == "swing" and (d.get("shares") or 0) > 0: - try: - import sqlite3 as _sq - _c2 = _sq.connect("/home/hmo/MoFin/data/mofin.db") - _ma = _c2.execute("SELECT close, high, ma10 FROM stock_daily WHERE code=? ORDER BY date DESC LIMIT 4", (code,)).fetchall() - _c2.close() - if len(_ma) >= 3: - _closes = [r[0] for r in _ma] - _highs = [r[1] for r in _ma] - _ma10s = [r[2] for r in _ma if r[2]] - if _ma10s: - _ma10 = _ma10s[0] - # 连续2日收破MA10 → 波段出场 - below = sum(1 for c in _closes[:2] if c < _ma10) - if below >= 2 and price < _ma10 and _can_push(code, "swing_out"): - outputs.append(f"📉 {name}({code}) {price} 连续破MA10({_ma10:.2f}) → 波段先出(可减仓)") - record_event(code, name, "swing_out", price, str(_ma10)) - _push_action("波段出场", f"📉 {name}({code}) {price} 连续2日破MA10({_ma10:.2f}) → 波段先出,建议减仓;收回MA10且创新高再进") - # 收回MA10且突破前一日高点 → 波段再进 - elif price > _ma10 and len(_highs) >= 2 and _highs[0] > _highs[1] and _can_push(code, "swing_re"): - outputs.append(f"📈 {name}({code}) {price} 收回MA10({_ma10:.2f})且突破前高 → 波段再进") - record_event(code, name, "swing_re", price, str(_ma10)) - _push_action("波段再进", f"📈 {name}({code}) {price} 收回MA10({_ma10:.2f})且突破前一日高点 → 波段再进,可接回") - except Exception as _e: - try: - record_alert(level="warning", source="price_monitor", title="波段检测异常", detail=str(_e)[:200], code=code) - except Exception: - pass + # ── v_combo波段出场(2026-08-13 已移除硬编码)── + # 老莫原则:k线形态判断在LLM提示词上体现(batch_reassess 提示词已含波段出场形态), + # 不在代码里硬编码"连续2日收破MA10"特定规则。 + # swing持仓的 stop_loss/entry_zone/take_profit_zone 已由通用 zones 循环触发 LLM 重评, + # timing_signal 含"卖出/止盈"才发推荐 → 统一"进区→重评→维持才发"。 # 时间预算检查:如果超时,跳过重评只做状态记录 _budget_low = (time.time() - start) > TIME_BUDGET