feat: 迁移 Alpha 指标配色并以 bps 展示 Margin
This commit is contained in:
@@ -67,6 +67,31 @@ const metricLabels = {
|
|||||||
prod_correlation: "平台生产相关性",
|
prod_correlation: "平台生产相关性",
|
||||||
pnl: "IS PnL",
|
pnl: "IS PnL",
|
||||||
};
|
};
|
||||||
|
const metricColorThresholds: Record<string, [number, number, number]> = {
|
||||||
|
sharpe: [1.5, 1.0, 0.5],
|
||||||
|
fitness: [0.75, 0.5, 0.25],
|
||||||
|
returns: [0.15, 0.1, 0.05],
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Preserve the legacy list's strict thresholds; missing values have no rating. */
|
||||||
|
function metricColor(key: string, value: unknown): string | undefined {
|
||||||
|
const thresholds = metricColorThresholds[key];
|
||||||
|
if (!thresholds || typeof value !== "number" || !Number.isFinite(value))
|
||||||
|
return undefined;
|
||||||
|
if (value > thresholds[0]) return "var(--semi-color-success)";
|
||||||
|
if (value > thresholds[1]) return "var(--semi-color-info)";
|
||||||
|
if (value > thresholds[2]) return "var(--semi-color-warning)";
|
||||||
|
return "var(--semi-color-danger)";
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Convert Margin only for display; filtering and sorting still use raw values. */
|
||||||
|
function formatMetric(key: string, value: unknown): string {
|
||||||
|
if (key !== "margin") return formatNumber(value, 3);
|
||||||
|
return typeof value === "number" && Number.isFinite(value)
|
||||||
|
? `${formatNumber(value * 10000, 2)}bps`
|
||||||
|
: "—";
|
||||||
|
}
|
||||||
|
|
||||||
const checkLabels = {
|
const checkLabels = {
|
||||||
PENDING: "待检查",
|
PENDING: "待检查",
|
||||||
PRE_CHECK: "预检通过",
|
PRE_CHECK: "预检通过",
|
||||||
@@ -478,8 +503,11 @@ export function AlphaPage({
|
|||||||
: 112,
|
: 112,
|
||||||
align: "right",
|
align: "right",
|
||||||
render: (_, row) => (
|
render: (_, row) => (
|
||||||
<span className="numeric">
|
<span
|
||||||
{formatNumber(row![key as keyof Alpha], key === "margin" ? 6 : 3)}
|
className="numeric"
|
||||||
|
style={{ color: metricColor(key, row![key as keyof Alpha]) }}
|
||||||
|
>
|
||||||
|
{formatMetric(key, row![key as keyof Alpha])}
|
||||||
</span>
|
</span>
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
|
|||||||
Reference in New Issue
Block a user