抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

ContangoAI

AI-Driven Strategies for Financial Markets

最近我正式成为了 WorldQuant BRAIN 的顾问(Consultant)。

按理说,onboarding 之后的第一件事,应该是去试试那些新解锁的数据集和 Region。但我没有。我做的第一件事,是打开 Simulate 的 Settings,像往常一样从上往下看——然后停在了 Neutralization 那一栏。

下拉框变长了。

以前只有四个选项:MARKETSECTORINDUSTRYSUBINDUSTRY,清一色的”分组”。现在多出了 STATISTICALRAMCROWDINGFASTSLOWSLOW_AND_FAST——整整六个”风险因子”选项。

选项翻倍是小事。真正让我愣住的是那一刻的念头:

多出来的这些选项,本质上是一种”话语权”——你有权决定你的 Alpha 暴露在哪些风险上,也有权声明你不想碰哪些风险。

普通用户手里只有”分组”一把尺子,顾问多了一把”风险因子”的尺子。这篇文章,就想把两把尺子的区别,以及我因此想明白的一件事,好好记录下来。


一、中性化到底在做什么:先回到本质

很多教程把中性化讲得很玄。其实它的数学很简单:在每个分组内,把你的 Alpha 权重调整到总和为零。

  • 多头权重之和 = 空头权重之和
  • 分组内多空完全对冲
  • 你的收益,只来自组内个股的相对强弱

比如你选 INDUSTRY,意味着在每个行业内部做多空配对。你赚的是”行业里谁更强”的钱,而不是”哪个行业会涨”的钱。

但这里有个容易被忽略的认知转变:中性化不是”消除风险”,而是”选择风险”。

你选 INDUSTRY,行业风险并没有消失,只是被从你的 Alpha 里剔除了。你在用一个非常明确的方式声明:行业涨跌这笔钱,我不赚。

这句话,是整篇文章的钥匙。

(顺便说一句,天文观测里有个很像的操作叫”背景扣除”——想拍出暗弱的星系,第一步不是增强信号,而是先把天空的亮光减掉。减掉的不只是噪音,更是所有人一眼就能看到的那部分。中性化做的事,和它一模一样。)


二、两把尺子:分组类与风险因子类

中性化的所有选项,可以分成两大类:

类别 机制 普通用户 顾问
分组类 按”股票属于谁”分组
风险因子类 按”Alpha 暴露了什么”剥离

分组类MARKET / SECTOR / INDUSTRY / SUBINDUSTRY)的逻辑是”把股票按分类分组,在组内做对冲”。四个选项的区别,只是分组粗细。

风险因子类STATISTICAL / RAM / CROWDING / FAST / SLOW / SLOW_AND_FAST)是完全不同的机制:它不按股票分组,而是把你的 Alpha 对一组已知的风险因子做回归,取残差。

如果说分组类问的是”股票属于谁“,那风险因子类问的就是”你的 Alpha 在偷偷吃哪种风格的钱“。

为什么平台要把这把尺子留给顾问?答案其实写在顾问的职责里:普通用户只需要”回测好看”,但顾问要提交的,是与现有 Alpha 低相关的新信号。而低相关从哪来?——把信号里那些人人都吃得到的风格溢价剥掉,剩下的,才是别人还没发现的部分。

风险因子中性化不是装饰,它本来就是”找独特信号”这个工种的核心工具。


三、分组类:按”股票属于谁”中性化

MARKET — 全市场一个组

  • 分组:所有股票视为一组
  • 效果:消除整个市场的涨跌影响,只保留个股相对全市场的超额
  • 适合:纯量价因子(动量、反转、波动率),你只关心全市场范围内的相对强弱
  • 注意:会保留行业暴露——如果你的因子有行业偏好,这里会留下行业 Beta

SECTOR — 大类行业

  • 分组:按 GICS 一级行业(金融、科技、消费……)
  • 特点:分组较粗,中性化力度较弱
  • 适合:因子在不同大类板块存在系统性差异的逻辑(比如期权波动率策略)

INDUSTRY — 细分行业

  • 分组:更细的行业分类
  • 适合:基本面因子(PE、ROE、盈利增长)、分析师预期因子。这些指标的估值中枢在不同行业间差异巨大——不剔除行业偏差,你选出来的”便宜”很可能是”行业的便宜”,而不是”个股的便宜”
  • 黄金搭档group_rank(-pe, industry) 这种”行业内排名”的写法,天然和 INDUSTRY 中性化配套

SUBINDUSTRY — 最细分组(默认基线)

  • 分组:比 INDUSTRY 更精细的子行业分类
  • 特点:BRAIN 的默认选项,也是大多数高质量 Alpha 的起点
  • 经验:不确定时,从它开始;group_rank + ts_rank 配合 SUBINDUSTRY,是通往高 Sharpe 的常见路径

这一类选择的本质,是在回答一个问题:你愿意让分组粗到什么程度? 分组越细,行业风险剔除得越干净,但组内股票越少,误伤的概率也越高。这有点像炖汤撇浮沫——撇得越勤,汤越清,但也可能把好味道一起撇掉。


四、风险因子类:按”你在暴露什么”中性化(顾问专属)

风险因子类中性化有一个共同的机制:把你的 Alpha 对一组”风险因子”做回归,取残差作为最终信号。它不依赖股票的分类标签,而是直接刻画收益背后的系统性驱动。它们也有一个共同的精神:

这些风格的钱,是市场公认的”公共因子溢价”,谁都能赚到,所以它们不构成你的 Alpha。我要的,是剥掉它们之后剩下的、别人拿不走的信号。

下面六个选项,我先把官方定义贴出来,再用大白话翻译一遍。

STATISTICAL — 统计风险模型

  • 官方定义:Includes risk factors which use techniques to identify patterns in historical returns, neutralize risks, and enhance Alpha stability with diverse, data-driven insights.
  • 白话:用统计方法从历史收益里”自动找规律”的一组数据驱动风险因子。它不像 FAST/SLOW 那样带有明确的经济学标签,而是更通用的”模式识别”。
  • 适合:你没有特别要避开的风格,只想让信号更稳、更干净的时候——风险因子类里的”通用款”。

RAM — 反转与动量(Reversion And Momentum)

  • 官方定义:Includes risk factors that capture the impact of short-term mean reversion and long-term momentum trends in stock prices.
  • 白话:同时覆盖”短期均值回归”和”长期动量趋势”两类因子,把你 Alpha 里这两个方向的暴露一起剥掉。
  • 适合:你的信号既沾了短期反转、又带了长期动量的钱时,一次剥掉两边。

CROWDING — 拥挤度

  • 官方定义:Includes risk factors of excessive investor concentration in similar positions, which can lead to reduced profitability by heightened impact during concentrated unwinding.
  • 白话:剥离”太多资金扎堆在同一类持仓”的风险——这种拥挤一旦集中解仓,冲击成本会明显侵蚀收益。
  • 适合:你发现自己的策略总爱买热门股、又担心踩踏风险时。

FAST — 快速因子

  • 官方定义:Includes market, industry factors and higher turnover style factors, such as reversion alpha.
  • 白话:注意,它不只是”剥快因子”——它内置了市场 + 行业因子,再叠加快周转的风格因子(比如反转)。
  • 含义:选 FAST,相当于同时做了市场/行业中性 + 快速风格中性。

SLOW — 慢速因子

  • 官方定义:Includes market and industry factors as well as other common lower turnover style factors.
  • 白话:同样是市场 + 行业因子,再加低周转的常见风格因子。
  • 含义:选 SLOW,相当于市场/行业中性 + 慢速风格中性。

SLOW_AND_FAST — 快慢结合

  • 官方定义:Combines both slow and fast factors.
  • 白话:快、慢两套因子一起剥。
  • 含义:这是风险因子类里剥得最”狠”的一个——市场、行业、快因子、慢因子全覆盖。剥得越多,剩下的信号越微弱,需要足够强的逻辑来支撑。

五、一张速查表

你的因子类型 推荐中性化 理由
基本面(PE、ROE、净利润增速) INDUSTRY / SUBINDUSTRY 行业估值中枢差异大,必须剔除
分析师预期(EPS 修正、评级变化) INDUSTRY / SUBINDUSTRY 分析师预期存在行业系统性偏误
量价因子(动量、反转、波动率、换手) MARKET 只需要全市场相对排序
期权 / 波动率类 SECTOR / MARKET 波动率在大类板块间差异明显,先粗分再中性
信号同时暴露于反转与动量 RAM 一次剥掉短期反转 + 长期动量
没有明确的风格偏好,只想让信号更稳 STATISTICAL 数据驱动地中和历史收益里的模式
追求”纯 Alpha”,不依赖任何已知风格 SLOW_AND_FAST 市场 + 行业 + 快慢因子全覆盖
避免热门股踩踏 CROWDING 专门剔除拥挤度暴露

六、感悟:中性化是你逻辑里的”不选什么”

还记得之前文章里聊到的那句话吗:

顶级顾问的复杂表达式不是炫技,而是层层递进的逻辑过滤器。

当时我理解的”过滤器”,主要指表达式内部的嵌套:先筛选、再修正、再组合,一层层把噪音过滤掉。成为顾问之后我才意识到,这个”过滤器”其实还有表达式之外的一层——中性化

一个完整的 Alpha 逻辑,应该由两部分组成:

$$
\text{Alpha} = \underbrace{\text{表达式}}{\text{我选什么}} \quad \times \quad \underbrace{\text{中性化}}{\text{我不选什么}}
$$

  • 表达式决定”选什么”:我要买行业内被低估、且近期有资金流入的股票
  • 中性化决定”不选什么”:行业整体涨跌我不赌,市场风格溢价我不吃

用一条完整的逻辑链串起来:

  1. 先有金融逻辑:找”行业内被低估、近期有资金流入”的股票
  2. 表达式实现第一层筛选group_rank(-pe, industry) * ts_rank(volume, 20)
  3. 中性化做最后一环
    • INDUSTRY——因为逻辑已经说了”行业内”,中性化把行业内其他系统性影响再剥一次,让信号只聚焦于行业内个股的相对强弱
    • MARKET——如果逻辑是全市场动量,你不想剔除行业,只想剔除大盘

所以中性化不是拍脑袋选的,它就是你逻辑表达式的一部分,是那个”剔除噪音”的隐式嵌套。

这也是为什么顶级顾问的 Alpha 看起来总是很”干净”:表达式内部,层层嵌套的算子在做”选什么”的过滤;表达式之外,中性化补上了”不选什么”的最后一层。两条线合起来,才是完整的逻辑。


七、常见误区与实用建议

误区

  • “中性化越多越好”:剥得越狠,剩下的信号越弱。过度中性化会把好信号一起洗掉。
  • “默认 SUBINDUSTRY 就行”:它是好起点,但只是起点。默认值是给”还没想清楚”的人用的——成为顾问之后,你没有理由不去主动选择。
  • “中性化只影响风险,不影响收益”:错。它直接改变你赚的是什么钱。选错中性化,你的 Alpha 可能从头到尾都在赚行业 Beta 的钱而不自知。

建议

  • 同一个表达式,换着中性化跑一遍MARKETINDUSTRYSUBINDUSTRY 各跑一次,对比 Sharpe 和回撤的变化,比读十篇教程都直观。
  • 按数据来源定方向:财务数据 → 行业中性;量价数据 → 先试 MARKET
  • 风险因子类慎用,但要会用:这是顾问身份带来的最大红利——“低相关 Alpha”的底气,很大程度来自你能主动剥离风格暴露。
  • 注意换手:某些中性化会推高换手,记得配合 DecayTruncation 控制成本。

评论



Powered by Hexo | Theme keep Volantis

本站总访问量 总访客数 🌎