Qlib将csv格式数据转为Qlib支持的文件bin格式

阅读: 评论:0

Qlib将csv格式数据转为Qlib支持的文件bin格式

Qlib将csv格式数据转为Qlib支持的文件bin格式

文章目录

  • 1. 获得csv格式的股票数据
  • 2. 转CSV格式为bin格式
  • 3. Qlib中读取bin文件

这篇博客主要介绍从 csv -> bin文件的流程

1. 获得csv格式的股票数据

借助efinance工具包获取股票数据,详细用法请参考github页面:

import pandas as pd
import efinancedef get_k_data(stock_code, begin="20200101", end="20210101") -> pd.DataFrame:"""根据efinance工具包获取股票数据:param stock_code:股票代码:param begin: 开始日期:param end: 结束日期:return:"""k_dataframe: pd.DataFrame = _quote_history(stock_code, beg=begin, end=end, fqt=0)k_dataframe = k_dataframe.iloc[:, :9]lumns = ['name', 'code', 'date', 'open', 'close', 'high', 'low', 'volume', 'turnover']k_dataframe.drop(['name', 'code'], axis=1, inplace=True)return k_dataframeif __name__ == '__main__':k_line_df = get_k_data(stock_code='600519')  # 茅台股价k__csv("600519.csv", index=False)

可以得到如下的csv格式数据:

date,open,close,high,low,volume,turnover
2020-01-02,1128.0,1130.0,1145.06,1116.0,148099,16696837120.0
2020-01-03,1117.0,1078.56,1117.0,1076.9,130319,14266380544.0
2020-01-06,1070.86,1077.99,1092.9,1067.3,63415,6853917696.0
2020-01-07,1077.5,1094.53,1099.0,1076.4,47854,5220697088.0
2020-01-08,1085.05,1088.14,1095.5,1082.58,25008,2720371920.0
2020-01-09,1094.0,1102.7,1105.39,1090.0,37406,4110949808.0
........

2. 转CSV格式为bin格式

有两种方法,一是通过命令行,另一种是通过代码来转换。转换用的函数Qlib已经写好了,在scripts/dump_bin.py文件下的class DumpDataAll(DumpDataBase)

  1. 通过命令行:
python qlib/scripts/dump_bin.py dump_all --csv_path . --qlib_dir my_qlib_dir/ --include_fields open,close,high,low,volume,turnover
  1. 通过代码:
from scripts.dump_bin import DumpDataAllif __name__ == '__main__':dump_util = DumpDataAll(csv_path=".", qlib_dir="my_qlib_dir/",include_fields='open,close,high,low,volume,turnover')dump_util.dump()

通过上面的两种方法,可以发现:

  1. 其实--参数后面的就是传递进去的参数
  2. include_fields后面的就是要封装的列名,这个需要与csv文件一一对应

3. Qlib中读取bin文件

在刚才生成的my_qlib_dir/下,包含下面的三个文件夹:

  1. calendars:主要存放交易日历
  2. features:股票的数据
  3. instruments:通常作为baseline的指数文件,每个文件都是3列,代表:股票代码 加入指数日期 退出指数日期
import qlib
from qlib.data import Dqlib.init(provider_uri="my_qlib_dir/")  # 存放全部数据的根目录
calendar = D.calendar()  # 交易日历
market_instrument = D.instruments(market='all')  # 定位市场(股票的范围)
# 市场全部的股票
total_code = D.list_instruments(instruments=market_instrument, start_time='2020-01-01', end_time='2020-05-01',as_list=True)
print(total_code)
# 具体的数据
field_data = D.features(instruments=["600519"], start_time='2020-01-01', end_time='2020-05-01',fields=["$open", "$close", "$high", "$low"])
print(field_data.head())

得到结果:

['600519']$open       $close        $high         $low
instrument datetime                                                      
600519     2020-01-02  1128.000000  1130.000000  1145.060059  1116.0000002020-01-03  1117.000000  1078.560059  1117.000000  1076.9000242020-01-06  1070.859985  1077.989990  1092.900024  1067.3000492020-01-07  1077.500000  1094.530029  1099.000000  1076.4000242020-01-08  1085.050049  1088.140015  1095.500000  1082.579956

更多内容请参考:.html#examples

本文发布于:2024-01-31 18:12:52,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170669597430414.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:格式   文件   数据   Qlib   csv
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23