Qlib库介绍

有什么新消息!   💖

最近发布的功能

特征地位
KRNN 和三明治模型📈发布于 2023 年 5 月 26 日
发布 Qlib v0.9.0

:八猫:

 发布于 2022 年 12 月 9 日
强化学习学习框架🔨 📈 发布于 2022 年 11 月 10 日。#1332#1322#1316#1299#1263#1244#1169#1125#1076
HIST 和 IGMTF 模型📈发布于 2022 年 4 月 10 日
Qlib笔记本教程📖发布于 2022 年 4 月 7 日
伊博维斯帕指数数据🍚发布于 2022 年 4 月 6 日
时间点数据库🔨发布于 2022 年 3 月 10 日
Arctic 提供商后端和订单簿数据示例🔨发布于 2022 年 1 月 17 日
基于元学习的框架和 DDG-DA📈 🔨发布于 2022 年 1 月 10 日
基于规划的投资组合优化🔨发布于 2021 年 12 月 28 日
发布 Qlib v0.8.0

:八猫:

 发布于 2021 年 12 月 8 日
添加模型📈发布于 2021 年 11 月 22 日
ADARNN模型📈发布于 2021 年 11 月 14 日
TCN模型📈发布于 2021 年 11 月 4 日
嵌套决策框架🔨于 2021 年 10 月 1 日发布。示例文档
时间路由适配器 (TRA)📈发布于 2021 年 7 月 30 日
变压器和本地变压器📈发布于 2021 年 7 月 22 日
发布 Qlib v0.7.0

:八猫:

 发布于 2021 年 7 月 12 日
TCTS模型📈 2021 年 7 月 1 日发布
在线服务和自动模型滚动🔨 发布于 2021 年 5 月 17 日
双系综模型📈发布于 2021 年 3 月 2 日
高频数据处理示例🔨发布于 2021 年 2 月 5 日
高频交易示例📈 2021 年 1 月 28 日发布的部分代码
高频数据(1分钟)🍚发布于 2021 年 1 月 27 日
平板电脑型号📈发布于 2021 年 1 月 22 日

此处未列出 2021 年之前发布的功能。

Qlib是一个开源的、面向人工智能的量化投资平台,旨在利用人工智能技术在量化投资中从探索想法到落地产品,发挥潜力、赋能研究、创造价值。 Qlib 支持多种机器学习建模范例,包括监督学习、市场动态建模和强化学习。

Qlib 正在发布越来越多不同范式的 SOTA Quant 研究著作/论文,以协作解决量化投资的关键挑战。例如,1) 使用监督学习从丰富且异构的金融数据中挖掘市场复杂的非线性模式,2) 使用自适应概念漂移技术对金融市场的动态性质进行建模,以及 3) 使用强化学习对持续投资进行建模决策并协助投资者优化交易策略。

它包含数据处理、模型训练、回测的完整机器学习流程;涵盖量化投资的整个链条:阿尔法寻求、风险建模、投资组合优化和订单执行。更多详情请参阅我们的论文《Qlib:面向人工智能的量化投资平台》

框架、教程、数据和 DevOps定量研究的主要挑战和解决方案

计划

正在开发的新功能(按预计发布时间排序)。您对这些功能的反馈非常重要。

Qlib框架

Qlib的高层框架可以在上面找到(用户可以在深入了解Qlib设计的详细框架时找到)。这些组件被设计为松耦合模块,每个组件都可以独立使用。

Qlib 提供了强大的基础设施来支持定量研究。数据始终是重要的组成部分。强大的学习框架旨在支持不同层次的不同学习范式(例如强化学习监督学习)和模式(例如市场动态建模)。通过对市场进行建模,交易策略将生成将要执行的交易决策。不同级别或粒度的多种交易策略和执行器可以嵌套在一起进行优化和运行。最后,将提供全面的分析,并且模型可以低成本地在线服务。

快速开始

本快速入门指南试图演示

  1. 使用Qlib构建完整的定量研究工作流程并尝试您的想法非常容易。
  2. 尽管有公开数据简单模型,机器学习技术在实际的量化投资中效果很好。

这是一个快速演示,展示了如何安装Qlib和运行 LightGBM qrun但是,请确保您已经按照说明准备好数据。

安装

下表展示了受支持的 Python 版本Qlib

使用 pip 安装从源安装阴谋
Python 3.7✔️✔️✔️
Python 3.8✔️✔️✔️
Python 3.9✔️

