Backtrader показывает одинаковое время для всех свечейPython

Программы на Python
Ответить
Anonymous
 Backtrader показывает одинаковое время для всех свечей

Сообщение Anonymous »

Это мой код:

Код: Выделить всё

data15 = bt.feeds.GenericCSVData(dataname='BTCUSDT-15m-2022-01-01.csv',
dtformat=lambda x: datetime.utcfromtimestamp(int(x)/1000))
из csvgeneric.py:

Код: Выделить всё

dt = datetime.strptime(dtfield, dtformat)
else:
dt = self._dtconvert(dtfield)

if self.p.timeframe >= TimeFrame.Days:
# check if the expected end of session is larger than parsed
if self._tzinput:
dtin = self._tzinput.localize(dt)  # pytz compatible-ized
else:
dtin = dt

dtnum = date2num(dtin)  # utc'ize

dteos = datetime.combine(dt.date(), self.p.sessionend)
dteosnum = self.date2num(dteos)  # utc'ize

if dteosnum > dtnum:
self.lines.datetime[0] = dteosnum
Я вижу, что для каждой свечи значения dt, dtin и dtnum верны. dteosnum всегда один и тот же и больше, чем dteosnum, поэтому dteosnum — это тот, который назначен следующей свече (

Код: Выделить всё

self.lines.datetime[0]
).
Таким образом, все свечи получают одинаковое время.

Подробнее здесь: https://stackoverflow.com/questions/740 ... ll-candles
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»