Qlib入门到精通系列 #1

​Qlib依赖的机器学习包,科学计算包,并行计算等特别多,所以,基于anaconda安装会更加简单。

Qlib的安装

Anaconda我选择最新的3.8版本。

Qlib支持pip直接安装:pip install pyqlib。

但是,会有基础包编译不通过,有两个方案:

一是可以使用编译好的包,遇到两个包,scs, ecos。

https://www.lfd.uci.edu/~gohlke/pythonlibs/#ecos

这个网址可以找到对应版本的预编译包。

二是安装微软生成工具,这个好处是未来很多包可以自行编译。

https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/

Hello Qlib!

Qlib官方代码的examples下有一个使用案例:workflow_by_code.py。

可以直接运行。

workflow_by_code可以看做是qlib的Hello World。

Qlib支持使用ymal配置。

port_analysis_config = {

       "executor": {

           "class": "SimulatorExecutor",

           "module_path": "qlib.backtest.executor",

           "kwargs": {

                "time_per_step":"day",

               "generate_portfolio_metrics": True,

           },

       },

       "strategy": {

           "class": "TopkDropoutStrategy",

           "module_path": "qlib.contrib.strategy.model_strategy",

           "kwargs": {

                "model": model,

                "dataset": dataset,

                "topk": 50,

                "n_drop": 5,

           },

       },

       "backtest": {

           "start_time": "2017-01-01",

           "end_time": "2021-08-01",

           "account": 100000000,

           "benchmark": CSI300_BENCH,

           "exchange_kwargs": {

                "freq":"day",

                "limit_threshold":0.095,

                "deal_price":"close",

                "open_cost": 0.0005,

                "close_cost": 0.0015,

                "min_cost": 5,

           },

       },

    }

主要看下backtest这一节,起始时间是2017年1月,结束时间是2020年8月,基于全市场选股,标注的label是第二天的收益率,选择分数高的构建出投资组合。

一共3年半,基准是沪深300指数。

Qlib入门到精通系列 #1_第1张图片

大家主要关心两个指标:年化收益和最大回撤

                           

如果不考虑交易成本,年化收益是15%,而基准是11.3%;最大回撤相比于基准的37%,模型是最大回撤是10.2%。那么夏普比是得到明显提升的,考虑了成本之后,则年化下降至10.2%。

微软还开发了一个qrun的工具,这个在安装qlib的时候是内置的。

只需要定位到相应的代码目录下,然后使用qrun命令去自动化的运行配置好的模型。

qrun examples/workflow_config_lightgbm_configurable_dataset.yaml。

直接运行一个yaml。

Qlib所有的参数都可以通过一个yaml文件来配置。

从学习的角度,还是从代码的角度去应用,这个才能知其然且知其所以然。我们需要仔细去学习和拆解各个模块,为我们所用。

策略的拆解

一个典型的机器学习驱动的量化模型会分成如下几个主要步骤:

首先是基本数据加载,从价量的角度看就是OHLCV等数据。

其次是数据标准,计算因子和label。

然后把数据分割成训练集和测试集。

选择合适的模型,并配置适当的参数。

模型训练。

利用模型数据样本外数据进行回测,得到回测结果。

对回测结果进行可视化。

这里可以回归到项目的文档,文档还是组织的非常清楚的。

https://qlib.readthedocs.io/en/latest/

 

qlib初始化,比较简单,就是指定下载的数据所在的目录即可。Region参数是指中国市场还是美国市场。

import qlib

# region in [REG_CN, REG_US]

from qlib.config import REG_CN

provider_uri="~/.qlib/qlib_data/cn_data"  # target_dir

qlib.init(provider_uri=provider_uri,region=REG_CN)

如果没有报错则初始化成功。

你可能感兴趣的:(建立自己的算法交易事业,python)