/~learn/s/477791ef
> 版本:v1 (2026-07-16) · 状态:设计讨论稿 > 背景:你观察到恒生科技/恒生互联网从深跌中反弹但因子得分低,质疑"120日封顶是否太短"、"是否需要加入基于估值的长期反转因子"。本文档用学术文献+实证数据给出答案,并提出具体改进方案。
---
| # | 问题 | 结论速览 |
| --- | ------ | --------- |
| Q1 | 为什么动量窗口封顶120日(≈半年),不看更长? | 学术界标准:Jegadeesh-Titman(1993)经典论文证明1-12个月动量有效,超过12个月动量崩溃;DeBondt-Thaler(1985)证明3-5年窗口是反转效应(不是动量),两者不可混为一谈。120日(约半年)处于动量效应的黄金区间。 |
| Q2 | 恒生科技/互联网深跌后反弹但因子得分低,是否合理? | 部分合理,部分是盲区:合理之处是它们60日仍负收益、趋势向下、波动率极高,夏普/稳定性差,短期追入风险大;盲区是当前系统没有长期反转因子,无法识别"深跌+低估值=未来高预期收益"的均值回归机会。 |
| Q3 | 是否要加入估值导向的反转因子(看未来1年/2年收益率)? | 必须加,但要与现有动量体系互补而不是冲突。学术上Value和Momentum负相关(Asness 2013 "Value and Momentum Everywhere"),结合后夏普比率更高。 |
| Q4 | 能否完全信任当前120日动量因子? | 不能单独信任,但120日作为短中期趋势跟踪锚是合理的。需要叠加长期反转/估值因子做"极端低估时的底部捕捉",形成完整的双时间尺度体系。 |
---
量化金融里有两条经全球市场验证的"定律",时间窗口是关键分界:
| 时间尺度 | 效应 | 论文 | 机制解释 |
| --------- | ------ | ------ | --------- |
| 1个月以内(5-20日) | 短期反转(均值回归) | Jegadeesh(1990)、Lehmann(1990) | 流动性冲击+过度反应后修正,涨多必跌、跌多必弹 |
| 1-12个月(20-250交易日) | 中期动量(趋势延续) | Jegadeesh & Titman(1993) 经典 | 信息反应不足(underreaction):好消息慢慢扩散,赢家继续赢 |
| 3-5年(750-1250交易日) | 长期反转(价值回归) | DeBondt & Thaler(1985) | 过度反应(overreaction):输家被过度抛弃、估值极低,未来3-5年跑赢赢家 |
> 关键结论:动量因子就应该在1-12个月内计算,120日(约半年)正好在动量效应最强的区间中偏前位置。如果把窗口拉到1年以上(250日+),你就开始混合动量和反转两个相反的效应,信号会互相抵消。
| 窗口 | 对应周期 | 权重 | 作用 | 实证依据 |
| ------ | --------- | :--: | ------ | --------- |
| 20日 | 约1个月 | 0.4 | 捕捉趋势启动/拐点 | v2→v3时从纯[60,120]加入20日,解决"追涨滞后"问题(国芯ETF ob=0.07仍排#1次日暴跌-6.58%) |
| 60日 | 约3个月 | 0.3 | 确认趋势方向,过滤噪音 | 股票选股实证40-80日窗口最优(+5.33%/期),60日处于核心区 |
| 120日 | 约半年 | 0.3 | 锚定长期趋势方向,避免太短被洗出去 | CMM论文(2026)指出平均只有35天贡献50%动量信息,半年窗口足够覆盖 |
为什么不加250日(1年)作为第四档?
这两个修正是为了弥补"纯收益动量"的两个致命缺陷:
| 缺陷 | 修正机制 | 效果 |
| ------ | --------- | ------ |
| 震荡市里假突破多(反弹几天又跌回去) | 60日线性回归R²:斜率向下→负R²直接把动量打负;R²接近0(横盘)→打3折 | 过滤掉"死猫跳"式反弹 |
| 从深坑里反弹看起来涨幅大,但仍在下降通道 | 距120日高点回撤>5%打7折,>15%打3折 | 防止在半山腰抄底接飞刀 |
这恰恰是恒生科技/互联网目前被惩罚的原因——它们从深度回撤中反弹(120日跌幅-22%~-30%),触发了回撤惩罚×0.3,加上R²强负值(还在下降趋势中),动量自然得分低。
---
让我们用香港证券ETF vs 恒生科技ETF的实盘数据,看清楚当前系统的"视野范围":
| 因子 | 窗口 | 实际在衡量什么 | 香港证券ETF | 恒生科技ETF |
| ------ | ------ | ------------- | :----------: | :----------: |
| 动量 | 20/60/120日 | 近半年趋势方向+质量 | +(横盘微涨) | -(深跌反弹,趋势仍向下) |
| 夏普 | 60日 | 近3个月风险调整后收益 | +0.19(唯一正的) | -7.64(极差) |
| 反追高 | 20日乖离/RSI | 短期是否超买 | 0.58(正常) | 0.58(正常) |
| 稳定性 | 60日波动率倒数 | 近3个月波动是否小 | 0.03(波动低) | 0.00(波动极大) |
| 估值锚 | MA200+52周位置 | 价格在历史区间的位置 | 0.77 | 0.80(看似"高估") |
发现问题了吗?
让我看看数据(2026-07-15):
---
这篇可以说是量化金融的"圣经级"论文之一。作者研究了全球8个市场、4个资产大类(股票、股指、外汇、商品),发现:
> 核心结论: > 1. 价值因子(Value)和动量因子(Momentum)在每一个市场、每一个资产类别中都同时存在 > 2. 两者显著负相关(约-0.5到-0.6)——动量追涨,价值抄底,天然互补 > 3. 50/50混合Value+Momentum的夏普比率显著高于单一因子,且回撤大幅降低 > 4. 价值因子的核心代理变量:对于股票/指数就是 PE/PB的历史分位数(低PE/PB=价值=未来收益高)
这直接回答了你的直觉:你看到恒生科技"跌多了+估值低=诱人",本质就是价值因子在起作用,而当前系统里这个维度是缺失的。
> 核心结论: > - 过去3-5年表现最差的"输家组合",在未来3-5年比"赢家组合"每年多赚约8%(年化) > - 这种超额收益不能用CAPM风险解释,是真正的"过度反应修正" > - 反转效应在1月最显著(税收-loss harvesting+年初再平衡) > - 注意:这是3-5年维度的,不是几周几个月
实战意义:当一个品种从高点跌了50%+且持续1年以上,同时PE/PB到了历史极低分位(<10%或<20%),那就是DeBondt-Thaler信号在闪烁。
你已经有了:
短-中-长完整因子体系应该是:
短期反转(5-20日) ←→ 中期动量(1-12月) ←→ 长期价值/反转(1-3年)
(反追高) (当前主因子) (待添加)
防追涨杀跌 趋势跟踪赚Beta 极端低估赚Alpha
---
| 项目 | 规格 |
| ------ | ------ |
| 因子名 | long_term_reversal(长期估值反转)或升级现有valuation因子 |
| 数据来源 | 已有ValuationFetcher(tushare PE_TTM + multpl SP500 PE),恒生指数需新增数据源 |
| 核心指标 | PE_TTM历史分位数(5年以上历史窗口)、PB历史分位数、价格距250日高点回撤幅度 |
| 窗口 | PE分位数用全部可用历史(至少5年),回撤用250日(1年)和500日(2年) |
| 打分方向 | PE分位越低→得分越高(越值得买);250日回撤越深→额外加分(过度反应补偿) |
| 非线性加成 | PE分位<20%时sigmoid曲线给强力加分(参考08-反转策略置信度乘数);PE分位>80%不加分 |
# 1. PE分位基础分:越低越买
pe_score = 1.0 - pe_pct # pe_pct=0(历史最低)→ 1.0,pe_pct=1(历史最高)→ 0.0
# 2. 极端低估非线性加成(sigmoid,参考反转方案文档)
if pe_pct < 0.20:
extreme_bonus = 0.3 * (1 - pe_pct / 0.20) # pe_pct=0时+0.3,pe_pct=0.20时+0
pe_score += extreme_bonus
# 3. 长期回撤补偿:距250日高点回撤>20%时加分(DeBondt-Thaler过度反应)
dd_250 = (close[-1] - high_250) / high_250 # 负数
if dd_250 < -0.20:
drawdown_bonus = min(0.2, abs(dd_250 + 0.20)) # 最多加0.2
pe_score += drawdown_bonus
# 4. 裁剪到[0,1]
long_rev_score = clip(pe_score, 0, 1)
当前v3权重(震荡市):
| 因子 | 当前权重 | 建议调整后 |
| ------ | :-------: | :---------: |
| 动量 | 20% | 18% |
| 夏普 | 15% | 12% |
| 反追高 | 27% | 22% |
| 稳定性 | 25% | 20% |
| 估值锚(价格代理) | 13% | 8%(降权,因为会被新因子替代核心功能) |
| 长期估值反转(新) | — | 20% |
逻辑:
当前ValuationFetcher已经支持:
解决路径(优先级从高到低):
| 场景 | 当前系统(无长期反转) | 加了长期反转后 |
| ------ | --------------------- | -------------- |
| 2022年10月港股大底(恒生科技跌70%+PE历史最低) | 等趋势走出来才进场,错过最肥的底部30% | PE分位<5%+250日回撤>50%→强力加分,底部区域就能进入候选 |
| 2024年9月A股暴跌(创业板PE历史低位) | 动量差/夏普差/稳定性差→选不出来 | PE分位极低→加分,能捕捉恐慌后的反弹 |
| 牛市顶部(PE历史高位还在涨) | 动量强/夏普强→追高在山顶 | PE分位>80%→不加分甚至扣分,提前减仓 |
| 正常震荡市 | 动量+反追高为主 | 效果类似,不会差很多(PE分位在中间区域加分有限) |
---
因为当前系统所有因子都只看近2-6个月,香港证券ETF在所有"中短期维度"都完胜:
但这不代表恒生科技/互联网未来1年涨不过香港证券ETF,只是当前因子体系看不到1年以上的均值回归机会。
120日作为中期动量锚是合理的,有充分的学术依据(Jegadeesh-Titman动量效应1-12个月有效),也有你自己的回测数据支撑(股票选股40+80日最优)。但它只是系统的一只眼睛(看中短期趋势),你还需要另一只眼睛(长期估值反转)来看极端深跌的机会。
强烈建议加,理由:
ValuationFetcher+valuation_backtester),只是没接到截面因子里---
| 阶段 | 任务 | 预计工作量 |
| ------ | ------ | ---------- |
| P0 | 给ValuationFetcher添加恒生指数/恒生科技PE数据源 | 小 |
| P1 | 新建LongTermReversalFactor(or升级现有ValuationFactor),用真实PE分位+长期回撤打分 | 中 |
| P2 | 给新因子加上regime自适应权重(熊市权重高/牛市权重低) | 小 |
| P3 | 回测验证:用2022-2025数据对比"加/不加长期反转因子"的收益/回撤/夏普差异 | 中 |
| P4 | 保留现有"价格位置"因子(改名为price_position),与新PE因子共存而非替代 | 小 |
| P5 | 对于完全没有PE数据的品种(日经/印度/德国等),fallback到增强版价格代理(加入250日回撤补偿) | 小 |
---
| 论文 | 年份 | 核心贡献 | 与你系统的关系 |
| ------ | ------ | --------- | -------------- |
| Jegadeesh & Titman, "Returns to Buying Winners and Selling Losers" | 1993 | 首次系统证明3-12个月动量效应显著 | 你120日动量的理论基础 |
| DeBondt & Thaler, "Does the Stock Market Overreact?" | 1985 | 首次证明3-5年长期反转效应,输家跑赢 | 长期反转因子的理论基础 |
| Asness, Moskowitz, Pedersen, "Value and Momentum Everywhere" | 2013 | 全球8市场4资产类证明Value+Momentum负相关互补 | 为什么要双因子并行 |
| Moskowitz, Ooi, Pedersen, "Time Series Momentum" | 2012 | 1-12个月时序动量显著,1个月内反转显著 | 你20日短周期+反追高的依据 |
| CMM (Characteristic-Managed Momentum) | 2026 | 动量不是等权平均,只有少数关键日贡献信号 | 支持你多窗口加权而非单窗口 |
| Moreira & Muir, "Volatility-Managed Portfolios" | 2017 | 波动率高时减仓能提高夏普 | 你波动率稳定性因子+夏普因子的依据 |
---
当前v3因子体系(中短期视野为主):
┌──────────────────────────────────────────────────┐
│ 反追高(20日) 稳定性(60日) 夏普(60日) 动量(20/60/120日)
│ └── 全部是 20日~120日窗口 ──┘
│ 估值锚(MA200+52周价格位置) ← 价格代理,不是真正估值
└──────────────────────────────────────────────────┘
↓
建议v4因子体系(短-中-长完整时间尺度):
┌──────────────────────────────────────────────────────────┐
│ 短期(5-20日):反追高(20日RSI/乖离) → 防追涨杀跌
│ 中期(1-12月):动量(20/60/120)+夏普+稳定性 → 趋势跟踪
│ 长期(1-3年):长期估值反转(真实PE分位+250日回撤) → 极端低估抄底
└──────────────────────────────────────────────────────────┘
三个时间尺度互补,通过regime自适应调权