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: