极宽backtrader数据加载csv版

极宽backtrader数据加载csv版

本课件源自《backtrader量化实盘课件》–E系列

backder是目前最强的单机量化程序,和其他量化程序一样,为了提高效率,内部的数据格式和冲突的ohlc有所不同,为了方便广大初学者和入门用户。
TopQuant极宽量化开源组,组制作课件的同时,同意制作了一系列辅助函数,其中: 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

发表评论

电子邮件地址不会被公开。 必填项已用*标注