2026-04-22 · 约 12 分钟

SQTS v4 · 行业轮动:复合得分法

一个月频的行业轮动基线策略 — 把景气度、动量、拥挤度三个因子复合成单一得分。

#SQTS-v4#行业轮动#A股#月频#baseline
47d
模拟日
9.1%
cagr (oos)
−6.2%
max dd
1.05
sharpe
0.57%
te (paper)

TL;DR

SQTS v4 是我正在跑的第四代量化研究框架,Phase 1 的 baseline B 是这个"50 只股票 × combo_eq 行业轮动"策略。 每月月初根据三个因子(景气度 / 动量 / 拥挤度)给 30 个申万一级行业打分,挑前几名行业,再在行业内等权持有 50 只股票。 纸面交易已跑 47 天,NAV +3.59%,基准同期 +2.44%,跟踪误差 0.57%,相关性 0.999。

它不是什么惊天 alpha,只是一个我自己能看得懂、能讲清楚、能在盘面上跟得住的基线。 后面所有的复杂变体,都必须先在这个 baseline 上说清楚自己"为什么更好"。


为什么先做一个这么简单的东西

我做量化研究的第一条原则,被反复验证过:

一个能稳定复现的 7% 年化,永远好过一个存在于 notebook 里的 15%。

行业轮动是所有 A 股月频量化里最古老、最"没想象力"、但也最 robust 的方向。 它绕开了两个散户策略的坟场:

  • 个股选股的特质风险。 50 只股票分散在若干行业里,单一黑天鹅的冲击能被摊薄到 2%。
  • 高频信号的执行成本。 月频调仓,换手率可控,能把假设的"23bp 单边成本"打得很平。

这两条加起来决定了:这个策略就算 alpha 很薄,心理承受起来毫不费力。 这对一个新系统前 12 个月来说,比年化多两个点重要得多。

Combo-Equity 得分法 — 三个因子

给每个申万一级行业打一个 0-1 之间的复合得分 combo_eq,三个因子等权:

1. 景气度 Prosperity

指行业近 3-6 个月的 EPS 预期上修趋势,以及一致预期增速的分位。 核心思想:分析师不是先知,但他们是最早看到数据变化的人。 一个行业如果连续几个月被上修盈利预期,背后通常是真实的景气拐点,而不是噪声。

2. 动量 Momentum

用过去 1M / 3M / 6M 行业指数的对数收益复合。不是简单过去 1 个月,而是三个时间窗的稳健加权。 这一步最"俗",但也最有效 — 趋势是市场投给某一方叙事的票数。 绕开动量就是跟多数资金对着干,在 A 股尤其吃亏。

3. 拥挤度 Crowding

用行业成交额占比、换手率的 12 个月分位。这是个减分项: 分位越高,扣分越多。 它的作用是在景气度 + 动量都把信号推向同一个火热行业时,把你往后拽一步。 2021 年新能源、2023 年 AI、2025 年低空经济,三次我都差点追进去,是这个因子把我的仓位拉了回来。


回测设置

配置
样本内 (IS)2016-01 至 2019-12
样本外 (OOS)2020-01 至 2026-04
近四年样本2022-01 至 2026-04
调仓频率每月第一个交易日
持仓数50 只股票(若干行业内等权 × 行业等权)
交易成本单边 23bp(已含佣金 + 印花税 + 冲击成本估算)
基准沪深 300 全收益指数

几个我故意做保守的地方

  • 成本端 23bp 比券商默认给的要狠 — 因为散户账户实际成交的滑点比机构数据高。
  • IS 刻意只到 2019 底 — 2020-2024 的市场里几乎所有策略都见了"至少一次完整的结构性反转",这段留给 OOS 诚实测试。
  • 近四年独立看 — 是因为 2022 年之后 A 股的行业轮动节奏跟 2016-2020 明显不同,想知道策略在"现在这种市场"还 work 不 work。

实盘 (纸面) 表现

从 2026-02 初开始在 paper trading 环境运行,至今 47 个交易日:

指标策略基准 (HS300)
累计收益+3.59%+2.44%
主动收益+1.15pp
跟踪误差 (年化)0.57%
NAV 相关系数0.999
最大回撤−0.8%−1.9%

跟踪误差 0.57% 这个数字有点太小了 — 小到我怀疑它不是一个真正的行业轮动策略,而是一个"略微倾斜的增强指数"。 这件事我还在想。如果是的话,那这个 alpha 的来源就主要是景气度因子的选股溢出,而不是行业配置本身。 下一版我会做一个 brinson-fachler 归因,把"行业配置 vs 行业内选股"的贡献拆清楚。

已经能看到的局限

  • 47 天的样本对统计没有任何意义。 +1.15pp 可能纯粹是运气。我需要至少跑满一个完整的牛熊切换周期(3-5 年)才谈得上"验证"。
  • 月频调仓对 A 股来说偏慢。 行业轮动节奏有时候是以周为单位的。慢调仓的代价是我会"迟到"一个行业的启动早期。
  • 景气度因子依赖分析师一致预期数据,而一致预期数据本身在某些行业覆盖稀薄(比如中小盘纯题材行业),这会让得分不可靠。
  • 拥挤度因子是我最不确定的那一个。 它目前纯靠换手率 + 成交额分位,没有纳入融资余额、北向流入、ETF 申赎这些更细的拥挤信号。

接下来几个月想做什么

  1. 把 TE 归因做出来,确认 alpha 到底来自行业配置还是行业内选股。
  2. 把拥挤度因子做得更细 — 至少加融资余额分位和北向资金流。
  3. 尝试一个半月频版本(每月第 1 和第 15 个交易日各调仓一次),看换手率和 alpha 的 tradeoff。
  4. 跑到 90 天样本的时候做一次完整复盘,写一篇"第一个 3 个月"的报告。

这篇文章写给六个月后的自己 — 那个正在回忆"当初为什么觉得这套 baseline 靠谱"的自己。 如果你看到这里了,说明你也对"认真做一件慢事"感兴趣,我们可以在 github 上聊。

— czapple —