feat: add local correlation filters and full recheck action
Deploy production / deploy (push) Successful in 54s

This commit is contained in:
yuxuanhui
2026-09-13 00:03:17 +08:00
parent bbf0e37130
commit 2080f812b4
13 changed files with 309 additions and 15 deletions
+34 -1
View File
@@ -376,6 +376,8 @@ export function AlphaPage({
setIdText("");
if (kind === "pnl_backfill" && job.total === 0)
Toast.success("已提交 Alpha 的 PnL 已齐全,无需补取");
if (kind === "self_correlation_recheck" && job.total === 0)
Toast.success("没有预检通过或检查通过的 Alpha,无需重检");
onTask();
} catch (e) {
Toast.error((e as Error).message);
@@ -766,6 +768,24 @@ export function AlphaPage({
onChange={(v) => updateDraft("check_type", v)}
/>
</label>
<label>
本地自相关状态
<Select
aria-label="本地自相关状态"
placeholder="全部状态"
showClear
value={draft.local_correlation_status || undefined}
optionList={[
{ value: "not_cached", label: "未检测" },
{ value: "stale", label: "待重算" },
...Object.entries(correlationLabels).map(([value, label]) => ({
value,
label,
})),
]}
onChange={(v) => updateDraft("local_correlation_status", v)}
/>
</label>
<label>
自定义标签
<Select
@@ -864,7 +884,10 @@ export function AlphaPage({
}
/>
</label>
{Object.entries(metricLabels).map(([key, label]) => (
{Object.entries({
...metricLabels,
local_correlation: "本地自相关",
}).map(([key, label]) => (
<label key={key}>
{label}
<div className="range-inputs">
@@ -896,6 +919,7 @@ export function AlphaPage({
</Checkbox>
</div>
<p className="muted">
本地自相关范围为 -1~1,按缓存数值筛选,可搭配状态排除待重算记录。
数值筛选使用平台原始值,例如 Turnover 0.15 表示 15%。
检查结果仅汇总已同步的平台检查;预检通过不代表可以提交,活动资格可用自定义标签记录。
</p>
@@ -1127,6 +1151,15 @@ export function AlphaPage({
>
导入 Alpha ID
</Button>
<Button
icon={<IconRefresh aria-hidden="true" />}
loading={busy === "self_correlation_recheck"}
disabled={Boolean(busy)}
title="重新计算全部预检通过和检查通过的 Alpha 本地自相关,不受筛选和分页影响"
onClick={() => void newTask("self_correlation_recheck")}
>
重检自相关
</Button>
<Button
icon={<IconRefresh aria-hidden="true" />}
theme="solid"