/~learn/s/c72b6aaf
> 📅 2026-10-15 建立 | 板块:因子有效性检验 | 检验对象:OverboughtAvoidFactor(反追高)
---
反追高因子不是横截面选基因子(Rank IC 弱负、统计不显著),但它是组合层的防御/惩罚规则,在 2021–2026 全区间对组合净正贡献(累计 +32.6% vs 关闭后 +8.3%)。它的收益来自熊市/震荡年的防守,而非选优——这与它"给涨得好的品种低分"的反直觉表现一致,不是 bug。
同时,分市场检验证实了你的质疑:统一阈值对"防御类"显著有害(20 日 IC −0.080,t=−3.25),对美股/港股微正,"一刀切"确非最优。
---
| 项 | 口径 |
| ---- | ------ |
| 区间 | 2021-01-08 ~ 2026-09-04(274 个周五) |
| 样本 | 全池 ~111 只 ETF,从 data_cache 逐周重放(非快照表) |
| 尺子 1 · Rank IC | 每期算因子值秩 vs 未来 N 日收益秩的 Spearman 相关,聚合 IC 均值 / ICIR / t 值 / 胜率 |
| 尺子 2 · 开关对照 | 同区间同规则,仅切换反追高(权重+惩罚),比较累计/年化/夏普/回撤 |
| 口径处理 | 反追高关闭估值感知层(use_valuation_aware=False)——该层用"当前 PE"判断历史,属前视偏差,只测价格核心信号 |
> 符号约定:反追高高分 = 不超买 = 安全。故 IC 为正才代表"选出的安全品种真的更强";IC 为负 = 短期"强者恒强"压过均值回归。
---
单元格式:IC 均值(t 值),全区间 ALL 组。
| 因子 | 未来 5 日 | 未来 10 日 | 未来 20 日 |
| ------ | ----------- | ----------- | ----------- |
| 动量 | +0.014(0.71) | +0.017(0.89) | +0.006(0.31) |
| 反追高 | −0.015(−0.89) | −0.028(−1.62) | −0.022(−1.22) |
| 夏普 | +0.009(0.46) | +0.009(0.49) | −0.004(−0.23) |
| 估值锚 | −0.017(−0.99) | −0.024(−1.44) | −0.028(−1.67) |
| 稳定性 | +0.009(0.47) | +0.010(0.56) | +0.001(0.03) |
读法:5 个因子的
---
单元格式:IC 均值(防御组附 t 值),按市场归属分组。
| 市场 | 未来 5 日 | 未来 10 日 | 未来 20 日 |
| ------ | ----------- | ----------- | ----------- |
| 全样本 | −0.015 | −0.028 | −0.022 |
| A 股 | −0.003 | −0.012 | +0.003 |
| 港股 | +0.029 | +0.020 | +0.017 |
| 美股 | +0.039 | +0.049 | +0.009 |
| 其他跨境 | +0.023 | +0.016 | −0.017 |
| 防御 | −0.046(t −1.85) | −0.038(t −1.58) | −0.080(t −3.25) |
关键发现:
> 这直接印证你的判断:"所有市场用统一指标"不合理。反追高对防御/低波动板块应放宽阈值或不惩罚,对成长/高波动板块才该收紧。
---
区间 2021-01-08 ~ 2026-10-09(276 组),Top10 等权,逐周五调仓。
| 区间 | A 现状 | B 关闭反追高 | 差异 |
| ------ | -------- | ------------- | ------ |
| 全区间 | +32.6% | +8.3% | +24.3pp |
| 2021 | −1.5% | −15.9% | +14.4pp |
| 2022 | −19.0% | +4.8% | −23.8pp |
| 2023 | +3.5% | +11.5% | −8.0pp |
| 2024 | +8.3% | +8.4% | −0.1pp |
| 2025 | +43.4% | +37.7% | +5.7pp |
| 2026 | +3.5% | −26.1% | +29.6pp |
全区间风险收益:A 年化 5.5% / 夏普 0.39 / 回撤 −34.3% / 周胜率 54.3%;B 年化 1.5% / 夏普 0.18 / 回撤 −29.7% / 胜率 51.8%。
读法:
每期 Top10 的平均重合仅 3.34 只(最少 0、最多 9)——反追高强烈改变了选基结果,它绝不是"无足轻重的微调",而是实质性地换了仓。
---
| 身份 | 判定尺子 | 结论 |
| ------ | --------- | ------ |
| 选基因子(横截面排序) | Rank IC | ❌ 无效/弱负——不能靠它排序选优 |
| 组合层规则(惩罚乘数) | 开关对照回测 | ✅ 全区间净正——靠"排雷/防守"贡献收益 |
反追高从来不该被当成"选优因子"(IC 为负说明它排不出更强的品种);它的真正价值是作为乘法惩罚项压制"极端超买"的尾部风险,在系统层面降低踩顶概率。"给涨得好的品种低分"这个反直觉表现,是它的设计意图,且实测在全区间是赚钱的。
---
overbought_penalty(floor=0.70, ramp_lo=0.10, ramp_hi=0.30) 与 v2 各阈值目前是经验值,未做网格标定;可在分市场阈值确定后再调。---
# Rank IC(全窗口 2021 起,多周期)
/usr/bin/env -u PYTHONHOME -u PYTHONPATH .venv/bin/python -u \
-m adata.aohan.quant.selection.backtest.factor_ic_analysis \
--start 2021-01-01 --horizons 5,10,20
# 开关对照回测(反追高权重+惩罚 开 vs 关)
/usr/bin/env -u PYTHONHOME -u PYTHONPATH .venv/bin/python -u \
-m adata.aohan.quant.selection.backtest.factor_ab_backtest \
--start 2021-01-01 --top 10
结果落盘:adata/aohan/quant/selection/backtest/ic_results/
(ic_summary.csv / ic_series.csv / ab_summary.csv / ab_series.csv)。