feat: 进化中心AB对照——B组候选显示对照A组激活策略

This commit is contained in:
xxm
2026-08-16 14:29:36 +08:00
parent 63dfb1ef92
commit 2c0a0ef947
+8 -5
View File
@@ -2270,16 +2270,19 @@ async function loadEvolutionBox() {
h += '<div class="text-sm text-slate-600 mt-2 mb-1">🧪 假设归纳: 暂无显著假设(交易样本不足或特征均匀)</div>';
}
// ── 2026-08-16 B组候选(方向二:由果及因挖掘AB对照)──
h += '<div class="text-sm text-slate-400 mt-2 mb-1">🔬 B组候选挖掘(方向二,由果及因 vs A对照):</div>';
// ── 2026-08-16 B组候选 + AB对照(方向二:由果及因挖掘 vs A组)──
h += '<div class="text-sm text-slate-400 mt-2 mb-1">🔬 B组挖掘 + AB对照(方向二:</div>';
// A组 = 当前激活策略(baseline),B组 = 候选
const aNames = d.baseline ? Object.keys(d.baseline) : [];
if (d.b_group && d.b_group.length > 0) {
for (const b of d.b_group.slice(0,6)) {
h += '<div class="text-sm text-slate-300 mb-1 bg-slate-900/40 rounded px-2 py-1">' +
'<span class="text-emerald-400 font-bold">['+b.regime+']</span> ' + b.hypothesis +
' <span class="text-slate-500 text-xs">' + (b.trades_est||'?') + '样本 好果率' + (b.good_rate || b.ok_rate || b.big_rate || '?') + '%</span></div>';
'<div><span class="text-emerald-400 font-bold">[B组 '+b.regime.replace('trend_','')+']</span> ' + b.hypothesis +
' <span class="text-slate-500 text-xs">' + (b.trades_est||'?') + '样本 好果率' + (b.good_rate || b.ok_rate || b.big_rate || '?') + '%</span></div>' +
'<div class="text-[10px] text-slate-500">对照A组(' + b.regime.replace('trend_','') + '): ' + (aNames.join(', ') || '—') + '</div></div>';
}
} else {
h += '<div class="text-sm text-slate-600 mb-1">暂无B组候选(全市场单/双因子区分度不足——数据事实,需多因子叠加或更细温区</div>';
h += '<div class="text-sm text-slate-600 mb-1">暂无B组候选(由果及因扫描中,数据事实:震荡/下跌市因子区分度不足</div>';
}
// ── 2026-08-16 策略资格概览(温区适应评估)──