![BackTrader量化交易案例图解](https://wfqqreader-1252317822.image.myqcloud.com/cover/581/34667581/b_34667581.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.5 数据预处理函数
数据读取函数pools_get4fn用于数据的预处理工作,其作用主要包括:
● 读取数据文件。
● 根据时间参数裁剪数据。
● 对交易数据按时间字段进行正序排序。
● 把数据转换为BackTrader内部数据格式。
下面来看一看数据读取函数pools_get4fn的接口定义,如下:
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_31_1.jpg?sign=1739285271-SUjqQonvXW4KwYeaF0H83yFS0oGGnqJZ-0-c8d008e7c8d26c663955873ad8ea12ba)
在函数接口定义中输入的参数如下。
● fnam:数据文件名称。
● tim0str:回测起始时间。
● tim9str:回测终止时间。
● fgSort:正序排序标志,默认为True,按正序排序。
● fgCov:数据转换标志,默认为True,数据转换为BackTrader内部格式。
输出数据是data:BackTrader回测内部格式的数据包。
需要注意的是,在数据读取函数pools_get4fn的接口定义中,
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_31_2.jpg?sign=1739285271-G8aQsrS6kJa9FbQzEg1RPXZ3ekC0FFIm-0-be774612f40c92611f1a12295e5200d0)
函数时间参数变量采用的是字符串格式,以便于用户设置时间参数。在使用数据读取函数pools_get4fn时,其内部代码会把时间参数转换为标准的datetime时间格式。
函数接口里面的tim0str、tim9str参数支持长格式和短格式两种时间格式标准。如果采用短时间格式,则有关的时间尾数会自动转换为零点零时零分。
大家在使用tick数据、五分钟等分时数据时,要使用长时间格式,因为短时间格式中的数据尾数会自动归零。
pools_get4fn数据读取函数,源自TOP极宽量化工具函数库,函数pools_get4fn代码如下:
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_31_3.jpg?sign=1739285271-oavbyQmYZoulafE16bLc5wbTOv6pO1MC-0-b727bc508048eaa0130a489c29d30b26)
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_32_1.jpg?sign=1739285271-mNvaQUrMK7PurR2ks842ZXzwh4iCxJFv-0-530d557838ba3935c1e363c6f529f894)
关于数据排序步骤,在pools_get4fn数据读取函数代码中有专门的排序语句:
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_32_2.jpg?sign=1739285271-JdclMxrwTdAKJivMkb3rC5HWHyJUYmH8-0-619e6fb5b2f9394285e67de84635948a)
BackTrader数据使用的是系统内部的格式,这个格式虽然也是OHLC格式,但与Pandas有所不同,即无法直接兼容。如果用户不看源代码,则很容易混乱,所以我们特意开发了这组数据读取函数:pools_get4fn。