From 1f6f461bab0a677fb5d344f7b0d6ed857fdab79e Mon Sep 17 00:00:00 2001 From: hmo Date: Fri, 14 Aug 2026 19:01:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B8=A9=E5=8C=BA=E8=A1=A8=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=E5=90=8E=E8=AF=BB=E5=8F=96=E6=96=B9=E8=A1=A5market?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E2=80=94=E2=80=94regime=5Fgate/mr=5Fscanner/?= =?UTF-8?q?predictive=5Foversold=E8=AF=BBmarket=5Fregime/market=5Findicato?= =?UTF-8?q?rs=E5=8A=A0WHERE=20market=3Da,=E9=98=B2=E8=AF=BB=E5=88=B0?= =?UTF-8?q?=E6=B8=AF=E8=82=A1=E8=A1=8C=E6=B1=A1=E6=9F=93A=E8=82=A1?= =?UTF-8?q?=E6=B8=A9=E5=8C=BA=E9=97=A8=E6=8E=A7(=E6=98=8E=E5=A4=A9?= =?UTF-8?q?=E7=9B=98=E4=B8=ADscanner=E8=A6=81=E7=94=A8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/profile-scripts/mr_scanner.py | 6 +++--- deploy/profile-scripts/predictive_oversold_scanner.py | 6 +++--- deploy/profile-scripts/regime_gate.py | 5 +++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/deploy/profile-scripts/mr_scanner.py b/deploy/profile-scripts/mr_scanner.py index ec9aae71..750fb5e7 100644 --- a/deploy/profile-scripts/mr_scanner.py +++ b/deploy/profile-scripts/mr_scanner.py @@ -76,7 +76,7 @@ def load_regime(): conn = sqlite3.connect(str(DB_PATH), timeout=5) row = conn.execute( "SELECT date, above_ma20, adx, regime FROM market_regime " - "ORDER BY date DESC LIMIT 1").fetchone() + "WHERE market='a' ORDER BY date DESC LIMIT 1").fetchone() conn.close() if row: _base["above_ma20"] = bool(row[1]) @@ -90,8 +90,8 @@ def load_regime(): try: conn = sqlite3.connect(str(DB_PATH), timeout=5) row = conn.execute( - "SELECT date, above_ma20, adx, regime FROM market_regime " - "ORDER BY date DESC LIMIT 1").fetchone() + "SELECT date, above_ma20, adx, regime FROM market_regime " + "WHERE market='a' ORDER BY date DESC LIMIT 1").fetchone() conn.close() if row: return {"date": row[0], "above_ma20": bool(row[1]), "adx": row[2], "regime": row[3]} diff --git a/deploy/profile-scripts/predictive_oversold_scanner.py b/deploy/profile-scripts/predictive_oversold_scanner.py index fae379e3..02c846c9 100644 --- a/deploy/profile-scripts/predictive_oversold_scanner.py +++ b/deploy/profile-scripts/predictive_oversold_scanner.py @@ -93,7 +93,7 @@ def load_market_state(): conn = sqlite3.connect(str(DB_PATH), timeout=5) row = conn.execute( "SELECT date, above_ma20, adx, regime FROM market_regime " - "ORDER BY date DESC LIMIT 1").fetchone() + "WHERE market='a' ORDER BY date DESC LIMIT 1").fetchone() conn.close() if row: _base["above_ma20"] = bool(row[1]) @@ -108,7 +108,7 @@ def load_market_state(): conn = sqlite3.connect(str(DB_PATH), timeout=5) row = conn.execute( "SELECT date, above_ma20, adx, regime FROM market_regime " - "ORDER BY date DESC LIMIT 1").fetchone() + "WHERE market='a' ORDER BY date DESC LIMIT 1").fetchone() conn.close() if row: return {"date": row[0], "above_ma20": bool(row[1]), "adx": row[2], "regime": row[3]} @@ -123,7 +123,7 @@ def compute_market_filters(): try: conn = sqlite3.connect(str(DB_PATH), timeout=5) row = conn.execute( - "SELECT mkt_rsi, mkt_dd60, mkt_down_days FROM market_indicators ORDER BY date DESC LIMIT 1" + "SELECT mkt_rsi, mkt_dd60, mkt_down_days FROM market_indicators WHERE market='a' ORDER BY date DESC LIMIT 1" ).fetchone() conn.close() if not row: diff --git a/deploy/profile-scripts/regime_gate.py b/deploy/profile-scripts/regime_gate.py index 9878cbf4..a764ba7d 100644 --- a/deploy/profile-scripts/regime_gate.py +++ b/deploy/profile-scripts/regime_gate.py @@ -40,12 +40,13 @@ def get_current_regime(use_smoothed=True): return _cache_regime except Exception: pass - # 2. 原始 market_regime 表 + # 2. 原始 market_regime 表(A股——2026-08-14 表加 market 列后必须过滤, + # 否则 ORDER BY date DESC LIMIT 1 可能读到港股行当 A 股温区) try: conn = sqlite3.connect(str(DB), timeout=30) conn.execute("PRAGMA busy_timeout=30000") row = conn.execute( - "SELECT date, regime FROM market_regime ORDER BY date DESC LIMIT 1" + "SELECT date, regime FROM market_regime WHERE market='a' ORDER BY date DESC LIMIT 1" ).fetchone() conn.close() if row: