diff --git a/deploy/profile-scripts/mr_scanner.py b/deploy/profile-scripts/mr_scanner.py index 60930eed..ec9aae71 100644 --- a/deploy/profile-scripts/mr_scanner.py +++ b/deploy/profile-scripts/mr_scanner.py @@ -63,7 +63,30 @@ TOP_N = 10 def load_regime(): - """读取 market_regime 最新状态""" + """读取当前温区。优先平滑温区(regime_gate K=5),回退原始 market_regime。 + adx 仍需从原始表补(甜区门控用)。""" + # 平滑温区优先 + try: + from regime_gate import get_current_regime + _rg = get_current_regime() + if _rg and _rg.get("regime") != "unknown": + _base = {"date": _rg.get("date", ""), "regime": _rg.get("regime"), "smoothed": True} + # 补 adx/above_ma20(甜区门控需要) + 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() + conn.close() + if row: + _base["above_ma20"] = bool(row[1]) + _base["adx"] = row[2] + except Exception: + pass + return _base + except Exception: + pass + # 回退原始 try: conn = sqlite3.connect(str(DB_PATH), timeout=5) row = conn.execute( diff --git a/deploy/profile-scripts/predictive_oversold_scanner.py b/deploy/profile-scripts/predictive_oversold_scanner.py index 8baef16a..fae379e3 100644 --- a/deploy/profile-scripts/predictive_oversold_scanner.py +++ b/deploy/profile-scripts/predictive_oversold_scanner.py @@ -81,7 +81,29 @@ def _singleton_guard(max_age_sec, script_tag): def load_market_state(): - """读取大盘状态(market_regime 表 + 指数RSI/回撤)""" + """读取大盘状态(平滑温区优先,回退原始 market_regime + 指数RSI/回撤)""" + # 平滑温区优先 + try: + from regime_gate import get_current_regime + _rg = get_current_regime() + if _rg and _rg.get("regime") != "unknown": + _base = {"date": _rg.get("date", ""), "regime": _rg.get("regime"), "smoothed": True} + # 补 adx/above_ma20 + 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() + conn.close() + if row: + _base["above_ma20"] = bool(row[1]) + _base["adx"] = row[2] + except Exception: + pass + return _base + except Exception: + pass + # 回退原始 try: conn = sqlite3.connect(str(DB_PATH), timeout=5) row = conn.execute(