1引言
关于backtrader,公众号已连续发布了三篇推文:《
2数据扩展实例
01数据准备
下面使用tushare pro获取个股交易数据,包含日期(datetime)、价格(open、high、low、close)和成交量(volume)、换手率(turnover_rate)、市盈率(pe)、市净率(pb)等数据。
import pandas as pd
import tushare as ts
#tushare pro需到官网注册并获取token才能用
token='输入你的token'
pro=ts.pro_api(token)
def get_data(code,date='20200101'):
data1=ts.pro_bar(ts_code=code, adj='qfq', start_date=date)
data1=data1[['trade_date','open','high','low','close','vol']]
data2=pro.daily_basic(ts_code=code,fields='trade_date,turnover_rate,pe,pb')
data=pd.merge(data1,data2,on='trade_date')
data.index=pd.to_datetime(data.trade_date)
data=data.sort_index()
data['volume']=data.vol
data['openinterest']=0
data['datetime']=pd.to_datetime(data.trade_date)
data=data[['datetime','open','high','low','close',\
'volume','openinterest','turnover_rate','pe','pb']]
data=data.fillna(0)
return data
查看数据并保存csv格式到本地,文件名为“test.csv”。
#数据保存到本地
get_data('300002.SZ').to_csv('test.csv',index=False)
get_data('300002.SZ').head()
02扩展feeds中的数据加载
对backtrader相关模块进行扩展,首先要先研究一下原生代码的构成,找到安装文件夹,我装的是anaconda,所以backtrader所在文件夹路径为:
C:\Anaconda3\Lib\site-packages\backtrader\,进入该路径找到feeds文件夹,看到里面有很多py文件,说明backtrader支持加载的数据或类型,在线数据支持quandl和yahoo适合做美股分析。我们关注的是如何加载A股数据