#因子积累的探索与踩坑
  本本本 28天前 151 1

因子积累的探索与踩坑

1.1 探究的原因

因为 XGB 或者 MLP 等等吧,模型如果需要有好的效果,最核心的不是模型参数或复杂度,而是因子的非线性复杂度要高。核心还是因子。一般作为普通投资者来说,最简单的就是研报复现以及公共平台的因子获取,虽然已经没什么超额了,但也属于“没得选的选择”,所以先试试看吧。本次记录的就是研报复现和平台获取因子的过程。

1.2 研报复现的过程

找了上个月最新的一篇研报,叫《20250602-东北证券-盈利偏度和估值偏度因子》,这篇研报主要讲的是:传统偏度研究多聚焦在收益偏度或量价数据上,但该文实证发现,基本面信息的偏度(如盈利偏度、估值偏度)同样具备较强的预测能力,能提供显著的信息增量,对传统因子具有补充价值。其中 POP 偏度因子和营业利润偏度的年化超额都不错。

着手开始复现,第一个复现的是估值因子 PE,因为简单。市盈率 PE 是投资者最为关注的估值指标之一,它反映了投资者对公司单位盈利愿意支付的价格。我们用过去一年(252 个交易日)的 PETTM 计算公司的 PE 偏度因子,并测试其选股效果,如下:
1.png
看着还不错哦,我们实操一下。我选择米筐的在线因子研究,数据提供得比较好。我们选择中证 1000 来看看 PE 偏度的表现。

PE = get_factor(stock_list, 'pe_ratio_ttm', start_date, end_date).unstack('order_book_id') PE.columns = PE.columns.droplevel(0) pe_skew_df = ( PE .rolling(window=252, min_periods=222) # 窗口 & min_periods 一致 .skew(bias=False) ) # 去掉第一年,因为按252滚动都是空 pe_skew_df = pe_skew_df.loc[pe_skew_df.index >= '2017-01-04'] pe_skew_df

得到 PE 偏度数据后,我们对整个 df 进行了数据标准化以及中性化,这个过程不展示了。以下是标准化后的分布:
2.png
动态券池后的数据:

都挺正常的。文章说每月的月底调仓,并且用 Spearman,所以 IC 应该按 22 日来看吧。
3.png
IC 的需求跟研报中差不多吧,但是研报仅说了 IC,我们自己跑一个分层检验吧,如下:
4.png
很拉胯…都不用做回测了。用回归法来测试,真实的收益 t 值是 0.2,很不显著,但是研报都不介绍这些内容。后面的 POP 和营业利润偏度测试结果都不好,10 年平均下来 IC 确实很高,但是从公式看,时间越久它的 IC 肯定是可以被平均的,前几年很强,最近几年失效,平均下来确实是 0.02 以上,但没有什么软用啊,这算是第一个坑。以后看研报,看看它的检验是不是合理,如果检验不合理直接不看了,纯属耍流氓,而且动不动拿 10 年来讲故事。

1.3 量化平台网站的因子获取

挨个研报复现太慢,有没有现场可以捡呢?翻阅几大量化网站,找到了一个唯一能看的因子看板,如下图,是聚宽的:
5.png
说实话,第一次看,我感觉我找到了财富密码…哈哈哈哈,这上百个很厉害了,而且打开对应的文档有它的计算公式,所以在聚宽上面写代码进行找最好的因子。
6.png
这不是财富密码吗???然后回测的过程中,聚宽特别坑,你查询大于 1 年的数据他要让你付费,说查询数据量太大等等,所以最终拿聚宽的因子计算公式去米筐进行复现,米筐没有数据获取限制。就拿 financial_assets 举例:
7.png
8.png
可以看到这个因子还是不错的基本面因子,但是量价因子什么的都不行,聚宽都是 MEA 和 MA 等等这些均线,很不好。聚宽的问题是跑 IC 的时候它不会做动态券池导致样本太多,IC 值被拟合得很高,实际跑下来大打折扣。公开的东西是真的,要么被人套完超额,就是骗新人的。他的付费版还要卖 1.3 万一年,很坑。以上两点就是最近踩的坑了,希望大家吸取经验。

最后一次编辑于 28天前 0

13917126236

挺好的思路,偏度因子,我若干年前也做过,记得券商股的偏度较大。

2025-08-03 22:17:57      回复