刚入行时,我们总相信存在未被定价的异象因子。
于是花大量时间做特征工程:把价格序列切碎、把持仓数据变形、把库存指标非线性化。每次回测跑出一个夏普1.5以上的“新因子”。
但多数因子在样本外迅速失效。有些实盘三个月内夏普归零,有些与现有因子库共线性超标被剔除,还有些在特定宏观场景下因逻辑断裂出现极端回撤。
我们可能慢慢才能接受一个事实:商品期货的公开数据,能被常规方法挖出来的显性因子,基本已经被填平了。
这是信息扩散效率提高后的必然结果。十年前一个基差因子可以吃五年,现在一个库存因子从论文发表到因子库标配,用不了一年。
所以“找不到因子”这个困境,本质不是技术问题,是共识性知识和超额收益之间此消彼长的数学结果。
今天我们不聊怎么挖新因子,而是:当你手上就那几个老因子,怎么用得比别人深一层。

一、期限结构因子:你赚的是基差回归,还是流动性溢价?
几乎所有CTA报告都会告诉你:期限结构因子赚的是基差回归的钱。远月贴水做多,远月升水做空,交割前收敛,获利了结。
这句话没错。但它太对、太正确了,正确到把真正有价值的信息盖住了。
我们来想想:基差凭什么必须回归?
书上会说,是因为套利者进场抹平了价差。但套利是有成本的——资金成本、保证金成本、风控限额。真正触发基差回归时点的力量,往往不是套利者,而是产业客户的保证金约束。
一家铜冶炼厂,年初锁定了加工费,在期货市场卖出铜。铜价下跌,他的浮盈增加,但同时波动率上去,保证金要求也跟着提高。风控部门发邮件:追加保证金,或者减仓。
他没有无限子弹。他只能卖。
谁来买?投机资本。投机资本为什么愿意在这个位置接盘?因为他没有实体的现金流压力,他可以等三个月,等基差自然收敛。
期限结构因子的超额收益,本质是对“产业资本流动性折价”的补偿。 你赚的不是数学回归,是对方必须离场时你提供了流动性,市场付给你的溢价。
这个视角对普通人有什么用?
第一,它能帮你判断因子失效的真因。2023年上期所推出套保保证金优惠,产业客户的资金占用成本明显下降。他们不再需要在不利价位被迫平仓,流动性折价收窄。同期期限结构因子收益中枢下移——不是因子失效,是补偿变薄了。这个归因,比“市场风格变了”有用得多。
第二,它能帮你做品种筛选。产业集中度越高的品种,单一企业的流动性冲击越容易被观测。铜、铝、豆粕,头部企业的检修计划、到港节奏、加工费谈判节点,这些不是内幕消息,是产业链公开信息。你只需要把这些常识翻译成规则。
这不是因子挖掘,而是收益归因层的下钻——下钻到风险溢价的定价源头,下钻到对手盘的资产负债约束。

二、动量因子:收益来源正在从“信息时滞”转向“资金流惯性”
动量因子的经典解释:市场对信息反应不足,价格缓慢消化,形成趋势。
这个解释在过去十年成立。但2020年是个分水岭。
东吴证券有个CPV因子研究:2020年7月1日之前,日内价格和持仓量的相关性可以预测次日的方向;7月1日之后,预测方向反了,动量变成了反转。
https://bigquant.com/square/paper/ea54819b-23a7-49ae-9608-2100b2fd6e33
为什么?机构占比跃升,信息被更短的时间消化。你等日线收盘再进场,已经晚了。
如果动量因子的收益来源是“信息处理时滞”,那随着算力普及和算法渗透,这个时滞应该越来越短,动量因子应该越来越难做。但实盘表现并不是这样。
长周期动量(40-60天)依然有效,短周期动量明显衰减,中周期动量(10-20天)呈现显著的时变性特征——每年仅2-3个高趋势强度/高盈亏比窗口,其余时间在低波动窄幅区间内回撤或持平。
怎么解释这个现象?
我的判断是:动量因子的收益来源正在从“信息时滞”转向“资金流惯性”。
信息时滞是被动的——市场需要时间理解新闻。资金流惯性是主动的——大资金进出需要时间,无法瞬间完成。公募专户、私募、自营盘,任何超过一定规模的头寸,建仓和离场都是以天甚至周为单位。
这两者的区别,决定了策略设计上的一个实际结论:资金流惯性驱动的动量,只存在于机构配置权重高、流动性深度足够、单一持仓限额明确的品种。 螺纹钢、铁矿石、原油、铜,这些是机构必配。鸡蛋、苹果、红枣,没有大资金长期驻扎,动量因子几乎失效——不是波动不够,是没有惯性。
顺着这个逻辑往前走一步:全品种覆盖的CTA产品,可能需要接受一个事实——有相当一部分品种,长期来看根本不值得配置动量因子,它们在组合里的作用只是摊薄夏普。对这类品种,与其硬挖择时信号,不如战略性低配或仅作被动覆盖,把研究精力集中在少数逻辑成立的品种上。

