目录
量化回测的第一步就是导入数据,Backtrader中称这个为data feeds,支持多种数据导入方式
- 通用CSV格式
- panda数据
- Backtrader CSV Backtrader 为测试自创的格式,
- 一系列的第三方数据包括(yahoo等)
由于后面两种方式暂时还不会用到,所以只介绍前面两种方式。
一,通用参数
由于所有的数据导入类都派生于同一个基类,所以所有的数据导入类都支持通用参数。
- dataname (默认值: 无) 必须提供
含义随数据类型(文件位置,代码,…)而异。 - name (默认值: ‘’)
用于绘图。 如果未指定,则会从数据名派生(例如:文件路径的最后一部分) - fromdate (默认值: 最早的时间)
Python datetime对象,忽略最早时间之前的任何时间 - todate (默认值: 最晚的时间)
Python datetime对象,忽略最晚时间之后的任何时间 - timeframe (默认值: TimeFrame.Days)
时间间隔,可选值:Ticks
,Seconds
,Minutes
,Days
,Weeks
,Months
andYears
- compression (默认值: 1)
每个bar里面实际包含的bar数量(bar是时间的颗粒度,相当于k线图上的一个柱子),仅在数据重采样/回放中有效。 - sessionstart (默认值: None)
指示数据的会话开始时间。 可能被类用于诸如重采样之类的目的 - sessionend (默认值: None)
指示数据的会话结束时间。 可能被类用于诸如重采样之类的目的
二,通用CSV格式数据导入
函数名:GenericCSVData
独有参数:
- dataname 数据文件名
- datetime (默认值: 0) 日期数据所在列
- time (默认值: -1) 时间数据所在列(-1代表没有)
- open (默认值: 1) , high (默认值: 2), low (默认值: 3), close (默认值: 4), volume (默认值: 5), openinterest (默认值: 6)
分别表示开盘,最高价,最低价,收盘价,交易量,持仓量所在列(-1代表没有) - nullvalue (默认值: float(‘NaN’))
用来替换缺失值的值 - dtformat (默认值: %Y-%m-%d %H:%M:%S)
日期格式 - tmformat (默认值: %H:%M:%S)
时间格式
再举例子前先介绍一