/~learn/s/5f7daa68
> 版本:v1 (2026-08-03) · 状态:设计讨论稿 > 背景:你观察到恒生科技/恒生互联网近期涨幅远强于恒生生物科技(159615),但因子得分反而更低(恒生科技 20日+7.14% 得分 0.449 vs 恒生生物科技 20日-3.71% 得分 0.538)。你质疑两点:① 反追高因子方差是否过大,导致它的实际影响权重高于配置权重?② 反追高只按"涨得多不多"打分、不看估值(PE)是否合理?本文档用全池实证数据回答,并提出反追高 v2(估值感知)方案。
---
| # | 问题 | 结论 |
| --- | ------ | ------ |
| Q1 | 反追高方差是否过大、实际影响权重大于配置权重? | 否,已归一化。5 个因子全部 rank 分位归一化(全池 111 只均值 0.5045、标准差≈0.29 = 均匀分布特征),合成直接乘权重。反追高实际影响力 = 配置权重(震荡市 0.27),未被方差放大。 |
| Q2 | 当前反追高有结合估值(PE)吗? | 没有。反追高 = RSI(14) + 60日涨幅 + 成交量信号,纯价格维度;估值锚因子也是价格代理(MA200偏离+52周位置);真实 PE(蛋卷 63 指数 pe_ttm/pe_pct)只用于网页展示,未进打分。 |
| Q3 | 恒生科技 +7% 却得分低,是"涨得多=超买"误伤吗? | 部分是。恒生科技 HSTECH 真实 PE 分位仅 0.42(便宜),按价格涨幅一刀切确实误伤。这正是 v2 要修的。 |
| Q4 | 怎么调? | 反追高 v2:用 cheapness(便宜度 0-1)调制 RSI/涨幅阈值——便宜→放宽(允许强势延续),贵→收紧(提前防超买)。PE 优先、价格代理兜底。 |
---
全池 111 只 ETF(2026-08-03 快照,is_top=1 全部品种)5 维因子分布:
| 维度 | 均值 | 标准差 | 方差 | 最小 | 最大 | 极差 |
| ------ | ------ | -------- | ------ | ------ | ------ | ------ |
| 合成得分 score | 0.4917 | 0.1212 | 0.0147 | 0.1812 | 0.7107 | 0.5295 |
| 动量 | 0.5045 | 0.2887 | 0.0833 | 0.009 | 1.000 | 0.991 |
| 夏普 | 0.5045 | 0.2887 | 0.0833 | 0.009 | 1.000 | 0.991 |
| 反追高 | 0.5045 | 0.2873 | 0.0825 | 0.009 | 0.978 | 0.969 |
| 稳定性 | 0.5045 | 0.2422 | 0.0586 | 0.338 | 1.000 | 0.662 |
| 估值锚 | 0.5045 | 0.2887 | 0.0833 | 0.009 | 1.000 | 0.991 |
结论:
Factor.normalize(method='rank')(rank 分位)的典型特征。每个因子在加权前都已经被压到同一把尺子上。VolatilityStabilityFactor 里负收益→夏普项为负→分数被钳制到 0 → rank 归一化后大面积并列同分(恒生三兄弟全是 0.3378)。它的实际判别力比其他因子弱,值得单独一期研究。> 需要说明的边界:rank 分位归一化是横截面相对尺度,与池子构成强相关;方差齐性≠各因子判别力一致(并列分越多判别力越低)。但"反追高因方差过大而权重虚高"这一担心不成立。
---
mean_reversion_factor.py OverboughtAvoidFactor v2)score = RSI(14)分 × 0.6 + 60日涨幅分 × 0.4 # 连续线性打分,非阶梯
- 泡沫惩罚(放量滞涨/收阴 + 跌破5日线 + 长上影)
+ 良性超买保护(成长板块 RSI 高但趋势健康时保底)
valuation_factor.py ValuationFactor 的 score = MA200偏离 × 0.55 + 52周位置 × 0.45(按板块差异化系数)——本质是价格位置的代理,不是真实估值。而真实 PE(蛋卷基金 63 个指数的 pe_ttm/pe_pct)在 _enrich_pe_valuation 里被拉取,但只用于网页展示列(pe_ttm/pe_pct/true_pe),没有进入任何因子打分。
同涨 15% 的两只 ETF——一只 PE 分位 0.15(便宜),一只 0.85(贵)——会被反追高同等惩罚。但便宜资产的上涨更可能处于估值修复/盈利驱动,追高风险与高位资产完全不同。这就是"涨得多=超买"的盲区。
---
| ETF | 20日收益 | 60日收益 | 综合分 | 动量 | 反追高 | 真实PE(ttm) | PE分位 |
| ----- | --------- | --------- | -------- | ------ | -------- | ------------ | -------- |
| 恒生生物科技 159615 | -3.71% | -7.25% | 0.538 | 0.47 | 0.64 | 无(蛋卷未覆盖) | — |
| 恒生科技 513180 | +7.14% | -5.82% | 0.449 | 0.52 | 0.36 | 23.85 | 0.42(便宜) |
| 恒生互联网 513330 | +12.30% | -6.80% | 0.415 | 0.50 | 0.26 | — | — |
> 结论:恒生科技得分低,一半原因是反追高按价格涨幅一刀切,而它恰恰是"便宜+刚启动"的组合——这正是估值感知改造的目标场景。
---
用 cheapness(便宜度 0~1,越高越便宜) 直接对分数加减(加减分法,2026-08-03 实测阈值调制法对"RSI未超买"品种无效):
score_v2 = score_v1 + (cheapness - 0.5) × 2 × valuation_blend
valuation_blend = 0.20(最大 ±0.20),全部可调
| 优先级 | 来源 | 说明 |
| -------- | ------ | ------ |
| 1 | 真实 PE 百分位(蛋卷基金 63 指数) | cheapness = 1 - pe_pct;蛋卷接口 timeout=15s、2h 内存缓存,单进程只拉一次 |
| 无 PE | 中性 0.5(不改分) | 商品/债券/货币/无映射品种保持 v1 行为 |
> 设计取舍:不用价格代理兜底(52周位置/MA偏离本质是动量度量,会与动量因子重复计数)。A/B 实证:价格代理会让"创新高的强势品种"(日经/东证)被误判为"贵"而暴跌 70 名,与"强势应被认可"的目标相悖。
use_valuation_aware: bool —— 开/关 v2(生产默认待定)valuation_blend —— 调节影响强度pe_provider 可替换
恒生系(用户关注点,已修复):
| ETF | v1 排名 | v2 排名 | v1 分 | v2 分 | 变化 |
| ----- | --------- | --------- | ------- | ------- | ------ |
| 恒生科技 513180 | #82 | #42 | 0.420 | 0.529 | ↑40 名 |
| 恒生互联网 513330 | #96 | #46 | 0.360 | 0.522 | ↑50 名 |
| 恒生医疗 513060 | #47 | #23 | 0.522 | 0.640 | ↑24 名 |
| 恒生生物科技 159615 | #48 | #53 | 0.520 | 0.511 | ↓5 名 |
| H股 510900 / 恒生ETF | #98/#102 | #105/#107 | — | — | ↓(国企指数 PE分位0.82偏贵被罚) |
全池副作用(方案B已过滤近似映射,但仍需知悉):
恒生科技排名大幅前移(#82→#42),与"近期谁更强+PE便宜"的直觉一致;同时国企/恒指这类 PE 分位 0.82 的偏贵资产被提前防超买。
---
test_overbought_factor.py(RED→GREEN)OverboughtAvoidFactor v2(PE加减分),danjuan_fetcher 修正 159615 错误映射
- _default_pe_provider 仅接受 direct 映射,近似映射过滤
- 修正误标 direct 的近似映射:日经×3、东证、恒生互联网、港股通科技 → approximate
- v2 默认开启(use_valuation_aware=True,valuation_blend=0.20),下次推送生效
---
| 指数 | PE(ttm) | PE分位 | 备注 |
| ------ | --------- | -------- | ------ |
| 恒生指数 HSI | 12.36 | 0.81 | 偏贵 |
| 恒生科技 HSTECH | 23.85 | 0.42 | 便宜 |
| 国企指数 HSCEI | 10.35 | 0.82 | 偏贵 |
| 沪深300 | 14.24 | 0.83 | 偏贵 |
| 创业板指 | 41.55 | 0.45 | 中性 |
| 中证1000 | 42.14 | 0.67 | 中性偏高 |
| 标普500 | 25.49 | 0.61 | 中性 |
| 纳指100 NDX | 29.98 | 0.46 | 中性 |
| 中证红利 | 8.67 | 0.82 | 偏贵 |
| 主要消费 | 21.13 | 0.15 | 便宜 |