《开源精选》是我们分享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 版本或使用conda's Python从源代码安装。Qlib需要tables包,hdf5表中不支持python3.9。用户可以根据以下命令通过 pip轻松安装。
pip install pyqlib此外,用户还可以按照以下步骤通过源代码安装最新的开发版本:
在从源安装之前,用户需要安装一些依赖项:
pip install numpypip install –upgrade cython克隆存储库并按如下方式安装
git clone 不能。
数据准备
通过运行以下代码加载和准备数据:
# get 1d datapython scripts/get_data.py qlib_data –target_dir ~/.qlib/qlib_data/cn_data –region cn# get 1min datapython scripts/get_data.py qlib_data –target_dir ~/.qlib/qlib_data/cn_data_1min –region cn –interval 1min自动量化研究工作流程Qlib 提供了一个名为qrun自动运行整个工作流程的工具(包括构建数据集、训练模型、回测和评估)。
量化研究工作流程: qrun使用 lightgbm 工作流程配置运行
cd examples # Avoid 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结果如下
'The following are analysis results of the excess return without cost.' riskmean 0.000708std 0.005626annualized_return 0.178316information_ratio 1.996555max_drawdown -0.081806'The following are analysis results of the excess return with cost.' riskmean 0.000512std 0.005626annualized_return 0.128982information_ratio 1.444287max_drawdown -0.091078图形报告分析预测信号(模型预测)分析:
团体累计回报
退货分配
信息系数 (IC)
投资组合分析:
Qlib 数据服务器的性能数据处理的性能对于人工智能技术等数据驱动的方法很重要。Qlib 作为一个面向 AI 的平台,提供了数据存储和数据处理的解决方案。为了展示 Qlib 数据服务器的性能,我们将它与其他几种数据存储解决方案进行了比较。
+(-)E用(出)表示ExpressionCache+(-)D用(出)表示DatasetCache更多内容: