fix: v_oversold综合分=0根因——①loadStrategyList竞态(初始1m请求覆盖2y渲染,周期错乱)②温区行综合误用整体conf(应温区自己样本量)
This commit is contained in:
+9
-3
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user