feat: 进化中心界面——假设归纳(方向一)+B组候选(方向二)+策略温区资格概览可视化
This commit is contained in:
@@ -2257,6 +2257,46 @@ async function loadEvolutionBox() {
|
||||
}
|
||||
}
|
||||
|
||||
// ── 2026-08-16 假设归纳(方向一:数据驱动的优化假设)──
|
||||
if (d.hypotheses && d.hypotheses.length > 0) {
|
||||
h += '<div class="text-sm text-slate-400 mt-2 mb-1">🧪 数据归纳优化假设(方向一,基于最新交易数据):</div>';
|
||||
for (const hp of d.hypotheses.slice(0,6)) {
|
||||
const ex = hp.excess_pp != null ? ' <span class="text-amber-400 text-xs">Δ'+hp.excess_pp+'pp</span>' : '';
|
||||
h += '<div class="text-sm text-slate-300 mb-1 bg-slate-900/40 rounded px-2 py-1">' +
|
||||
'<span class="font-mono font-bold text-blue-300">'+hp.strategy+'</span> ' + hp.hypothesis + ex +
|
||||
'<div class="text-[10px] text-slate-500">证据: ' + (hp.evidence || '') + '</div></div>';
|
||||
}
|
||||
} else {
|
||||
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>';
|
||||
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.ok_rate||b.big_rate) + '%</span></div>';
|
||||
}
|
||||
} else {
|
||||
h += '<div class="text-sm text-slate-600 mb-1">暂无B组候选(全市场单/双因子区分度不足——数据事实,需多因子叠加或更细温区)</div>';
|
||||
}
|
||||
|
||||
// ── 2026-08-16 策略资格概览(温区适应评估)──
|
||||
if (d.qual_overview && d.qual_overview.length > 0) {
|
||||
h += '<div class="text-sm text-slate-400 mt-2 mb-1">📊 策略温区资格(长期/近期/当下):</div><div class="grid grid-cols-2 gap-1.5">';
|
||||
for (const qo of d.qual_overview) {
|
||||
const q = qo.qualification || {};
|
||||
const rgTxt = Object.entries(q).map(([rg, v]) =>
|
||||
'<span class="text-slate-500">'+rg.replace('trend_','')+'</span>' +
|
||||
(v.long_ok?'✅':'❌')+(v.mid_ok?'✅':'❌')+(v.short_ok?'✅':'❌')).join(' ');
|
||||
h += '<div class="bg-slate-900/40 rounded px-2 py-1 text-xs">' +
|
||||
'<span class="font-mono font-bold text-blue-300">'+qo.strategy+'</span> ' +
|
||||
'<span class="text-slate-500">'+qo.market+'</span><div class="text-[10px]">'+rgTxt+'</div></div>';
|
||||
}
|
||||
h += '</div>';
|
||||
}
|
||||
|
||||
box.innerHTML = h;
|
||||
} catch (e) { box.innerHTML = '<div class="text-sm text-red-400">进化模块加载失败: '+e.message+'</div>'; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user