Qlib 是一个开源的、面向 AI 的量化投资平台,旨在利用 AI 技术在量化投资中发挥潜力、赋能研究、创造价值,从探索想法到实施产品。Qlib 支持多种机器学习建模范式,包括监督学习、市场动态建模和强化学习。
Qlib 中发布了越来越多不同范式的 SOTA Quant 研究著作/论文,以共同解决量化投资中的关键挑战。例如,
1) 使用监督学习从丰富的异构金融数据中挖掘市场复杂的非线性模式,
2) 使用自适应概念漂移技术对金融市场的动态性质进行建模,
3) 使用强化学习对持续投资决策进行建模,并帮助投资者优化他们的交易策略。
它包含数据处理、模型训练、回溯测试的完整 ML 管道;并涵盖量化投资的整个链条:Alpha Seeking、Risk Modeling、Portfolio Optimization 和 Order Execution。
安装
下表演示了支持的 Python 版本:Qlib
使用 pip 安装 | 从源码安装 | 情节 | |
---|---|---|---|
Python 3.8 版 | ✔️ | ✔️ | ✔️ |
Python 3.9 版本 | ✔️ | ✔️ | ✔️ |
Python 3.10 版 | ✔️ | ✔️ | ✔️ |
Python 3.11 版 | ✔️ | ✔️ | ✔️ |
Python 3.12 版 | ✔️ | ✔️ | ✔️ |
注意:
- 建议使用 Conda 来管理 Python 环境。在某些情况下,在环境之外使用 Python 可能会导致头文件丢失,从而导致某些包安装失败。
conda
- 请注意,从 source 安装时,在 Python 3.6 中安装 cython 会引发一些错误。如果用户在其计算机上使用 Python 3.6,建议将 Python 升级到版本 3.8 或更高版本,或使用 的 Python 从源代码安装。
QlibcondaQlib
使用 pip 安装
用户可以根据以下命令通过 pip 轻松安装。Qlib
pip install pyqlib
注意:pip 将安装最新的稳定 qlib。但是,qlib 的主分支正在积极开发中。如果要在 main 分支中测试最新的脚本或函数。请使用以下方法安装 qlib。
从源码安装
此外,用户还可以按照以下步骤通过源码安装最新的开发版本:Qlib
-
在从源码安装之前,用户需要安装一些依赖:
Qlib
pip install numpy pip install --upgrade cython
-
克隆存储库并按如下方式安装。
Qlib
git clone https://github.com/microsoft/qlib.git && cd qlib pip install . # `pip install -e .[dev]` is recommended for development. check details in docs/developer/code_standard_and_dev_guide.rst
提示:如果您无法在环境中安装或运行示例,则比较您的步骤和 CI 工作流程可能有助于您找到问题。Qlib
适用于 Mac 的提示:如果您将 Mac 与 M1 一起使用,则在为 LightGBM 构建轮子时可能会遇到问题,这是由于缺少 OpenMP 的依赖项。要解决此问题,请先安装 openmp,然后运行 以成功构建它。brew install libomppip install .
数据准备
❗ 由于更限制数据安全策略。官方数据集暂时关闭。您可以尝试社区提供的此数据源。 以下是下载最新数据的示例。
wget https://github.com/chenditc/investment_data/releases/latest/download/qlib_bin.tar.gz
mkdir -p ~/.qlib/qlib_data/cn_data
tar -zxvf qlib_bin.tar.gz -C ~/.qlib/qlib_data/cn_data --strip-components=1
rm -f qlib_bin.tar.gz
下面的官方数据集将在不久的将来恢复。
通过运行以下代码加载和准备数据:
使用模块 Get
# 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
此数据集由爬网程序脚本收集的公共数据创建,这些数据已在 相同的存储库。 用户可以使用它创建相同的数据集。数据集描述
请注意,数据是从雅虎财经收集的,数据可能并不完美。 如果用户拥有高质量的数据集,我们建议他们准备自己的数据。有关更多信息,用户可以参考相关文档。
Docker 镜像1. 从 Docker Hub 存储库中提取 Docker 镜像
docker pull pyqlib/qlib_image_stable:stable
-
启动新的 Docker 容器
docker run -it --name <container name> -v <Mounted local directory>:/app qlib_image_stable
-
此时,您位于 docker 环境中,可以运行 qlib 脚本。一个例子:
>>> python scripts/get_data.py qlib_data --name qlib_data_simple --target_dir ~/.qlib/qlib_data/cn_data --interval 1d --region cn >>> python qlib/workflow/cli.py examples/benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml
-
退出容器
>>> exit
-
重启容器
docker start -i -a <container name>
-
停止容器
docker stop <container name>
-
删除容器
docker rm <container name>