先抛一个会让很多人重新审视自己策略的判断——

一只股票的收益,可以粗略拆成三块:大盘的影响、板块的影响、个股自身的影响。如果你的模型只看个股,就把后两块捏在了一起——结果是:你以为捕捉到了 Alpha,其实捕捉到的是 Beta。

这是量化选股系统开发公开课的第 4 课——板块归因模块该怎么设计。它要解决的,是绝大多数选股系统的一个结构性盲区:把板块当成界面上的一个标签,而不是策略层的独立归因维度

一、为什么必须做"个股 × 板块"双维度建模

大多数量化选股系统把板块视为 UI 上的一个分类标签。这种做法在简单场景下能跑,但会让策略错过一种重要的信息源——板块层面的力量

"个股 × 板块"双维度建模的核心思想是——把板块层面的判断与个股层面的判断分开打分,再做加权合成

sector_score = score_sector(sector)   # 板块维度:板块在带动整批股票吗?
alpha_score  = score_alpha(stock)     # 个股维度:这只票有独立的 Alpha 吗?
final = combine(alpha_score, sector_score)   # 按规则加权合成,而非混为一谈

这样才能区分——是"板块在带动整批股票上涨",还是"这只票确实具备独立的 Alpha"

没有板块维度的系统,会反复在"板块顺风时假以为自己很强"和"板块逆风时被批量误伤"之间摆动。

二、为什么"今天最热的板块"是反向特征

绝大多数初学者会把"今天涨幅前几的板块"作为加分项。这是一个在长周期回测中被反复证伪的思路。

原因是一条完整的资金链——

  1. 热度本身不创造收益,它只是已被买入资金的"影像"
  2. 当板块进入"涨幅前列"被广泛关注时,主力资金通常已经先于散户进场
  3. 后续跟随的资金是"接力的人",预期收益在统计意义上为负
# ❌ 最直觉、也最有毒的一刀
score += rank_gain_5d(sector)   # "今天涨得猛 → 加分" → 反复高位接盘

换句话说——你看到热度时,热度就已经反映了即将出场的资金;进场的"接力者"承担了真实的回撤风险

三、好的板块特征长什么样

如果"热度"不是好特征,什么才是?经验上有效的板块信号,通常具有以下属性之一或多个——

有效特征含义
"冷"得足够久还未被市场关注的板块,更具补涨空间
有"真东西"政策、订单、行业景气有真实数据支撑
仍有"买入余量"没有过度透支、还未达到拥挤交易状态

这三类特征与"热度"恰恰相反,因此也很反直觉。设计板块特征要的就是这种**“反直觉的诚实”**——不能用看起来很合理、但实测无效的指标占用模型容量。

四、板块归因的三层结构:宁可不加分,也不要乱加分

把上面的认知落成架构,是一个三层、全过才加分的结构——

① 板块状态层 ── 冷度够不够久?还有没有买入余量?(量价维度)
② 基本面层   ── 有没有"真东西"?政策/订单/景气有真实支撑吗?
③ 耦合校验层 ── 板块的方向,能在这只具体个股上印证吗?
        ↓
   三层全过 → 加分;任何一层不过 → 静默或减分

这套结构的核心思想是——“宁可不加分,也不要乱加分”

板块加分的门槛必须高,因为它一旦加错,会同时影响整个板块内的所有个股,破坏力是放大的

五、第三层为什么不可省:板块与个股的耦合校验

板块归因不仅要看板块本身,还要看板块的方向是否能在具体个股上印证

# 板块整体向上,但这只票显著背离 → 降权,而不是加权
if sector_up and stock_diverges_down(stock):
    weight *= DISCOUNT   # 背离通常说明个股内部有特定问题

如果板块整体向上,但你看的这只票表现却显著背离,需要降权而不是加权——这通常说明个股内部有特定问题。

六、三个最常见的误区

误区一:“板块只是 UI 标签”

最常见的入门误区。把板块当作展示用的分类标签,等于丢掉了量化模型的第二只眼。结果是策略经常在"我以为是个股 Alpha、但其实是板块 Beta"之间反复迷失。

误区二:“今天涨得猛的板块加分”

被大量回测证伪的反向特征。听起来直觉,实测有毒。继续这么做的代价是——策略会反复"高位接盘"。

误区三:“板块和个股用同一套公式打分”

板块和个股在数据频率、信号强度、样本量、信号传导路径上都不一样,硬套同一套公式会导致两边都打不准。它们应当独立建模、独立打分,再按规则合成

七、一个脱敏案例:那个"已经涨过一波"还在被加分的板块

某次复盘中我们发现,系统在一个明显"已经涨过一波"的板块上反复给出加分。

深入分析后定位到原因——板块归因模块当时只看"近 5 日涨幅排名",没有考虑"安静期"维度。

改造方案是——把"冷得多久"和"还有没有买入余量"作为独立子项纳入板块状态层,同时把"近期涨幅"的权重显著调低。改造后回测显示,"高位追板块"的伪信号数量显著下降,策略在板块层面的稳定性也随之提高。

这次案例让我们形成一条原则:板块特征的设计要"反直觉的诚实",不能用看起来很合理、但实测无效的指标占用模型容量。

八、思考题

  1. 挑一个你最近关注过的板块,回溯过去 5 年,把它"涨幅前三"的几天标出来,分别看后续 5 / 10 / 20 天的板块表现。把"高位跟进"的真实统计结果记录下来。
  2. 列出你当前系统中"用到板块信息"的地方,逐一评估:用的是"热度"型特征还是"冷度/基本面"型特征?如果是前者,思考改造方案。
  3. 设想:板块整体上涨,但你看的某只票却背离下跌。在你现有模型中,这只票最终是加分还是减分?为什么?

总结

  • 板块是策略的第二只眼,必须作为独立维度建模
  • "热度"是反向特征——看起来很有道理,回测里很坑
  • 好的板块特征是"冷得多久 + 有真东西 + 还有买入余量"
  • 三层全过才能加分;任何一层不过就静默或减分
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