feat(frontend): 结果页组件—MetricCards指标卡+5图(基准/Alpha/Beta/波动率/回撤)+API封装
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user