发起回测
{#if !busyDatasets && datasetsReady.length === 0 && !cfgErr}
{/if}
{#if datasetsReady.length > 0}
{#if needAck}
⚠
{/if}
{#if selectedDataset}
本次回测与该数据集、当前策略快照一同记录,可按原始条件重跑
{/if}
{/if}
最近一次回测
{#if latest}
Run 分支 {latest.version_id?.slice(0,8) ?? '—'}
{runStatusLabel[latest.status]}
{/if}
{#if latest}
启动时间{fmtDateTime(latest.created_at)}
{#if latest.started_at}开始执行{fmtDateTime(latest.started_at)}{/if}
{#if latest.finished_at}结束时间{fmtDateTime(latest.finished_at)}{/if}
代码版本{latest.version_id.slice(0, 10)}
数据集{latest.dataset_id?.slice(0, 8)}…
资金{formatMoney(latest.config.capital)} · 佣金 {fmtPct(latest.config.commission, 4)} · 滑点 {fmtPct(latest.config.slippage, 4)}
{#if latest.error}
✕{latest.error}
{/if}
{#if latest.result?.warnings?.length}
⚠
{#each latest.result.warnings as w, i (i)}- {w}
{/each}
{/if}
{#if latest.status === 'succeeded' && latest.result}
{/if}
{#if canCancel}
{/if}
{#if canRerun}
{/if}
{:else}
{/if}
回测历史
{#if history && history.length > 0}
启动时间
状态
资金/佣金/滑点
数据集
结果
{#each history as h (h.id)}
{fmtDateTime(h.created_at)}
{h.status === 'succeeded' ? '完成' : h.status === 'failed' ? '失败' : h.status === 'running' ? '执行中' : h.status === 'cancelled' ? '已取消' : '排队中'}
{formatMoney(h.config.capital)} · {fmtPct(h.config.commission, 4)} / {fmtPct(h.config.slippage, 4)}
{h.dataset_id?.slice(0, 8)}…
{/each}
{/if}