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中运行以下代码。
import qlib # region in [REG_CN, REG_US] from qlib.constant import REG_CN provider_uri = "~/.qlib/qlib_data/cn_data" # target_dir 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
- Type: str, optional parameter(default: 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
- Type: str, optional parameter(default: “127.0.0.1”), host of redis
锁和缓存机制依赖于redis。
- redis_port
类型: int, 可选参数(默认: 6379), redis的端口
注意
region 的值应与 provider_uri 中存储的数据一致。目前,
scripts/get_data.py仅提供中国股市数据。如果用户想要使用美国股市数据,他们应准备自己的美国股票数据到 provider_uri 并切换到美国股票模式。注意
如果Qlib无法通过redis_host和redis_port连接到redis,缓存机制将不会被使用!详情请参考Cache。
- exp_manager
类型:dict,可选参数,用于在qlib中使用的实验管理器的设置。用户可以指定一个实验管理器类,以及所有实验的跟踪URI。但是,请注意,我们仅支持以下样式的字典输入exp_manager。有关exp_manager的更多信息,用户可以参阅记录器:实验管理。
# For example, if you want to set your tracking_uri to a <specific folder>, you can initialize qlib below 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
类型:字典,可选参数,MongoDB的设置,将用于一些功能,如任务管理,具有高性能和集群处理能力。 用户需要按照安装步骤首先安装MongoDB,然后通过URI访问它。 用户可以通过将“task_url”设置为类似“mongodb://%s:%s@%s” % (user, pwd, host + “:” + port)的字符串来使用凭证访问mongodb。
# For example, you can initialize qlib below qlib.init(provider_uri=provider_uri, region=REG_CN, mongo={ "task_url": "mongodb://localhost:27017/", # your mongo url "task_db_name": "rolling_db", # the database name of Task Management })
- logging_level
系统的日志记录级别。
- kernels
在Qlib的表达式引擎中计算特征时使用的进程数。在调试表达式计算异常时,将其设置为1非常有用。