作者:yunjinqi 类别:
日期:2021-12-23 17:33:15
阅读:3493 次 消耗积分:0 分
答读者问为免费文章,不计入专栏里面。本文可以在下面地址免费阅读。
在教程与股票的案例中,大部分使用的都是日线,并且数据文件都是csv与pandas,backtrader可以支持各种的数据文件,并且加载的数据,可以进行扩展,不仅仅只有高开低收成交量持仓量这些,具有很强的灵活性。本文处理的一个问题主要是如何加载分钟数据到backtrader中,这个在官网的教程中,出现的也比较少。
可以使用PandasDirectData
params = dict(
fromdate = datetime.datetime(2018,1,4),
todate = datetime.datetime(2020,3,20),
timeframe = bt.TimeFrame.Minutes,
compression = 1,
dtformat=('%Y-%m-%d %H:%M:%S'),
tmformat=('%H:%M:%S'),
datetime=0,
high=2,
low=3,
open=1,
close=4,
volume=5,
openinterest=6)
data_path="C:/Users/WIN10/Desktop/RB8888.XSGE.csv"
df=pd.read_csv(data_path,encoding='gbk')
df=df[['datetime','open','high','low','close','volume','openinterest']]
df.index=pd.to_datetime(df['datetime'])
df=df[['open','high','low','close','volume','openinterest']]
feed = bt.feeds.PandasDirectData(dataname=df,**params)
cerebro.adddata(feed, name = "RB8888.XSGE")