加入数据源
赚钱有趣,通过数据分析,不费力气赚钱更有趣。这才是我们的目的。(官方文档使用的时国外的在线数据。为了方便验证和逻辑,我这里准备了一份国内600000.SH浦发银行的csv数据,可以下载到本地使用)
继续完善上面的代码
from __future__ import (absolute_import, division, print_function,
unicode_literals)
import datetime # For datetime objects
import os.path # To manage paths
import sys # To find out the script name (in argv[0])
# Import the backtrader platform
import backtrader as bt
def get_dataframe():
# Get a pandas dataframe
datapath = './600000.SH_stockinfo.csv'
tmpdatapath = './600000.SH_stockinfo_tmp.csv'
print('-----------------------read csv---------------------------')
dataframe = pd.read_csv(datapath,
skiprows=0,
header=0,
parse_dates=True,
index_col=0)
dataframe.trade_date = pd.to_datetime(dataframe.trade_date, format="%Y%m%d")
dataframe['openinterest'] = '0'
feedsdf = dataframe[['trade_date', 'open', 'high', 'low', 'close', 'vol', 'openinterest']]
feedsdf.columns =['datetime', 'open', 'high', 'low', 'close', 'volume', 'openinterest']
feedsdf.set_index(keys='datetime', inplace =True)
feedsdf.iloc[::-1].to_csv(tmpdatapath)
feedsdf = pd.read_csv(tmpdatapath, skiprows=0, header=0, parse_dates=True, index_col=0)
if os.path.isfile(tmpdatapath):
os.remove(tmpdatapath)
print(tmpdatapath+" removed!")
return feedsdf
if __name__ == '__main__':
# Create a cerebro entity
cerebro = bt.Cerebro()
# Datas are in a subfolder of the samples. Need to find where the script is
# because it could have been called from anywhere
# Get a pandas dataframe
#(获取dataframe格式股票数据,这里做了对csv格式的解析,数据转换为Cerebro需要的数据格式)
feedsdf = get_dataframe()
# Pass it to the backtrader datafeed and add it to the cerebro(加入数据)
data = bt.feeds.PandasData(dataname=feedsdf)
# Add the Data Feed to Cerebro
cerebro.adddata(data)
# Set our desired cash start
cerebro.broker.setcash(100000.0)
# Print out the starting conditions
print('Starting Portfolio Value: %.2f' % cerebro.broker.getvalue())
# Run over everything
cerebro.run()
# Print out the final result
print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue())
执行后,输出如下:
Starting Portfolio Value: 1000000.00
Final Portfolio Value: 1000000.00
样例代码变长,输出结果没有变化。中间增加了以下的内容:
如何读取本地的数据集
如何转换数据为cerebro需要的格式
如何将数据集增加到cerebro
评论前必须登录!
注册