《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是微软开源的 ai 量化交易平台qlib,它包含了数据处理、模型训练、回测等模块,涵盖了 Alpha 挖掘、风险建模、组合优化等功能。
项目介绍
Qlib是一个面向AI的量化投资平台,旨在挖掘潜力,赋能研究,创造AI技术在量化投资中的价值。
它包含数据处理、模型训练、回测的完整 ML 管道;并涵盖了量化投资的整个链条:阿尔法寻求、风险建模、投资组合优化和订单执行。
使用 Qlib,用户可以轻松尝试创建更好的量化投资策略的想法。
Qlib 框架
在模块级别,Qlib 是一个由上述组件组成的平台。组件设计为松耦合模块,每个组件都可以独立使用。
名称 | 描述 |
Infrastructure层 | Infrastructure层为 Quant 研究提供底层支持。DataServer为用户管理和检索原始数据提供了一个高性能的基础设施。Trainer提供灵活的接口来控制模型的训练过程,使算法能够控制训练过程。 |
Workflow层 | Workflow层覆盖了量化投资的整个工作流程。Information Extractor为模型提取数据。Forecast Model专注于为其他模块生成各种预测信号(例如alpha、风险)。有了这些信号Decision Generator,就会产生要执行的目标交易决策(即投资组合、订单)Execution Env(即交易市场)。可能有多个级别Trading Agent和Execution Env(例如,订单执行器交易代理和日内订单执行环境可能表现得像日间交易环境并嵌套在日常投资组合管理交易代理和日间交易环境中) |
Interface层 | Interfacelayer 试图为底层系统提供一个用户友好的界面。Analyser模块将为用户提供预测信号、投资组合和执行结果的详细分析报告 |
快速开始
- 使用Qlib构建完整的 Quant 研究工作流程并尝试您的想法非常容易。
- 尽管使用公共数据和简单的模型,但机器学习技术在实际的量化投资中效果很好。
安装
注意:
- 建议使用Conda来管理您的 Python 环境。
- 请注意,在 Python 3.6 中安装 cython 在Qlib从源代码安装时会引发一些错误。如果用户在自己的机器上使用 Python 3.6,建议将 Python升级到 3.7 版本或使用condas Python从源代码安装。
- Qlib需要tables包,hdf5表中不支持python3.9。
用户可以根据以下命令通过 pip轻松安装。
pipinstall pyqlib
此外,用户还可以按照以下步骤通过源代码安装最新的开发版本:
在从源安装之前,用户需要安装一些依赖项:
pipinstallnumpy
pipinstall--upgrade cython
克隆存储库并按如下方式安装
gitclonehttps://github.com/microsoft/qlib.git &&cdqli
pip install
注意:您也可以安装 Qlib python setup.py install。但这不是推荐的方法。它会跳过pip并导致晦涩难懂的问题。例如,只有命令pip install . 可以覆盖由 安装的稳定版本pip install pyqlib,而命令python setup.py install 不能。
数据准备
通过运行以下代码加载和准备数据:
get 1d datapython scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cnget 1min datapython scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data_1min --region cn --interval1min
自动量化研究工作流程
Qlib 提供了一个名为qrun自动运行整个工作流程的工具(包括构建数据集、训练模型、回测和评估)。
量化研究工作流程: qrun使用 lightgbm 工作流程配置运行
cdexamplesAvoid running program under the directory contains `qlib`qrun benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml
如果用户想qrun在调试模式下使用,请使用以下命令:
python-m pdb qlib/workflow/cli.py examples/benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml
结果如下
Thefollowing are analysis results of the excess return without cost.riskmean0.000708std0.005626annualized_return0.178316information_ratio1.996555max_drawdown-0.081806Thefollowing are analysis results of the excess return with cost.riskmean0.000512std0.005626annualized_return0.128982information_ratio1.444287max_drawdown-0.091078
图形报告分析
预测信号(模型预测)分析:
团体累计回报
退货分配
信息系数 (IC)
投资组合分析:
Qlib 数据服务器的性能
数据处理的性能对于人工智能技术等数据驱动的方法很重要。Qlib 作为一个面向 AI 的平台,提供了数据存储和数据处理的解决方案。为了展示 Qlib 数据服务器的性能,我们将它与其他几种数据存储解决方案进行了比较。
- +(-)E用(出)表示ExpressionCache
- +(-)D用(出)表示DatasetCache
更多内容:https://github.com/microsoft/qlib
评论0