初始化
Section outline
-
Qlib 初始化
初始化
请按照以下步骤初始化 Qlib。
-
下载并准备数据:执行以下命令下载股票数据。请注意,这些数据是从 Yahoo Finance 收集的,可能并不完美。如果您有高质量的数据集,我们建议您准备自己的数据。有关自定义数据集的更多信息,请参阅数据部分。
python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn
有关
get_data.py
的更多信息,请参阅数据准备。 -
在调用其他 API 之前初始化 Qlib:在 Python 中运行以下代码。
Pythonimport qlib # region in [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_uri
和region
之外,qlib.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
:A股市场。
不同的模式会导致不同的交易限制和成本。
region
只是用于定义一系列配置的快捷方式,包括最小交易单位(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
只提供 A股市场数据。如果用户想使用美股市场数据,他们应该在provider_uri
中准备自己的美股数据,并切换到美股模式。注意
如果 Qlib 无法通过
redis_host
和redis_port
连接到 Redis,将不会使用缓存机制!详情请参阅缓存。-
exp_manager
:类型为dict
,可选参数,用于在qlib
中使用的实验管理器设置。用户可以指定一个实验管理器类,以及所有实验的追踪 URI。但是,请注意,我们只支持以下样式的字典作为exp_manager
的输入。有关exp_manager
的更多信息,用户可以参考记录器:实验管理。Python# 例如,如果你想将你的 tracking_uri 设置为一个 <特定文件夹>,你可以如下初始化 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。Python# 例如,你可以如下初始化 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 是非常有帮助的。
-