diff options
Diffstat (limited to 'frontend/src/pages/ProjectResultsTab.svelte')
| -rw-r--r-- | frontend/src/pages/ProjectResultsTab.svelte | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/frontend/src/pages/ProjectResultsTab.svelte b/frontend/src/pages/ProjectResultsTab.svelte index f479116..c08bf3f 100644 --- a/frontend/src/pages/ProjectResultsTab.svelte +++ b/frontend/src/pages/ProjectResultsTab.svelte @@ -14,6 +14,7 @@ metricsLabels, metricsRow } from '../lib/format'; + import { capitalReporting } from '../lib/capitalMetrics'; import type { Run, BacktestResult } from '../lib/types'; interface Props { @@ -106,6 +107,8 @@ const ml = $derived(metricsLabels()); const mr = $derived(result ? metricsRow(result.metrics) : []); + // 投入口径 reporting(任务 A):投入/持仓估值/回报,口径注明不含闲置现金 + const cap = $derived(result ? capitalReporting(result) : null); </script> <div class="stack"> @@ -185,6 +188,23 @@ </div> </div> {/if} + {#if cap} + <div class="metric-grid" data-testid="capital-reporting"> + <div class="metric"> + <div class="mlabel">累计投入</div> + <div class="mvalue">{formatMoney(cap.invested)}</div> + </div> + <div class="metric"> + <div class="mlabel">最终持仓估值</div> + <div class="mvalue">{formatMoney(cap.holdingValue)}</div> + </div> + <div class="metric"> + <div class="mlabel">投入回报率</div> + <div class="mvalue">{cap.returnPct ?? '—'}</div> + </div> + </div> + <p class="hint">投入口径不含初始账户闲置现金:累计投入 = 首日现金 − 末日现金;持仓估值 = 末日持仓 × 最新收盘价。</p> + {/if} <p class="hint"> 平仓回合数为已完成的开仓并全部平仓的完整回合(1 个回合 = 1 次平仓),不含撤单与未平仓的单笔成交;成交记录中的“金额”为真实成交额(数量 × 成交价),非持仓成本。结果非投资建议;未完全模拟流动性/涨跌停等限制。 引擎 {result.engine?.name} {result.engine?.version} |