三、多因子组合的陷阱:你是在分散风险,还是在加杠杆?
多因子框架在国内流行,有它的历史原因。
2015到2019年,单因子趋势跟踪的回撤期太长,客户受不了。为了平滑曲线,大家开始叠加低相关因子。基差、库存、波动率、资金流,什么低相关加什么。回测曲线确实好看了。
但2021年之后,很多团队发现问题:因子数量增加了,夏普比率却没有提升。
我复盘过一些团队的因子库,发现一个共性:新增因子和主趋势因子的相关性可能确实不高,但它们彼此之间的相关性很高。
举个例:因子A是“库存同比变化”,因子B是“基差百分位”,因子C是“月间价差斜率”。从数学上看,A和B相关系数0.3,B和C相关系数0.35,都不算高。但把它们放到一起,会发现一个事实:这三者都受同一个宏观变量驱动——供需平衡表。
当供需从紧平衡转向过剩时,库存累积、基差转升水、月间价差走弱。三个因子会同时发出空头信号。表面上是三重验证,实际上是用杠杆表达了同一个观点。
为什么那么多团队会陷入这个误区?
第一,回测软件太容易堆因子了。拖几个指标,按个按钮,夏普从1.2提到1.4,没有人会拒绝免费午餐。
第二,因子间相关性矩阵只测线性相关,测不出逻辑同源性。两个因子可能数学上低相关,但它们的失效模式完全重合——都在2020年3月、2021年10月、2022年6月同时失效。这种“灾难共线性”(条件相关性显著高于无条件相关性,低相关是常态,高相关只在回撤期暴露) 在常规回测里看不出来,实盘会让你一次还清。
第三,行业评价体系鼓励数量,不鼓励精简。你去路演,说你只用三个因子,投资人觉得你研究不够努力;你说用了三十个因子,层层过滤,听起来更性感。这是激励错配。
解决方案不是少用因子,而是按逻辑源头做独立性审查。
把你手上所有因子归到五个篮子里:趋势类、期限结构类、库存基本面类、宏观类、情绪类。每个篮子保留1-2个表现最稳、逻辑最干净的因子,其他的砍掉。特别是在审视库存数据和基本面这类传统因子时,需要更关注其背后的驱动逻辑是否独立。
这个过程会很痛。夏普率可能暂时下降。但你会收获一个更重要的东西:策略的失效模式变得清晰。
以前三十个因子同时回撤,你不知道是哪里出问题。现在五个篮子,哪个篮子出问题,一目了然。这种可解释性本身就是风险控制工具——你可以在因子失效的第一周就做出反应,而不是等三个月的回撤报告出来。

