diff --git a/static/index.html b/static/index.html index 41c73943..deafa8b4 100644 --- a/static/index.html +++ b/static/index.html @@ -32,6 +32,9 @@ body { background: #0f0f13; color: #e2e8f0; } .spec-btn.ai { color: #d29922; background: rgba(210,153,34,0.1); } .spec-btn.ai:hover { background: rgba(210,153,34,0.25); } .spec-btns { display: inline-flex; gap: 4px; } +.spec-btn.colinfo { color: #58a6ff; background: rgba(88,166,255,0.1); } +.spec-btn.colinfo:hover { background: rgba(88,166,255,0.25); } +.spec-th-help { margin-left: 3px; display: inline-flex; gap: 3px; vertical-align: middle; } ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: #0f0f13; } ::-webkit-scrollbar-thumb { background: #333; border-radius: 3px; } @@ -1198,6 +1201,39 @@ function closeSpecModal() { if (el) { el.classList.add('hidden'); el.classList.remove('flex'); } } +function showColumnHelp(colKey) { + // 显示策略表某列的含义说明(数据源:specs/strategy.json human_help.columns[colKey]) + const cacheKey = 'strategy:human'; + const cached = _specCache[cacheKey]; + const modal = document.getElementById('specModal'); + modal.classList.remove('hidden'); + modal.classList.add('flex'); + document.getElementById('specModalTitle').textContent = '加载中...'; + document.getElementById('specModalSubtitle').textContent = ''; + document.getElementById('specModalBody').innerHTML = '
' + (col.desc || '—') + '
' + col.see + '
| 适应温区 | ' + - th('version', '版本', 'text-left') + th('name', '名称', 'text-left') + + th('version', '版本', 'text-left', '策略版本标识', 'version') + th('name', '名称', 'text-left', '策略人话名称', 'name') + th('sizing_slots', '仓位', 'text-center') + '说明 | ' + - th('composite', '综合', 'text-right') + - th('universality', '普适', 'text-right') + - th('full_return', '全参与', 'text-right') + - th('capital_final', '最终资产', 'text-right') + - th('cagr', '年化', 'text-right') + - th('trades', '执行数', 'text-right', '实际参与组合模拟的交易笔数;信号总数=为鼠标悬停查看') + - th('hold', '均持仓', 'text-right') + - th('win_rate', '胜率', 'text-right') + - th('avg_profit', '平均收益', 'text-right') + th('sharpe', '夏普', 'text-right') + - th('profit_factor', '盈亏比', 'text-right') + th('max_dd', '资产回撤', 'text-right') + + th('composite', '综合', 'text-right', '多维度综合评分', 'composite') + + th('universality', '普适', 'text-right', '跨独立年份有效性(非特例)', 'universality') + + th('full_return', '全参与', 'text-right', '全参与模拟总收益', 'full_return') + + th('capital_final', '最终资产', 'text-right', '组合模拟期末资产', 'capital_final') + + th('cagr', '年化', 'text-right', '年化收益率', 'cagr') + + th('trades', '执行数', 'text-right', '实际参与组合模拟的交易笔数;信号总数=为鼠标悬停查看', 'trades') + + th('hold', '均持仓', 'text-right', '平均持仓天数', 'hold') + + th('win_rate', '胜率', 'text-right', '盈利笔数占比', 'win_rate') + + th('avg_profit', '平均收益', 'text-right', '每笔平均收益率', 'avg_profit') + th('sharpe', '夏普', 'text-right', '每单位波动超额收益', 'sharpe') + + th('profit_factor', '盈亏比', 'text-right', '总盈利/总亏损', 'profit_factor') + th('max_dd', '资产回撤', 'text-right', '组合模拟最大回撤', 'max_dd') + '操作 |
|---|
| 资格 | ' + - '可用 | ' + - th('win_rate', '胜率', 'text-right') + th('avg_profit', '平均收益', 'text-right') + th('trades', '成交/信号', 'text-right', '实际入场笔数 / 触发信号数(组合模拟10等分仓位下实际成交)') + - th('hold', '均持仓', 'text-right') + th('cagr', '年化', 'text-right') + th('composite', '综合', 'text-right') + - th('sharpe', '夏普', 'text-right') + th('profit_factor', '盈亏比', 'text-right') + - th('universality', '普适', 'text-right') + th('max_dd', '回撤', 'text-right') + + th('version', '版本', 'text-left', '策略版本标识', 'version') + th('name', '名称', 'text-left', '策略人话名称', 'name') + + '资格ⓘ§ | ' + + '可用ⓘ§ | ' + + th('win_rate', '胜率', 'text-right', '盈利笔数占比', 'win_rate') + th('avg_profit', '平均收益', 'text-right', '每笔平均收益率', 'avg_profit') + th('trades', '成交/信号', 'text-right', '实际入场笔数 / 触发信号数(组合模拟10等分仓位下实际成交)', 'trades') + + th('hold', '均持仓', 'text-right', '平均持仓天数', 'hold') + th('cagr', '年化', 'text-right', '年化收益率', 'cagr') + th('composite', '综合', 'text-right', '多维度综合评分', 'composite') + + th('sharpe', '夏普', 'text-right', '每单位波动超额收益', 'sharpe') + th('profit_factor', '盈亏比', 'text-right', '总盈利/总亏损', 'profit_factor') + + th('universality', '普适', 'text-right', '跨独立年份有效性(非特例)', 'universality') + th('max_dd', '回撤', 'text-right', '组合模拟最大回撤', 'max_dd') + '操作 |
|---|