行情收集器再升级--支持CSV格式文件导入提供自定义数据源

2022-05-21 区块链达人

最近一个用户需要让自己的CSV格式文件作为数据源,让发明者量化交易平台的回测系统使用。发明者量化交易平台的回测系统功能众多,使用简洁高效,这样只要自己有数据,就可以进行回测了,不再局限于平台数据中心支持的交易所、品种。

设计思路其实很简单,我们只要在之前的行情收集器基础上稍微改动即可,我们给行情收集器增加一个参数isOnlySupportCSV用来控制是否只使用CSV文件作为数据源提供给回测系统,再增加一个参数filePathForCSV,用于设置行情收集器机器人运行的服务器上放置CSV数据文件的路径。最后就是根据isOnlySupportCSV参数是否设置为True来决定使用那种数据源(1、自己收集的,2、CSV文件中的数据),这个改动主要在Provider类的do_GET函数中。

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本来开启,再则先另存新档后用EXCEL开启,也是方法之一。

CSV文件格式的通用标准并不存在,但是有一定规律,一般为一条记录一行,第一行为表头。每行中的数据用逗号间隔。例如,我们用于测试的CSV文件用记事本打开是这样的:

观察下,CSV文件第一行是表格头。

我们就是要把这样的数据解析整理,然后构造成回测系统自定义数据源要求的格式,这个我们之前的文章中的代码里已经处理了,只需稍加修改。

首先我们启动行情收集器机器人,我们给机器人添加一个交易所,让机器人运行起来。

参数配置:

然后我们创建一个测试策略:

策略很简单,只获取并打印三次K线数据。

回测页面,设置回测系统的数据源为自定义数据源,并且地址填写行情收集器机器人运行的服务器地址。由于我们的CSV文件中的数据为1分钟K线。所以回测时,我们设置K线周期为1分钟。

点击开始回测,行情收集器机器人接收到了数据请求:

回测系统执行策略完成后,根据数据源中的K线数据,生成K线图表。

对比文件中的数据:

RecordsCollecter (升级提供自定义数据源功能、支持CSV数据文件提供数据源)

抛砖引玉,欢迎留言