news 2026/5/13 19:25:05

【Qlib框架】因子定义层及整体框架(alpha因子库+数据预处理+模型预测+IC分析+回测backtestdaily+风险分析+交易质量分析)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Qlib框架】因子定义层及整体框架(alpha因子库+数据预处理+模型预测+IC分析+回测backtestdaily+风险分析+交易质量分析)

系列文章目录

【Qlib】数据源investment_data项目思路+数据集详解


文章目录

  • 系列文章目录
  • 一、Qlib 因子挖掘体系结构
  • 二、因子定义层(Expression 表达式系统)
  • 三、qlib框架整体逻辑

一、Qlib 因子挖掘体系结构

Qlib 因子挖掘体系 ┌─────────────────────────────────────────────────────────────────────────────┐ │ 因子定义层(Expression 表达式系统) │ │ │ │ 表达式字符串 parse_field()解析 │ │"Ref($close, 5)/$close"──────────→ Operators.Ref(Feature("close"),5)│ │ └─── Feature("close")──→ 读.bin数据 │ │ │ │ 支持的算子分类: │ │ ┌─────────────┬──────────────────────┬──────────────────────────────────┐ │ │ │ Element-Wise│ Pair-Wise │ Rolling/Window │ │ │ │ Abs,Log │ Add,Sub,Mul,Div │ Ref,Mean,Std,Var │ │ │ │ Sign,Mask │ Gt,Lt,Eq,And,Or │ Max,Min,Sum,Skew,Kurt │ │ │ │ Not │ Power,Greater,Less│ Quantile,Rank,RSV │ │ │ │ │ │ Slope,Rsquare,Resi │ │ │ └─────────────┴──────────────────────┴──────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ 因子配置层(数据预处理 Handler) │ │ │ │ Alpha158DL/Alpha360DL(qlib/contrib/data/loader.py)│ │ │ │ 定义哪些因子被使用: │ │ ┌──────────────────────────────────────────────────────────────────────┐ │ │ │ feature=[│ │ │ │"($close-$open)/$open",← K线因子 KMID │ │ │ │"($high-$low)/$open",← K线因子 KLEN │ │ │ │"Ref($close, 5)/$close",← 动量因子 ROC5 │ │ │ │"Mean($close, 5)/$close",← 均线因子 MA5 │ │ │ │"Std($close, 5)/$close",← 波动因子 STD5 │ │ │ │"Max($high, 20)/$close",← 压力位因子 MAX20 │ │ │ │"Min($low, 20)/$close",← 支撑位因子 MIN20 │ │ │ │"Slope($close, 5)/$close",← 趋势因子 BETA5 │ │ │ │...│ │ │ │]│ │ │ │ label=["Ref($close, -2)/Ref($close, -1) - 1"]← 标签定义 │ │ │ └──────────────────────────────────────────────────────────────────────┘ │ │ │ │ 数据源:QlibDataLoader → D.features()→ 表达式引擎加载+计算 │ └─────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ 表达式计算引擎(按需计算+自动缓存) │ │ │ │ D.features(instruments,fields,start_time,end_time)│ │ └── DatasetD.dataset()│ │ └── dataset_processor()│ │ └── inst_calculator(每只股票)│ │ └──forfieldinfields:│ │ ExpressionD.expression(inst,field)│ │ └── expression.load(inst,start,end,freq)│ │ ↓ │ │ ┌──────────────────────────────┐ │ │ │ 表达式树递归求值 │ │ │ │ │ │ │ │ Ref($close,5)/$close │ │ │ │ ├── Ref($close,5)│ │ │ │ │ └── Feature(close)│ │ │ │ │ └── read.bin│ │ │ │ └── Feature(close)─┐ │ │ │ │ └── np.divide(...)│ │ │ │ └──────────────────────┴───────┘ │ │ ↓ │ │ DiskExpressionCache 自动缓存计算结果 │ │ → features/{stock}/{hash}.bin(下次直接读取) │ └─────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ 后处理(Processors) │ │ │ │ 在 DataHandlerLP 中编排处理器链: │ │ │ │ 原始数据 → shared_processors → infer_processors → 推理数据 │ │ → learn_processors → 训练数据 │ │ │ │ 常见 Processor: │ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ DropnaLabel ← 删除标签缺失的样本 │ │ │ │ ZScoreNorm ← 横截面Z值标准化(每只股票/每天)│ │ │ │ CSZScoreNorm ← 截面Z值标准化 │ │ │ │ Fillna ← 填充缺失值 │ │ │ │ MinMaxNorm ← 最大最小值归一化 │ │ │ │ Winsorize ← 极值处理(去极值)│ │ │ │ ProcessInf ← 处理无穷值 │ │ │ └─────────────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ 模型训练/评估 │ │ │ │ Dataset 将 handler 包装为训练集/验证集/测试集分段 │ │ → 模型(LGB/GRU/TabNet/...)从中获取特征和标签进行训练 │ │ → 训练的模型可用来做因子挖掘(特征重要性、权重分析)│ │ │ │ 因子评估工具: │ │-qlib/contrib/evaluate.py ← IC分析、Rank IC、分组收益等 │ │-qlib/contrib/analyze/← 因子分析工具 │ └─────────────────────────────────────────────────────────────────────────────┘

二、因子定义层(Expression 表达式系统)

三、qlib框架整体逻辑

“数据读取—>因子表达层—>alpha158+alpha360—>数据预处理DataHandler—>模型预测—>IC分析—>回测体系(backtestdaily+风险分析+交易质量分析)”全流程总结

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/13 19:24:05

taotokentokenplan套餐如何为高频用户节省使用成本

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 taotoken tokenplan套餐如何为高频用户节省使用成本 对于每月有稳定大模型调用需求的开发者或小型工作室而言,成本的可…

作者头像 李华
网站建设 2026/5/13 19:18:05

OBS Source Record插件:基于滤镜架构的高效多源同步录制技术方案

OBS Source Record插件:基于滤镜架构的高效多源同步录制技术方案 【免费下载链接】obs-source-record 项目地址: https://gitcode.com/gh_mirrors/ob/obs-source-record OBS Source Record插件通过创新的滤镜架构设计,解决了传统OBS Studio在多源…

作者头像 李华
网站建设 2026/5/13 19:17:17

产品竞争策略方法论:构建“差异化 + 结构化 + 系统化”的竞争优势

目录 一、问题与背景 二、本文将系统讲解 三、产品竞争的本质与底层逻辑 3.1 竞争的本质 3.2 竞争的三层结构(必须理解) 3.3 IoT竞争的特殊性 四、IoT产品竞争结构模型(核心框架) 4.1 五层竞争模型(核心体系) 4.2 竞争演进路径 五、五大竞争策略模型(核心方法…

作者头像 李华
网站建设 2026/5/13 19:08:19

鸿蒙全局安全水印组件实践:支持动态更新、全局生效、自定义样式

1、需求背景 很多企业内部应用,都会有这样的需求: 页面显示员工姓名、工号防止截图泄露全局统一水印动态切换水印内容不影响页面交互 效果如下: 2、核心思路 本方案采用 纯 ArkUI 水印覆盖方案,核心实现思路: “砖墙…

作者头像 李华