笔记

  1. 建议使用Conda来管理您的 Python 环境。在某些情况下,在环境之外使用Pythonconda可能会导致头文件丢失,从而导致某些包安装失败。
  2. 请注意,在 Python 3.6 中安装 cythonQlib从源代码安装时会出现一些错误。如果用户在机器上使用Python 3.6,建议将Python升级到3.7版本或使用condaPythonQlib从源安装。
  3. 对于Python 3.9,Qlib支持运行工作流程,例如训练模型、进行回测并绘制大多数相关图形(包括在笔记本中)。不过,目前不支持模型性能绘图,我们将在将来升级依赖包时修复此问题。
  4. Qlib需要tables包,hdf5表中不支持python3.9。

使用 pip 安装

用户可以Qlib按照以下命令通过pip轻松安装。

  pip install pyqlib

注意:pip 将安装最新的稳定 qlib。然而,qlib 的主要分支正在积极开发中。如果你想测试主分支中最新的脚本或函数。请使用以下方法安装qlib。

从源安装

Qlib另外,用户可以按照以下步骤通过源码安装最新的dev版本:

  • 在从源安装之前Qlib,用户需要安装一些依赖项:

    pip install numpy
    pip install --upgrade  cython
  • 克隆存储库并按Qlib如下方式安装。

    git clone https://github.com/microsoft/qlib.git && cd qlib
    pip install .

    注意python setup.py install:您也可以安装 Qlib 。但这不是推荐的方法。它会跳过pip并导致难以理解的问题。例如,只有命令pip install . 可以覆盖安装的稳定版本pip install pyqlib,而命令则python setup.py install 不能

提示:如果您无法Qlib在您的环境中安装或运行示例,比较您的步骤和CI 工作流程可能会帮助您找到问题。

Mac 提示:如果您将 Mac 与 M1 一起使用,则在构建 LightGBM 轮子时可能会遇到问题,这是由于缺少 OpenMP 的依赖项造成的。要解决这个问题,先安装openmp brew install libomp,然后运行pip install .即可成功构建。

数据准备

通过运行以下代码加载并准备数据:

通过模块获取

# get 1d data
python -m qlib.run.get_data qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn

# get 1min data
python -m qlib.run.get_data qlib_data --target_dir ~/.qlib/qlib_data/cn_data_1min --region cn --interval 1min

从源头获取

# get 1d data
python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn

# get 1min data
python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data_1min --region cn --interval 1min

该数据集是由爬虫脚本收集的公共数据创建的,这些数据已在同一存储库中发布。用户可以用它创建相同的数据集。数据集描述

注意,数据来自雅虎财经,数据可能并不完美。如果用户拥有高质量的数据集,我们建议用户准备自己的数据。如需了解更多信息,用户可以参考相关文档

自动更新每日频率数据(来自雅虎财经)

如果用户只想在历史数据上尝试他们的模型和策略,则此步骤是可选的。

建议用户手动更新一次数据(--trading_date 2021-05-25),然后设置为自动更新。

注意:用户无法基于Qlib提供的离线数据增量更新数据(删除了一些字段以减少数据大小)。用户应该使用雅虎收集器从头开始下载雅虎数据,然后增量更新它。

更多信息请参考:yahoo Collector

  • 每个交易日自动更新数据到“qlib”目录(Linux)

    • 使用crontabcrontab -e

    • 设置定时任务:

      <span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>* * * * 1-5 python <script path> update_data_to_bin --qlib_data_1d_dir <user data dir>
      </code></span></span></span>
      • 脚本路径scripts/data_collector/yahoo/collector.py
  • 手动更新数据

    <span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python scripts/data_collector/yahoo/collector.py update_data_to_bin --qlib_data_1d_dir <user data dir> --trading_date <start date> --end_date <end date>
    </code></span></span></span>
    • Trading_date : 交易日开始
    • end_date : 交易日结束(不包括在内)

自动定量研究工作流程

