fix: v_oversold综合分=0根因——①loadStrategyList竞态(初始1m请求覆盖2y渲染,周期错乱)②温区行综合误用整体conf(应温区自己样本量)

This commit is contained in:
xxm
2026-08-15 14:26:46 +08:00
parent 97c0632d9a
commit e73ad9ac0c
+9 -3
View File
@@ -2153,8 +2153,9 @@ function renderResearch() {
'<div id="strategyList"><div class="text-slate-500 text-sm">加载中...</div></div>' +
'<div id="strategyDetail" class="mt-4"></div>' +
'</div>';
// 首次渲染即加载策略列表(无子Tab切换)
loadStrategyList();
// 首次渲染即加载策略列表(无子Tab切换)
// 2026-08-15 修复:不能在此直接 loadStrategyList()——此时 btPeriod.value 还是初始默认 '1m'
// 与下方恢复 savedPt='2y' 后的调用并发竞态,1m 响应后到会覆盖 2y 渲染(周期错乱+综合分被小样本置信打崩)。
loadEvolutionBox();
loadStrategyRegimeBanner();
// 恢复用户上次选择的周期(防自动刷新重置,2026-07-30老爸抓包)
@@ -2515,7 +2516,12 @@ function renderStrategyTable(strategies) {
const sh = Math.min(Math.max((rwPf.sharpe_ratio || 0), 0), 20) / 20 * 20;
const pfc = Math.min((rwPf.profit_factor || 0), 5) / 5 * 15;
const dd = (1 - Math.min(rwPf.portfolio_max_dd_pct || 0, 50) / 50) * 15;
comp = Math.round((ret + w + sh + pfc + dd) * (s._confidence || 1));
// 2026-08-15:温区行置信用温区自己样本量(regime_winrates 来自全量 strategy_regime_perf
// 与所选周期无关)——用整体 conf 会把温区综合分错误打折(如 1m 视角整体只有 1 笔 → 全部归零)
const rn = tr || 0;
const rm = rw.universality ? (rw.universality.months || 0) : 0;
const rconf = Math.min(1, rn / 40) * (rm > 0 ? Math.min(1, rm / 6) : 1);
comp = Math.round((ret + w + sh + pfc + dd) * rconf);
}
const cagr = rwPf ? rwPf.cagr_pct : null;
const ddV = rwPf ? rwPf.portfolio_max_dd_pct : null;