码迷,mamicode.com
首页 > 其他好文 > 详细

利用rqalpha完成一个股指期货的回测(二) 分钟数据获取和转换

时间:2020-04-28 20:24:20      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:bottom   ima   数据库   add   历史   取数据   order   没有   最好   

前面已经可以简单的跑起来了,只不过是日线级的股票,我们最终目标是5分钟级的期货

由于平台不支持5分钟数据,因此这些数据需要我们手动解决,分两块,一块是历史数据的获取,一块是实时数据的采集。先搞定历史数据。

目前看通达信的数据还算是比较靠谱的。股指期货主要有IF,IC,IH三个,以IF为例,由于通常我们要的数据比较多一点,通常是1年以上而非1个月,因此用主连IFL8

一、获取数据:

技术图片

 
点击下载即可,
然后利用通达信的导出功能:
技术图片
 
 然后打开数据看一下:
技术图片

 

考虑到后期各种处理,因此最好还是将这些数据存于数据库中,存好后形如:

技术图片

 

二、转换数据

顺便说一下,通达信上的数据IFL8是完全按照各主力合约拼接而成,通过下载期货合约的实时行情数据进行合并成5分钟数据,然后与主力合约K线的开高低收量及持仓进行对比,基本上没有什么误差。

当然,之前的历史数据从通达信上获取,后面的数据以及动态生成的历史有能力的还是从实时行情生成为好。毕竟股指期货一个点就是200或300块,随便搞一手就是几万的盈亏,数据还是用自己的安心点。

由于rqalpha没有提供分钟级数据,因此我们要将获取的数据转成rqalpha识别的数据ndarray

先看ndarray的数据类型:

dtype = np.dtype([(date, <u4), (time, <u4), (open, <u4),
                          (close, <u4), (high, <u4), (low, <u4),
                          (limit_up, <u4), (limit_down, <u4), (basis_spread, <i4),
                          (open_interest, <u4), (volume, <u4), (total_turnover, <u8),
                          (trade_date, <u4)])

 

这里需要注意的是,open,high,low,close这四个值在rqalpha都是扩大了10000倍的,因此,这儿转换时需要先乘上10000

然后将之存于一个list中

values.append((ft.date, ft.time, ft.open, ft.close, ft.high, ft.low,
                                   0, 0, 0, 0, ft.volume, 0, ft.date))

最后将之转成ndarray类型数据:

result = np.array(values, dtype=dtype)

利用rqalpha完成一个股指期货的回测(二) 分钟数据获取和转换

标签:bottom   ima   数据库   add   历史   取数据   order   没有   最好   

原文地址:https://www.cnblogs.com/luhouxiang/p/12796825.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!