fix: 温区表迁移后读取方补market过滤——regime_gate/mr_scanner/predictive_oversold读market_regime/market_indicators加WHERE market=a,防读到港股行污染A股温区门控(明天盘中scanner要用)

This commit is contained in:
hmo
2026-08-14 19:01:41 +08:00
parent 0a1a951b18
commit 1f6f461bab
3 changed files with 9 additions and 8 deletions
+3 -3
View File
@@ -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]}
@@ -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:
+3 -2
View File
@@ -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: