Использование данных из CSV-файла в 60-минутном формате. Попытка записать все решения о покупке / продаже с помощью backtrader backtester.
Проблема: регистратор времени не работает должным образом, поскольку все часы выводятся как «23: 59: 59.999989», когда это не так.
См. Пример кода:
def log(self, txt, dt=None):
dt = dt or self.data.datetime.datetime(0)
print('%s, %s' % (dt, txt))
def next(self):
if self.data.close > self.sma1:
self.buy()
self.log('BUY CREATE, exectype Market, price %.2f' % self.data.close[0])
#Get Data
data = btfeeds.GenericCSVData(dataname='AAPL.csv',fromdate=datetime.datetime(2018, 1, 2),todate=datetime.datetime(2020, 4, 28),nullvalue=0.0,dtformat=('%Y-%m-%d %H:%M:%S'),datetime=0,open=1,low=2,high=3,close=4,volume=5,openinterest=6)
Пример вывода:
2019-07-12 23:59:59.999989, BUY CREATE, exectype Market, price 203.52
2019-07-12 23:59:59.999989, BUY CREATE, exectype Market, price 203.30
2019-07-12 23:59:59.999989, BUY CREATE, exectype Market, price 203.24
2019-07-12 23:59:59.999989, BUY CREATE, exectype Market, price 203.24
2019-07-15 23:59:59.999989, BUY CREATE, exectype Market, price 204.11
Данные и формат из файла CSV:
2018-01-02 9:30:00 AM