Qlib 提供了一个名为qrun自动运行整个工作流程的工具(包括构建数据集、训练模型、回测和评估)。您可以按照以下步骤启动自动定量研究工作流程并进行图形报告分析:

  1. 定量研究工作流程: qrun使用 lightgbm 工作流程配置运行(workflow_config_lightgbm_Alpha158.yaml,如下所示。

      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

    结果qrun如下,详细结果请参见日内交易。

    'The following are analysis results of the excess return without cost.'
                           risk
    mean               0.000708
    std                0.005626
    annualized_return  0.178316
    information_ratio  1.996555
    max_drawdown      -0.081806
    'The following are analysis results of the excess return with cost.'
                           risk
    mean               0.000512
    std                0.005626
    annualized_return  0.128982
    information_ratio  1.444287
    max_drawdown      -0.091078

    以下是详细的文档qrun工作流程

  2. 图形报告分析:运行examples/workflow_by_code.ipynbjupyter notebook获取图形报告

    • 预测信号(模型预测)分析

      • 团体累计回报 

        累计回报

      • 回报分配 

        长短

      • 信息系数(IC) 

        信息系数

         

        每月IC

         

        我知道了

      • 预测信号的自相关(模型预测) 

        自相关

    • 投资组合分析

      • 回测返回 

        报告

    • 对上述结果的解释

通过代码构建定制的定量研究工作流程

自动工作流程可能不适合所有定量研究人员的研究工作流程。为了支持灵活的定量研究工作流程,Qlib 还提供了模块化接口,允许研究人员通过代码构建自己的工作流程。是通过代码定制的定量研究工作流程的演示。

定量研究的主要挑战和解决方案

量化投资是一个非常独特的场景,有许多关键挑战需要解决。目前,Qlib 为其中的几个提供了一些解决方案。

预测:寻找有价值的信号/模式

准确预测股价走势是构建盈利投资组合的重要组成部分。然而,金融市场中数据量巨大、格式多样,给建立预测模型带来了挑战。

越来越多的 SOTA Quant 研究著作/论文,重点关注构建预测模型以挖掘复杂金融数据中的有价值的信号/模式,Qlib

以下是基于 构建的模型列表Qlib

非常欢迎您对新 Quant 模型的公关。

可以在此处Alpha158找到每个模型在和数据集上的性能。Alpha360

运行单个模型

上面列出的所有模型都可以运行Qlib。用户可以通过benchmarks文件夹找到我们提供的配置文件以及有关模型的一些详细信息。更多信息可以在上面列出的模型文件中检索。

Qlib提供了三种不同的方式来运行单个模型,用户可以选择最适合自己情况的一种:

  • 用户可以使用上述工具qrun从配置文件运行模型的工作流程。

  • 用户可以workflow_by_code根据文件夹中列出的脚本examples创建 python 脚本。

  • run_all_model.py用户可以使用文件夹中列出的脚本examples来运行模型。以下是要使用的特定 shell 命令的示例:python run_all_model.py run --models=lightgbm,其中--models参数可以采用上面列出的任意数量的模型(可用模型可以在基准测试中找到)。有关更多用例,请参阅文件的docstrings

    • 注意:每个基线都有不同的环境依赖,请确保您的Python版本符合要求(例如由于限制,TFT仅支持Python 3.6~3.7 tensorflow==1.15.0

运行多个模型

Qlib还提供了一个run_all_model.py可以运行多个模型进行多次迭代的脚本。 (:该脚本目前仅支持Linux,后续会支持其他操作系统。此外,它也不支持多次并行运行同一模型,这也会在未来的开发中修复。)

该脚本将为每个模型创建一个独特的虚拟环境,并在训练后删除该环境。因此,仅生成并存储诸如IC和结果之类的实验结果。backtest

以下是运行所有模型 10 次迭代的示例:

python run_all_model.py run 10

它还提供 API 来立即运行特定模型。有关更多用例,请参阅文件的docstrings

由于金融市场环境的非平稳性,不同时期的数据分布可能会发生变化,这使得建立在训练数据上的模型的性能在未来的测试数据中出现衰减。因此,使预测模型/策略适应市场动态对于模型/策略的性能非常重要。

以下是基于 的解决方案列表Qlib

强化学习:建模连续决策

Qlib 现在支持强化学习,该功能旨在模拟持续投资决策。此功能可帮助投资者通过从与环境的交互中学习来优化其交易策略,以最大化累积奖励的某些概念。

Qlib以下是按场景分类的解决方案列表。

下面是这个场景的介绍。下面的所有方法都在这里进行了比较。

定量数据集动物园

数据集在Quant中起着非常重要的作用。以下是构建的数据集的列表Qlib

数据集美国市场中国市场
阿尔法360
阿尔法158

是使用 构建数据集的教程Qlib。非常欢迎您构建新的定量数据集的 PR。

学习框架

Qlib 具有高度可定制性,并且它的许多组件都是可以学习的。可学习组件是Forecast Model和的实例Trading Agent。它们是基于Learning Framework层学习的,然后应用于Workflow层中的多个场景。学习框架Workflow也利用了该层(例如共享Information Extractor、基于创建环境Execution Env)。

根据学习范式,可以分为强化学习和监督学习。

  • 对于监督学习,详细的文档可以在这里找到。
  • 对于强化学习,详细的文档可以在这里找到。 Qlib 的 RL 学习框架利用Execution EnvWorkflow来创建环境。值得注意的是,它NestedExecutor也受到支持。这使用户能够一起优化不同级别的策略/模型/代理(例如,针对特定投资组合管理策略优化订单执行策略)。

关于 Qlib 的更多信息

如果你想快速浏览一下 qlib 最常用的组件,你可以尝试这里的笔记本。

详细文档组织在docs中。 以 html 格式构建文档需要Sphinx和 readthedocs 主题。

cd docs/
conda install sphinx sphinx_rtd_theme -y
# Otherwise, you can install them with pip
# pip install sphinx sphinx_rtd_theme
make html

您还可以直接在线查看最新文档。

Qlib 正在积极持续的开发中。我们的计划在路线图中,它作为github 项目进行管理。

离线模式和在线模式

Qlib的数据服务器可以部署为Offline模式或Online模式。默认模式为离线模式。

模式下Offline,数据将部署在本地。

Online模式下,数据将被部署为共享数据服务。数据及其缓存将由所有客户端共享。由于缓存命中率较高,预计数据检索性能将得到改善。它也会消耗更少的磁盘空间。在线模式的文档可以在Qlib-Server中找到。在线模式可以使用基于Azure CLI的脚本自动部署。在线数据服务器的源代码可以在Qlib-Server存储库中找到。

Qlib 数据服务器的性能

数据处理的性能对于人工智能技术等数据驱动方法非常重要。 Qlib作为一个面向AI的平台,提供了数据存储和数据处理的解决方案。为了演示 Qlib 数据服务器的性能,我们将其与其他几种数据存储解决方案进行比较。

我们通过完成相同的任务来评估几种存储解决方案的性能,该任务根据股票市场的基本 OHLCV 每日数据(2007 年至 2020 年每天 800 只股票)创建一个数据集(14 个特征/因素)。任务涉及数据查询和处理。

HDF5MySQLMongoDBInfluxDBQlib-E-DQlib +E -DQlib +E +D
总计 (1CPU)(秒)184.4±3.7365.3±7.5253.6±6.7368.2±3.6147.0±8.847.6±1.07.4±0.3
总计 (64CPU)(秒)8.8±0.64.2±0.2
  • +(-)E表示(出)ExpressionCache
  • +(-)D表示(出)DatasetCache

大多数通用数据库需要花费太多时间来加载数据。在深入研究底层实现后,我们发现通用数据库解决方案中的数据经过了太多层接口和不必要的格式转换。这种开销极大地减慢了数据加载过程。 Qlib 数据以紧凑的格式存储,可以有效地组合成数组以进行科学计算。

相关报道

联系我们

  • 30
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Anaconda安装qlib的步骤如下: 1. 打开Anaconda Prompt (Anaconda3)命令行工具。 2. 使用conda命令创建一个新的Python虚拟环境,并指定Python版本为3.8。例如,运行以下命令: ```shell conda create --prefix=D:\Anaconda3\envs\qlibenv python=3.8 ``` 这里的`--prefix`后面是你自己安装环境的位置,你可以选择将环境放在自己的环境目录下。 3. 激活创建的虚拟环境。你可以运行以下命令: ```shell conda activate qlibenv ``` 或者 ```shell conda activate D:\Anaconda3\envs\qlibenv ``` 4. 在激活的环境下,使用pip安装qlib。运行以下命令: ```shell pip install pyqlib ``` 这将会通过pip安装qlib及其依赖。 5. 使用conda list命令,确认qlib已经成功安装。运行以下命令: ```shell conda list ``` 在输出的列表中,你应该能够找到已安装的qlib。 6. 最后,在Python环境下导入qlib并打印版本号,以确认安装成功。在Python环境中运行以下代码: ```python import qlib print(qlib._version_) ``` 这将会导入qlib并打印出其版本号。 通过以上步骤,你就可以成功使用Anaconda安装qlib了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [qlib体验](https://blog.csdn.net/qq_46050979/article/details/127405642)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [安装qlib,踩坑](https://blog.csdn.net/weixin_44295653/article/details/111150358)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值