feat(factor): tears报告方案A原生重构+「加入对比」做实(用户08-29拍板) [vps]
①后端tears序列化:sanguo_factor/tears_data.py新模块,alphalens已算分层序列(日度IC/月度聚合/十分组累计净值/多空Q10−Q1净值+最大回撤/去重叠年化/因子秩自相关)在分析时序列化为{factor}_tears.json,与tearsheet同源;FactorReport加tears_paths,GET /task/{id}/tears/{factor}端点(token header),_persist_factor同步落DB
②前端tears页:TearsPanel.vue按设计稿tab①——指标条7格+月度IC柱(红正绿负)/累计IC线双轴+月度IC热力图(年×月,CSS格)+分组累计净值Q1/Q5/Q10+多空净值(琥珀+面积+○最大回撤标注)+十分组年化(±5%虚线)+IC衰减(1/5/10D),1/5/10D全页联动;Result.vue的iframe→原生渲染;旧任务404自动回退iframe旧alphalens报告
③加入对比(设计稿tab②纯前端):factorCompare store(localStorage持久化,2~6个)+排行榜行内「+对比/✓已选」列+详情页死按钮做实(选中青色态)+全局底部托盘CompareTray(chips可删/清空/对比N因子→)+对比页Compare.vue(指标并排·行最优青色高亮/累计IC叠加多线/月度IC序列Pearson相关性矩阵前端算/十分组小倍数SVG)
测试:tears_data纯函数5+全链真实alphalens6(合成因子IC>0/分层单调/JSON可序列化)+analyzer写盘/容错2+端点401/404/200共3;factor+api+orchestrator 317全绿;npm run build绿
This commit is contained in:
@@ -34,6 +34,40 @@ export function reportUrl(taskId: string, factor: string): string {
|
||||
return `/api/v1/task/${taskId}/report/${factor}?token=${encodeURIComponent(auth.token ?? '')}`
|
||||
}
|
||||
|
||||
// —— Tears 分层序列(方案A:分析时序列化,前端 ECharts 暗色渲染) ——
|
||||
|
||||
export interface TearsPeriodData {
|
||||
count: number
|
||||
ic_mean: number | null
|
||||
ic_std: number | null
|
||||
icir: number | null
|
||||
t_stat: number | null
|
||||
win_rate: number | null
|
||||
ic_dates: string[]
|
||||
ic_values: number[]
|
||||
monthly_ic: MonthlyIcPoint[]
|
||||
quantile_keys: string[]
|
||||
nav_dates: string[]
|
||||
quantile_nav: Record<string, number[]>
|
||||
quantile_annual: Record<string, number>
|
||||
ls_nav: number[]
|
||||
ls_annual: number
|
||||
ls_max_dd: number
|
||||
}
|
||||
|
||||
export interface TearsData {
|
||||
factor: string
|
||||
generated_at?: string
|
||||
factor_autocorr: number | null
|
||||
periods: Record<string, TearsPeriodData>
|
||||
}
|
||||
|
||||
export async function getTearsData(taskId: string, factor: string): Promise<TearsData> {
|
||||
const { data } = await apiClient.get<TearsData>(`/task/${taskId}/tears/${factor}`)
|
||||
return data
|
||||
}
|
||||
|
||||
|
||||
// —— Factor Evaluation API ——
|
||||
|
||||
export interface EvalRun {
|
||||
|
||||
Reference in New Issue
Block a user