当前位置: 首页 > news >正文

【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+风险分析+交易质量分析)”全流程总结

http://www.jsqmd.com/news/810629/

相关文章:

  • Bilibili视频下载终极指南:如何三步搞定大会员4K视频本地化
  • ChatGPT开发者实战指南:从API集成到应用部署的完整资源导航
  • JT808协议实战:用JTXQ模拟终端复现车道偏离报警全流程(附日志分析)
  • 2026哪个机构主任护师通过率高?过来人实测对比,避坑必看 - 医考机构品牌测评专家
  • 从开发者反馈看Taotoken标准OpenAI协议兼容性的实际表现
  • 088、Python网络服务开发:HTTP服务器
  • 2026年靠谱线下红娘机构推荐:合规婚恋服务机构选型与场景适配深度分析 - 产业观察网
  • 【题解】CF1603D Artistic Partition
  • 从零到一:51单片机蓝牙遥控车实战指南(附避坑要点)
  • 前端超能力:让浏览器听你指挥
  • 2026年5月盘点:3家主任护师备考机构通过率排名,第1名断层领先 - 医考机构品牌测评专家
  • SOS-dp
  • FPGA新手避坑指南:Quartus II 13.1下NCO IP核的完整配置与授权实战
  • 2026江苏主任护师考试培训机构实力排名:3家培训机构全方位评测 - 医考机构品牌测评专家
  • 每日算法快闪赛
  • 百达翡丽鹦鹉螺出手前必看:广州五家门店实测谁更实在 - 奢侈品回收测评
  • 使用Helm Chart在Kubernetes部署高可用authentik身份认证中心
  • 089、Python玩转硬件:用pyserial搞定串口通信那些坑
  • 对比直接使用官方 API 观察到的 Taotoken 路由容错效果
  • 2026年丽水黄金回收哪家靠谱?五店深度测评与打分 - 生活测评君
  • GPU时代的有用浪费:从效率至上到算力换一切的工程范式转变
  • Java 21 面试常见问题汇总
  • 在持续集成环境中集成 Taotoken CLI 实现自动化配置与密钥轮换
  • 从0到1,构建你的第一个AI Agent:核心原理与实战指南
  • Cursor Pro破解终极指南:开源工具cursor-free-vip实现AI编程助手永久免费使用
  • 储能项目一操作记录
  • Zed编辑器深色光标主题:提升编码体验的视觉工程实践
  • 5.参考论文的文献引用没有标数字,要不要标数字?
  • 茉莉花插件:如何用Jasminum解决中文文献管理的三大痛点
  • 座机打电话时,能设置在对方屏幕上显示的公司名称吗?开通号码认证业务