极宽backtrader数据加载csv版(带案例+源码)
本课件源自《backtrader量化实盘课件》–E系列
backder是目前最强的单机量化程序,和其他量化程序一样,为了提高效率,内部的数据格式和冲突的ohlc有所不同,为了方便广大初学者和入门用户。
zwTopQuant极宽量化开源组,组制作课件的同时,同意制作了一系列辅助函数,其中:pools_get4fn函数,就是一个接近万能版本的通用csv-ohlc数据文件,与backtrader内部数据格式的通用转换读取函数。
开源项目linux,量化,backtrader,zipline,pat,很多初学者 都是卡在:第一步配置和数据读取。
这个原本是内部课件的内容,方便大家入门,还是公开吧。
def pools_get4fn(fnam,tim0str,tim9str,fgSort=True,fgCov=True):
'''
从csv文件,数据读取函数,兼容csv标准OHLC数据格式文件
【输入参数】
fnam:csv数据文件名
tim0str,tim9str:回测起始时间,终止时间,字符串格式
fgSort:正序排序标志,默认为 True
【输出数据】
data:BT回测内部格式的数据包
'''
#skiprows=skiprows,header=header,parse_dates=True, index_col=0,
df = pd.read_csv(fnam, index_col=0, parse_dates=True)
df.sort_index(ascending=fgSort,inplace=True) #True:正序
#
tim0=None if tim0str=='' else dt.datetime.strptime(tim0str,'%Y-%m-%d')
tim9=None if tim9str=='' else dt.datetime.strptime(tim9str,'%Y-%m-%d')
#prDF(df)
#xxx
#
df['openinterest'] = 0
if fgCov:
data = bt.feeds.PandasData(dataname=df,fromdate=tim0,todate =tim9)
else:
data=df
#
return data