Score Calibration - Score Buckets vs Actual Returns
计算公式:
个股收益率 = (下一个交易日收盘价 − 分析日收盘价) / 分析日收盘价 × 100%
桶平均收益率 = mean(桶内所有个股收益率)
桶胜率 = count(个股收益率 > 0) / 桶内总数 × 100%
数据来源:analysis 表评分 + kline_cache 表实际收盘价
Calibration Details
| Bucket | Count | Avg 1D Return | Win Rate |
IC (Information Coefficient) Per Core
计算公式:
每日 IC = Spearman 秩相关系数(各核评分, 次日收益率)
平均 IC = mean(所有交易日 IC)
ICIR (信息比) = 平均 IC / IC 标准差
IC 胜率 = count(IC > 0 的交易日) / 总交易日 × 100%
IC > 0 表示评分越高次日收益越好;ICIR > 2 表示预测能力稳定
IC Summary
| Core | Avg IC | IC Std | ICIR | IC Win Rate | Sample Days |
Action Accuracy - Win Rate by Signal
计算公式:
个股 forward 日收益率 = (forward日后收盘价 − 分析日收盘价) / 分析日收盘价 × 100%
某操作建议的胜率 = count(该建议中收益率 > 0 的个股) / 该建议总个股数 × 100%
某操作建议的平均收益率 = mean(该建议中所有个股收益率)
forward 默认 5 个交易日;衡量"买入/卖出"等操作信号的预测准确度
Action Details
| Action | Count | Avg Return | Win Rate |
Cumulative Return (Top 20 Daily Rebalance)
计算公式:
每日选取评分最高的 Top N 只股票(默认 20 只)等权买入
个股次日收益 = (次日收盘价 − 当日收盘价) / 当日收盘价 × 100%
组合日收益 = mean(所有持仓个股的次日收益)
总收益率 = cumsum(每日组合收益)
夏普比率 = mean(日收益) / std(日收益) × √252
最大回撤 = max((净值峰值 − 净值谷值) / 净值峰值)
每日调仓,等权持有 1 天;夏普 > 1 为可接受,> 2 为优秀
Score Drift Detection
计算公式:
漂移检测:评分单日变化超过 10 分的股票,检查变化方向是否正确
上调准确率 = count(评分上调且次日上涨) / count(评分上调) × 100%
下调准确率 = count(评分下调且次日下跌) / count(评分下调) × 100%
衡量评分变化是否具有预测方向性;准确率低说明评分被噪音主导
Failure Attribution
计算公式:
找出"评分高(买入信号)但次日下跌"的股票
对每只失败股,统计每个核评分与次日收益的 Spearman 相关性
相关性最低的核 = 最可能误判的核
用于定位哪个分析核的系统性偏差最大
Weight Optimization
计算公式:
蒙特卡洛搜索:5000 次随机权重组合 + 1000 次局部精搜
目标函数 = 最大化 Top N 回测的夏普比率
约束:每个核权重 ≥ 0.05,总和 = 1
如果新权重的夏普提升 > 5%,自动写入 weights.json
自优化开关需在 config.py 中启用
Attribution Details - Which Core Misjudged