fix: 证伪标记数据驱动——strategy_research加deprecated字段,前后端从数据读(替代硬编码),strategy_router排除证伪策略
This commit is contained in:
@@ -567,11 +567,26 @@ def api_research_strategies():
|
||||
_c.close()
|
||||
except Exception:
|
||||
pass
|
||||
# 2026-08-15 证伪标记(数据驱动):strategy_research.deprecated
|
||||
_deprecated = {}
|
||||
try:
|
||||
import sqlite3 as _sq2
|
||||
_c2 = _sq2.connect(str(DATA_DIR / "mofin.db"), timeout=10)
|
||||
for _r in _c2.execute(
|
||||
"SELECT version, MAX(deprecated) FROM strategy_research "
|
||||
"WHERE deprecated IS NOT NULL AND deprecated != '' GROUP BY version"
|
||||
).fetchall():
|
||||
_deprecated[_r[0]] = _r[1]
|
||||
_c2.close()
|
||||
except Exception:
|
||||
pass
|
||||
for s in strats:
|
||||
s['description'] = STRATEGY_DESCRIPTIONS.get(s['version'], {})
|
||||
s['regime_winrates'] = _regime_winrates.get(s['version'], {})
|
||||
# current = 当前温区激活(替代旧的 CURRENT_VERSIONS 硬编码)
|
||||
s['current'] = s['version'] in _active_set
|
||||
# 2026-08-15 证伪数据驱动:从 strategy_research.deprecated 读(替代前端硬编码)
|
||||
s['deprecated'] = _deprecated.get(s['version'])
|
||||
|
||||
# 2026-08-13 关键修复:激活策略必须始终在列表中(即使该 period 无回测记录)
|
||||
# 否则 2y 等默认周期下激活策略缺失(只显示 v_oversold)。
|
||||
|
||||
Reference in New Issue
Block a user