qlib实践1-安装-获取数据

本文档详细介绍了如何从GitHub下载QLib源码并安装,解决安装过程中遇到的msvc++问题,以及如何使用pip安装缺失的库。在安装完成后,通过示例展示如何检查QLib版本和获取数据。数据获取部分包括从官方路径下载历史数据以及利用数据更新工具更新至指定日期,同时也探讨了其他数据来源的可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 从github上下载glib源码

https://github.com/microsoft/qlib

2. 根据官方文档指引,进行python setup.py install

提示缺少msvc++,之前想走捷径,安装了很多库,均不行,这次换了台电脑,下载提示信息中的安装工具

一定要选择第一个桌面开发,不要有裁剪,之前试过好几次自己选,然后不成功的。

安装后再执行后显示如此:

下载完后,将继续执行python setup.py install。会提示一系列库没有安装,可以通过

pip install  -U liba  libb来安装缺少的库。

对于库版本不对的,需要通过

pip install -U liba=1.0.1这样的方式将库版本调整正确。

重复上述操作至没有错误为止。可以进行下载数据的测试程序进行测试,也可以先打印出version测试一下

示例1:

import qlib

qlib.__version__

我这边测试用的是0.8.6

示例2

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

上述命令是从qlib官方路径中下载已有的数据,数据源来自yahoo finance。 

我这里经常失败,可能网站对下载有限制或者我的网络不好

这里是个大坑.乘着下载不成功等待的时间,大致分析一下get_data.py这个源码,这是个工具,可以通过python get_data.py qlib_data --help进行查看帮助,源码中

通过fire库,将GetData类转换成命令行,下一步看一下GetData类

类中的入口方法
    def qlib_data(
        self,
        name="qlib_data",
        target_dir="~/.qlib/qlib_data/cn_data",
        version=None,
        interval="1d",
        region="cn",
        delete_old=True,
        exists_skip=False,
    ):
        """download cn qlib data from remote

        Examples
        ---------
        # get 1d data
        python get_data.py qlib_data --name qlib_data --target_dir ~/.qlib/qlib_data/cn_data --interval 1d --region cn

        # get 1min data
        python get_data.py qlib_data --name qlib_data --target_dir ~/.qlib/qlib_data/cn_data_1min --interval 1min --region cn
        -------

        """
#判断是否存在文件,和跳过
        if exists_skip and exists_qlib_data(target_dir):
            logger.warning(
                f"Data already exists: {target_dir}, the data download will be skipped\n"
                f"\tIf downloading is required: `exists_skip=False` or `change target_dir`"
            )
            return

        qlib_version = ".".join(re.findall(r"(\d+)\.+", qlib.__version__))

        def _get_file_name(v):
            return self.QLIB_DATA_NAME.format(
                dataset_name=name, region=region.lower(), interval=interval.lower(), qlib_version=v
            )

        file_name = _get_file_name(qlib_version)
        if not self.check_dataset(file_name, version):
            file_name = _get_file_name("latest")
        self._download_data(file_name.lower(), target_dir, delete_old, dataset_version=version)

也可以自己拼一下url下载

# REMOTE_URL = "https://qlibpublic.blob.core.windows.net/data/default/stock_data"
# QLIB_DATA_NAME = "{dataset_name}_{region}_{interval}_{qlib_version}.zip"

这里我拼出来的是不带版本号的

https://qlibpublic.blob.core.windows.net/data/default/stock_data/qlib_data_cn_1d.zip

 下载下来后数据就是历史数据,截至2020年9月

 

=================接下来研究一下数据结构和更新方法=====================

对于更新方法,源码中提供的更新工具

script/data_collector中存放了不同类别的帮助文件,和collector.py工具

此处我测试一下,刚才的数据更新至2022年

python scripts/data_collector/yahoo/collector.py update_data_to_bin --qlib_data_1d_dir <user data dir> --trading_date <start date> --end_date <end date>

python data_collector\yahoo\collector.py update_data_to_bin --qlib_data_1d_dir testdata01 --trading_date 2022-06-01 --end_date 2022-12-06

参考文档

Data Layer: Data Framework & Usage — QLib 0.8.6.99 documentation

此时会下载文件

qlib_data_cn_1d_latest.zip

//该命令下载后的数据仍然是到2020年9月,那么可以认为当前qlib服务器上没有存最新的。那么我们再看一下如何从其他渠道获取。

另外也可以从众筹数据源获取,参考文档

https://github.com/microsoft/qlib/tree/main/scripts

上述拿数据,目前还不是实时数据,但是历史数据可以通过多种渠道获取,并且转换成qlib所需要的格式。其他数据更新方式目前不研究了,下面研究一下数据如何使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值