Qlib 初始化

初始化

请按照以下步骤来初始化 Qlib

下载并准备数据:执行以下命令来下载股票数据。请注意,数据是从 Yahoo Finance 上收集的,可能并不完美。如果用户拥有高质量的数据集,我们建议用户准备自己的数据。有关自定义数据集的详细信息,请参考 Data

python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn

有关 get_data.py 的更多信息,请参考 数据准备

在调用其他 API 之前,请先初始化 Qlib,使用以下代码:

import qlib
# 区域取值 [REG_CN, REG_US]
from qlib.constant import REG_CN
provider_uri = "~/.qlib/qlib_data/cn_data"  # 目标目录
qlib.init(provider_uri=provider_uri, region=REG_CN)

备注

不要在 Qlib 的仓库目录中导入 qlib 包,否则可能会出现错误。

参数

除了 provider_uriregionqlib.init 还有其他参数。 以下是 qlib.init 的几个重要参数(Qlib 有很多配置项,这里只限制了部分参数。更详细的设置可以在 这里 找到):

  • provider_uri

    类型:str。Qlib 数据的 URI。例如,它可以是由 get_data.py 加载的数据存储位置。

  • region
    类型:str,可选参数(默认值:qlib.constant.REG_CN)。

    当前支持值有:qlib.constant.REG_US (’us’) 、 qlib.constant.REG_CN (’cn’)。不同的 region 值将导致不同的股票市场模式。

    • qlib.constant.REG_US :美国股票市场。

    • qlib.constant.REG_CN :中国股票市场。

    不同的模式将导致不同的交易限制和成本。 区域只是 定义一批配置的快捷方式 ,其中包括最小交易单位(trade_unit)、交易限制(limit_threshold)等。它不是必要的一部分,如果现有的区域设置不能满足用户的需求,用户可以手动设置关键配置。

  • redis_host
    类型:str,可选参数(默认值:”127.0.0.1”),redis 的主机

    锁定和缓存机制依赖于 redis

  • redis_port

    类型:int,可选参数(默认值:6379),redis 的端口

    备注

    region 的值应与存储在 provider_uri 中的数据相一致。目前,scripts/get_data.py 仅提供中国股票市场的数据。如果用户想使用美国股票市场的数据,他们应该在 provider_uri 中准备自己的美股数据,并切换到美股模式。

    备注

    如果 Qlib 无法通过 redis_hostredis_port 连接到 Redis,则不会使用缓存机制!有关详细信息,请参阅 缓存

  • exp_manager

    类型:dict,可选参数,指定在 qlib 中使用的 实验管理器 (experiment manager) 的设置。用户可以指定实验管理器类以及所有实验的跟踪 URI。但请注意,我们只支持以下样式的 exp_manager 字典形式的输入。有关 exp_manager 的更多信息,用户可以参考 Recorder: 实验管理

    # 例如,如果您想将跟踪 URI 设置为 <specific folder>,可以在下面初始化 qlib
    qlib.init(provider_uri=provider_uri, region=REG_CN, exp_manager= {
        "class": "MLflowExpManager",
        "module_path": "qlib.workflow.expm",
        "kwargs": {
            "uri": "python_execution_path/mlruns",
            "default_exp_name": "Experiment",
        }
    })
    
  • mongo

    类型:dict,可选参数,用于一些功能(如 任务管理)中使用的 MongoDB 设置,具有高性能和集群处理能力。 用户首先需要按照 安装指南 安装 MongoDB,然后通过 URI 访问它。 用户可以通过将 “task_url” 设置为类似 “mongodb://%s:%s@%s” % (user, pwd, host + “:” + port) 的字符串来使用带有凭据的 MongoDB。

    # 例如,您可以在下面初始化 qlib
    qlib.init(provider_uri=provider_uri, region=REG_CN, mongo={
        "task_url": "mongodb://localhost:27017/",  # 您的 mongo url
        "task_db_name": "rolling_db", # 任务管理的数据库名称
    })
    
  • logging_level

    系统的日志级别。

  • kernels

    Qlib 表达式引擎在计算特征时使用的进程数。在调试表达式计算异常时,将其设置为 1 非常有帮助。