四、比因子挖掘更高效的方向:因子择时
如果未来就是没有新因子可挖,怎么办?
这不是假设性问题。如果市场效率进一步提高,显性定价偏差都被填平,我们做什么?
2023年我和一位做自营的朋友聊过这个。他的回答很简单:那我们就不挖因子了,我们只做因子择时。
当时我没完全理解。后来想明白了。
他的意思是:动量、期限结构这些老因子,逻辑没有死,只是收益分布变得极度不均匀。以前是每年稳定贡献10%,现在是两年震荡、半年爆发。如果你全年满仓持有这些因子,夏普肯定难看。但如果你能识别出“什么时候应该重仓、什么时候应该回避”,老因子依然可以做出不错的收益风险比。
这个思路需要的能力不是特征挖掘,而是因子环境识别的先验逻辑——不依赖回测优化,而是基于市场微观结构和参与者行为约束,判断高预期收益区间。这里的宏观变量识别能力,比单纯的数据处理更为重要。
具体怎么做?举两个例子,都是可以落地的那种。
期限结构因子什么时候容易赚钱? 不是贴水最深的时候,而是贴水结构刚刚形成、且产业客户持仓占比处于季节性高位的时候。前者说明定价偏差存在,后者说明对手盘刚性最强、流动性折价最厚。当然,这种择时信号本身也有胜率上限,不建议作为唯一开仓依据,更适合作为风险预算分配的参考信号。
动量因子什么时候容易赚钱? 不是趋势最强的时候,而是波动率刚从低位抬升、且成交持仓比同步放大的时候。前者说明趋势还有空间,后者说明新资金正在进场。
这些“识别条件”本身不是因子。它们是因子的因子。它们无法单独构成交易信号,但它们能告诉你:现在是不是该给某个因子分配更多风险预算。
这个方向的好处是:因子择时的半衰期比因子本身长得多。一个动量因子可能三五年就失效,但“波动率低位抬升后动量更容易延续”这个观察,可能十年都不会失效。因为它背后是资金行为,不是统计套利。
坏处是:因子择时没法靠暴力回测优化。你没法写一个循环遍历所有参数,找到最优的“波动率阈值”。因为资金行为会变,过去的阈值明年可能就失效。你需要持续跟踪市场结构,不断校准。
这是一种更累的研究方式。但它可能是未来少数还能产生超额的方向。

五、重新定义工作:从因子挖掘到因子工程
最后想聊一个更底层的区分。
过去十年的主流思路是:因子 = 信号。挖到一个特征,写成交易指令,跑实盘。
这个等式在今天可能需要修正。
我建议你把“原始因子” 和“策略参数” 分开来看。
原始因子是那些有清晰逻辑支撑、不可进一步约化、半衰期较长的市场特征——期限结构、动量、库存变化。全行业已将其纳入策略基准池,你无法绕过它们,它们也不再是独家优势。它们是CTA策略的底层因子,而非公理。
策略参数则是你在这些底层因子上叠加的实现层规则:开仓触发条件、仓位权重函数、头寸退出机制等。
超额收益的真正来源,已经从因子层的挖掘转向实现层的差异化构建。换个说法:因子层正在快速同质化,差异化超额只能来自实现层。底层因子会磨损、会拥挤、会从alpha衰减为beta;但你在实现层设计的条件过滤、风险预算倾斜、退出规则,只要不公开披露,其半衰期远长于因子本身。
所以“找不到新因子”不是研究工作的终点。它只是意味着,你的工作重心应该从因子挖掘转向因子工程——在少数几个逻辑干净的因子上,叠加别人没想到的实现层规则(条件过滤、风险预算倾斜、退出机制等)。
这个过程不需要你发明新指标,不需要你买昂贵的数据,不需要你写几百行的特征工程。
它需要的是另一类能力:你能否看见某个公开因子背后那个还没被写进研报的行为逻辑;你能否识别出这个因子在什么条件下容易赚钱、什么条件下容易亏钱;你敢不敢在这些条件发生时,给它分配比别人更重的仓位。
这些能力没法批量生产,没法代码复用,没法在三个月内速成。
但它们不会过期。
因子是会磨损的。你对因子失效边界的理解不会。

上面聊到的因子,按动量、期限结构、量价、基本面、宏观五个类别,整理过一份CTA因子手册。里面有常见因子的构造方式、基本逻辑、策略实现。
如果你在做因子独立性审查时缺个参照系,可以自行在专业的开发者社区,如云栈社区的技术讨论板块中,寻找相关资料或与其他从业者交流。毕竟,判断因子该不该留,总得有个参照系。对市场的理解,本身就是一个持续的深度学习过程。