ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Qlib Alpha158因子库:3行配置让158个量化特征长出来

Qlib Alpha158因子库:3行配置让158个量化特征长出来 Qlib Alpha158因子库3行配置让158个量化特征长出来【免费下载链接】qlibQlib is an AI-oriented Quant investment platform that aims to use AI tech to empower Quant Research, from exploring ideas to implementing productions. Qlib supports diverse ML modeling paradigms, including supervised learning, market dynamics modeling, and RL, and is now equipped with https://github.com/microsoft/RD-Agent to automate RD process.项目地址: https://gitcode.com/GitHub_Trending/qli/qlib当你第3次手动遍历五年的K线、逐列拼特征时Qlib量化平台里的Alpha158因子库大概是第一个想让你找到的东西3行配置它就把开高低量的原始K线扩成一套能直接喂给模型的特征不用手写一条因子公式。全部展开逻辑在Alpha158DL因子定义源码里就一个类。 一条因子是怎么炼出来的从原始K线到模型输入入口是 handlerAlpha158是DataHandlerLP的子类实例化时它会自动填好特征表达式列表、标签表达式和两路处理器外层的DatasetH只负责按 train/valid/test 切分段。追踪一条特征的一生整个过程就四个环节。9个硬编码的K线特征kbar 部分是唯一手写的一块KMID、KLEN、KUP、KLOW、KSFT 等9个因子全是用开盘、最高、最低、收盘四个值做加减除法描述收盘价在当日区间里的位置。比如 KMID 是 (收盘-开盘)/开盘KSFT 是 (2×收盘-最高-最低)/开盘。没有参数、没有窗口任何一只股票都是同样的9列。145个滚动因子29个算子 × 5个窗口真正的数量在这里。代码里定义了 29 个滚动算子——ROC变化率、MA均线、STD波动、BETA线性斜率、RSQR趋势线性度、RANK当前分位、RSV区间位置、IMAX/IMIN距最高/最低价天数等——每个算子在 5、10、20、30、60 天 5 个窗口长度上各算一遍产出 145 个特征。加上 OPEN0/HIGH0/LOW0/VWAP0 这4个当日价格比值9 145 4 158名字就是这么来的。值得留意的小设计几乎所有因子都除以后价比如 MA20 写成Mean($close, 20)/$close而不是元为单位的均线价格。除掉的是相对变化30元的股票和300元的股票特征量级一致树模型不用浪费容量学量纲。这些算子都是qlib/data/ops.py表达式层里的基础函数想自己写因子也是拿它们组合。配置里还有 include/exclude 两个开关传include: [ROC, MA, BETA]就只保留3个趋势类算子因子数从158缩到28做消融实验很方便。两路处理器一路管训练一路管推理数据从 loader 出来后过两路处理器。推理路按时间序列方向ProcessInf先处理 inf再ZScoreNorm归一化Fillna补缺失训练路按横截面方向DropnaLabel丢掉标签缺失的样本CSZScoreNorm对标签做横截面归一。两路的默认配置都在 Alpha158 handler 里想换处理流程传自己的列表覆盖即可。标签T1的收盘收益默认标签一行Ref($close, -2)/Ref($close, -1) - 1。模型在 T 日学习策略在 T1 收盘执行收益口径是 T1 收盘到 T2 收盘回测配置里deal_price: close正好用这个价成交三头对上了没有前视偏差。架构图中因子库处在 Information Extractor 的位置下接 Data Server上送 Forecast Model再流向 Portfolio Generator 和 Order Executor。Alpha158 给模型供应的只有特征这一段。 跑完之后看到了什么Alpha158因子库回测输出用仓库默认的 LightGBM Alpha158 配置训练和回测跑完第一张看到的是按预测分位数切组的曲线。Group1 是预测分最高的一组Group5 是最低的一组中间依次拉开棕色 long-short 线是做多 Group1、做空 Group5 的结果代表剔除基准之后因子的纯解释力。第二张是年化超额收益。注意这份回测不是纸面交易开盘 0.05%、收盘 0.15% 的手续费9.5% 涨跌停阈值TopkDropoutStrategy 每天持有50只股票、换掉得分最低的5只。两条线的差值就是成本橙色不含费蓝色含费。蓝色每年都比橙色矮一截但多数年份仍在零轴上方——扣掉手续费后还剩的部分。 三步跑通从 git clone 到回测结果最短路径就三条命令git clone https://gitcode.com/GitHub_Trending/qli/qlib cd qlib pip install -e . python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn数据脚本会拉取沪深300股票池的日线数据。然后直接跑仓库里现成的配置因子库的引用只有这几行dataset: handler: class: Alpha158 kwargs: *data_handler_configqrun examples/benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yamlqrun 跑完IC 分析、年化收益、最大回撤、回测报告会由 SigAnaRecord 和 PortAnaRecord 自动写入 mlflow recorder目录落在~/.qlib/experiments本文两张图都是从里面出来的。第一站建议就用 LightGBM几分钟能跑完十多年的数据确认管线通了之后把 class 换成 Transformer、LSTM或把 handler 换成 Alpha360 喂序列模型都是改一行配置的事。想把量化研究基线尽快搭起来、或者打算把因子当强化学习状态空间用的开发者Alpha158 LightGBM 就是第一套可以直接复现的组合每个数字都能对照仓库里的配置找到出处。【免费下载链接】qlibQlib is an AI-oriented Quant investment platform that aims to use AI tech to empower Quant Research, from exploring ideas to implementing productions. Qlib supports diverse ML modeling paradigms, including supervised learning, market dynamics modeling, and RL, and is now equipped with https://github.com/microsoft/RD-Agent to automate RD process.项目地址: https://gitcode.com/GitHub_Trending/qli/qlib创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表