lightGBM合成因子|对Alpha158因子集进行筛选,并做单因子分析(代码+数据)

发布时间:2024年01月23日

原创文章第448篇,专注“AI量化投资、个人成长与财富自由"。

昨天咱们把因子表达式重构了,现在可以完美支持world quant101,?qlib的Alpha158的这样的因子库。因子表达式完美重构 | Qlib Alpha158因子库复现 (代码+数据)

今天咱们使用上周的lightGBM树模型,Quantlab3.4代码发布 | lightGBM排序轮动 | 29个行业机器学习合成因子轮动策略(代码+数据+模型下载)对A股29个重要行业,做因子筛选。

top 20的因子如下:

图片

图片

代码在如下位置:把因子重要性打印出来:

import matplotlib.pyplot as plt
lgb.plot_importance(lgb_ranker, importance_type="gain", figsize=(8, 6), max_num_features=20,title="LightGBM Feature Importance (Gain)")
plt.show()

#idx = list(lgb_ranker.feature_importances_)
importances = lgb_ranker.feature_importances_
indices = np.argsort(importances)[::-1]
for f in range(len(feature_cols)):
    print("%2d) %-*s %f" % (f + 1, 30, feature_cols[indices[f]], importances[indices[f]]))


print(feature_cols)

对于“明天”的收益率的预测。

60日动量竟然很重要,然后是交易额,5天价量相关系数。可以看出来交易额对于短期的收益表达非常重要。

接下来我们给单因子做分析,分的IC/IR值,进行对比,以及因子之间的相关性的分析,进一步论证其有效性。

使用咱们的“单因子分析工具”,对因子进行分析:

图片

IC达到0.04,还可以:

图片

VOLUME2,因子表达式为:shift(volume, 2)/(volume+1e-12):

就是过去2天的交易额与当前交易额的比值,或者说交易额的“动量”。

图片

图片

第三个因子: CORD5(corr(close/shift(close,1), log(volume/shift(volume, 1)+1), 5)),5个收盘价与成交额背离(相关系数)

分层收益没有明显的单调性,这个因子不好。

图片

更多的因子分析,大家可以自己从星球取代码,试试看,找找感觉。

找好的因子,肯定不容易。——这就意味着策略,就是钱呀。

因些更需要科学的工具,咱们星球就是用科研的方式,如何科学的,流水线工厂的方式来挖掘因子。

后续的工作就是找到那些高ic的因子,同时在模型里能有不错的表现的因子集。

持续给大家写代码的,交付最前沿AI量化技术和策略的星球

历史文章:

Quantlab3.3代码发布:全新引擎 | 静待花开:年化13.9%,回撤小于15% | lightGBM实现排序学习

创业板指布林带突破策略:年化12.8%,回撤20%+| Alphalens+streamlit单因子分析框架(代码+数据)

轮动策略模板重写,先来一个年化21%的策略(代码+数据)

去掉底层回测引擎,完全自研,增加超参数优化,因子自动挖掘,机器模型交易。

飞狐量化——AI驱动的量化。(持续给大家写代码的,交付最前沿AI量化技术和策略的星球AI量化实验室——2024量化投资的星辰大海

关于我:CFA,北大光华金融硕士,十年量化投资实战。?/?CTO,全栈技术,AI大模型?。——应该是金融圈最懂技术的男人

文章来源:https://blog.csdn.net/weixin_38175458/article/details/135771278
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。