![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=1738909874-q19nPXJVZF2OiwfZq4yOhlXY51kutXRj-0-45d4c6347f9b5befa1aff9cec2ef4d77)
在函数接口定义中输入的参数如下。
● 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=1738909874-2gvFbL1tixp7xi12NWmihrkgmxPtbD9u-0-7c81f799e83ba7f59ae80547842b9e9e)
函数时间参数变量采用的是字符串格式,以便于用户设置时间参数。在使用数据读取函数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=1738909874-9yI8ZKZFMpnulsidXIT6orJxY6ATL5wQ-0-5b38496a4156e77e2d384e1c596053c1)
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_32_1.jpg?sign=1738909874-hrHqovk2G2kSdWvUMtg9niujxyGlOADz-0-a5b5193639a4cc342e9baf5cbf660369)
关于数据排序步骤,在pools_get4fn数据读取函数代码中有专门的排序语句:
![](https://epubservercos.yuewen.com/80F853/18519309601631906/epubprivate/OEBPS/Images/39705_32_2.jpg?sign=1738909874-cREhyC7LOZEPWvVVwgmXOTh9DsA78YwW-0-4aa6a339ae0438b6a3a0ff935ddc7ef9)
BackTrader数据使用的是系统内部的格式,这个格式虽然也是OHLC格式,但与Pandas有所不同,即无法直接兼容。如果用户不看源代码,则很容易混乱,所以我们特意开发了这组数据读取函数:pools_get4fn。