ARTICLE DETAIL

资讯详情

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

Qlib Alpha158 因子库快速上手指南:从配置到回测结果的完整路径

Qlib Alpha158 因子库快速上手指南:从配置到回测结果的完整路径 Qlib Alpha158 因子库快速上手指南从配置到回测结果的完整路径【免费下载链接】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/qlibAlpha158 是 Qlib 内置的即用因子库。158 个特征全部由 OHLCV 六个字段算出不用你手写因子。拉一份数据、跑一条 qrun 命令就能拿到训练好的 LightGBM 模型和完整回测报告。 ① 为什么需要它手动构造因子的成本假设你要自己搭一套因子库。写一个滚动因子要查资料、处理停牌和缺失一天算多的158 个因子就是三个月的活结果还可能不如基线。Alpha158 解决的就是这个痛点给你一套经过验证的因子集把时间省给模型和策略。有意思的是更原始的 Alpha36060 天 × 6 字段 360 个特征特征数更多但树模型下 Alpha158 往往更稳。区别在于Alpha158 把原始价格预先消化成了有名字、可解释的因子Alpha360 把消化工作留给模型。它到底怎么算的⚙️ ② Alpha158 核心设计3 个关键决策因子写成表达式而不是代码。它选了配置驱动的表达式而不是用 Python 逐因子硬编码。每个因子就是一句文本表达式比如Mean($close, 20)/$close由数据引擎读取时现算。增删因子 改一行配置不用动代码实现见因子计算源码。除以最新收盘价而不是用原始价格。它选了所有价格类因子除以当日 $close而不是直接喂原始价。A 股价格从 1 元到 1000 多元不除的话模型先学到哪只股票贵而不是哪只股票在动。除以 close 后因子无单位股票之间才能横向比较。窗口固定为 5 档 [5,10,20,30,60]。它选了预配置滚动窗口组而不是让用户自己调窗口。29 个滚动算子 × 5 个窗口 145 个因子5 日短周期到 60 日中周期都覆盖到默认参数拿来就能当研究基线。 ③ 里面有什么Alpha158 因子组按数据流拆解数据流一条线本地日线数据 → 表达式解析 → 因子矩阵 → 归一化 → 模型输入。按信号来源分 6 组数据输入层原始字段— 输入日线 6 字段 OHLCV来自~/.qlib/qlib_data/cn_data下的 bin 文件输出引擎可引用的$close、$volume等原始列。K 线形态组9 个— 只用当日 OHLC描述单日 K 线形状。输入开100、收101、高102、低99 → 输出 KMID0.01实体中点位置、KLEN0.03K 线长度。价格位置组4 个— 当日开/高/低/vwap 除以 close全部围绕 1 波动。今日最低 98、收盘 100 → LOW00.98。价格滚动组75 个— 15 个算子MA/ROC/STD/BETA/RANK/RSV/MAX/MIN 等× 5 个滚动窗口。RANK20 当日收盘价在近 20 日的排位取值 0~1RSV20 接近 1 表示价格贴近 20 日最高位。量价相关组10 个— CORR/CORD 度量价格与成交量的线性关系。CORR20 明显大于 0说明这 20 天里量价同向。量能方向组60 个— 量能统计VMA/VSTD/WVMA 等 涨跌统计CNTP/SUMP 等。SUMP20 近 20 日总涨幅 / 总绝对变动接近 1 说明以涨为主类似 RSI。158 个特征算完后还有两步label 取 2 日未来收益Ref($close, -2)/Ref($close, -1) - 1训练集先 DropnaLabel 删缺失行再做截面 ZScore 标准化。最终输出是股票 × 日期特征矩阵模型直接可用。 ④ Alpha158 五分钟跑通安装到回测的 3 步第一步安装并拉数据。git clone https://gitcode.com/GitHub_Trending/qli/qlib cd qlib python setup.py install python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn你应该看到安装完成提示随后数据下载完毕落在~/.qlib/qlib_data/cn_data。第二步跑完整工作流。cd examples qrun benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml你应该看到LightGBM 用 158 个特征训练控制台输出日度 IC/ICIR以及一张含成本前后年化超额收益的结果表。第三步改一处配置验证理解。在工作流配置文件里改Alpha158的参数比如 instruments 换成 csi500。你应该看到数据集股票数量相应变化整条流程自动重跑。 ⑤ 怎么判断它在工作看一张 IC 图这张图是模型日度 IC 的时序曲线。IC 线稳定在 0 上方才说明模型把股票排出了高低排得靠前的后续收益确实更高。判断标准测试段 ICIR 大于 0.5说明因子有区分度若 IC 线在 0 附近来回贴模型基本等于瞎猜回头检查数据分段和 label 配置。⚠️ ⑥ Alpha158 使用的 3 个高频踩坑点回测收益高得离谱。你可能会发现年化超额是基准的数倍——原因是 label 用了 1 日未来收益等于偷看未来。解法保持默认 2 日前向标签Ref($close, -2)/Ref($close, -1) - 1。测试期 IC 明显高于训练期。原因是归一化统计量在全区间上拟合测试数据参与了训练统计。解法配置里显式设置fit_start_time/fit_end_time把拟合窗口限制在训练段。数据集一股都没加载。你可能会把 instruments 改成 csi500 后训练直接报错或 IC 为空——原因是本地数据里没这个股票池。解法先用instruments: csi300确认流程通了再去数据目录里核对 instruments 列表。➡️ ⑦ 下一步和 Alpha360 做对照cd examples qrun benchmarks/LightGBM/workflow_config_lightgbm_Alpha360.yaml改因子组合编辑 Alpha158 工作流配置读懂因子表达式通读 qlib/contrib/data/loader.py【免费下载链接】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),仅供参考
返回列表