fix: scanner温区读取统一regime_gate平滑温区——mr_scanner/predictive_oversold的regime判定优先平滑K=5(regime_gate),回退原始market_regime,adx仍读原始表(甜区门控); 避免被单日噪音误导; s2_scanner保持RSI恐慌门控不变(温度维度,正确设计)

This commit is contained in:
hmo
2026-08-13 14:03:16 +08:00
parent 2fa9faf087
commit bfe0b9c0b5
2 changed files with 47 additions and 2 deletions
+24 -1
View File
@@ -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(
@@ -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(