fix: scanner温区读取统一regime_gate平滑温区——mr_scanner/predictive_oversold的regime判定优先平滑K=5(regime_gate),回退原始market_regime,adx仍读原始表(甜区门控); 避免被单日噪音误导; s2_scanner保持RSI恐慌门控不变(温度维度,正确设计)
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user