当前位置:   article > 正文

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

qlib安装

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类

  1. 类中的入口方法
  2. def qlib_data(
  3. self,
  4. name="qlib_data",
  5. target_dir="~/.qlib/qlib_data/cn_data",
  6. version=None,
  7. interval="1d",
  8. region="cn",
  9. delete_old=True,
  10. exists_skip=False,
  11. ):
  12. """download cn qlib data from remote
  13. Examples
  14. ---------
  15. # get 1d data
  16. python get_data.py qlib_data --name qlib_data --target_dir ~/.qlib/qlib_data/cn_data --interval 1d --region cn
  17. # get 1min data
  18. python get_data.py qlib_data --name qlib_data --target_dir ~/.qlib/qlib_data/cn_data_1min --interval 1min --region cn
  19. -------
  20. """
  21. #判断是否存在文件,和跳过
  22. if exists_skip and exists_qlib_data(target_dir):
  23. logger.warning(
  24. f"Data already exists: {target_dir}, the data download will be skipped\n"
  25. f"\tIf downloading is required: `exists_skip=False` or `change target_dir`"
  26. )
  27. return
  28. qlib_version = ".".join(re.findall(r"(\d+)\.+", qlib.__version__))
  29. def _get_file_name(v):
  30. return self.QLIB_DATA_NAME.format(
  31. dataset_name=name, region=region.lower(), interval=interval.lower(), qlib_version=v
  32. )
  33. file_name = _get_file_name(qlib_version)
  34. if not self.check_dataset(file_name, version):
  35. file_name = _get_file_name("latest")
  36. 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所需要的格式。其他数据更新方式目前不研究了,下面研究一下数据如何使用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/46946
推荐阅读
相关标签
  

闽ICP备14008679号