feat(frontend): 结果页组件—MetricCards指标卡+5图(基准/Alpha/Beta/波动率/回撤)+API封装

This commit is contained in:
2026-07-11 13:54:05 +08:00
parent 304844903c
commit d0315ccbdf
13 changed files with 683 additions and 0 deletions
+44
View File
@@ -129,3 +129,47 @@ export async function getOptimizationResults(taskId: string): Promise<OptRow[]>
return data.results
}
// ----- Task 5+6: Backtest result page components -----
export interface RelativeMetrics {
total_return: number
annual_return: number
alpha: number
beta: number
sharpe_ratio: number
sortino_ratio: number
information_ratio: number
annual_volatility: number
max_drawdown: number
benchmark_return: number
benchmark_volatility: number
}
export interface BenchmarkCurveData {
dates: string[]
strategy: number[]
benchmark: number[]
}
export interface RiskSeriesData {
dates: string[]
alpha: number[]
beta: number[]
drawdown: number[]
}
export async function getRelativeMetrics(taskId: string): Promise<RelativeMetrics> {
const { data } = await apiClient.get<{ relative_metrics: RelativeMetrics }>(`/task/${taskId}/result`)
return data.relative_metrics
}
export async function getBenchmarkCurve(taskId: string): Promise<BenchmarkCurveData> {
const { data } = await apiClient.get<BenchmarkCurveData>(`/task/${taskId}/benchmark-curve`)
return data
}
export async function getRiskSeries(taskId: string): Promise<RiskSeriesData> {
const { data } = await apiClient.get<RiskSeriesData>(`/task/${taskId}/risk-series`)
return data
}