График Backtrader возвращает ошибку NaN или InfPython

Программы на Python
Ответить
Anonymous
 График Backtrader возвращает ошибку NaN или Inf

Сообщение Anonymous »

Я начинаю с Backtrader. Я могу загрузить данные в объект, но при построении графика появляется странное сообщение об ошибке.
Я могу создать объект с образцом данных, вот так:

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

import pandas as pd
import numpy as np
import backtrader as bt
from datetime import datetime

date_rng = pd.date_range(start='2023-01-01', end='2023-12-31', freq='B')
np.random.seed(42)
df_random = pd.DataFrame(date_rng, columns=['date'])
df_random['High'] = np.random.uniform(low=100, high=200, size=(len(date_rng)))
df_random['Low'] = np.random.uniform(low=50, high=100, size=(len(date_rng)))
df_random['Open'] = np.random.uniform(low=75, high=150, size=(len(date_rng)))
df_random['Close'] = np.random.uniform(low=75, high=150, size=(len(date_rng)))
df_random.set_index('date', inplace=True)

cerebro = bt.Cerebro()
cerebro.adddata(MyDataFeed(dataname=df_random))
cerebro.addstrategy(St)
cerebro.run()
с таким пользовательским загрузчиком:

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

class MyDataFeed(bt.feeds.PandasData):
params = (
('datetime', None),
('high', -1),
('low', -1),
('open', -1),
('close', -1),
('volume', None),
('openinterest', None),
)
и вот эта базовая стратегия:

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

class St(bt.Strategy):
def __init__(self):
self.sma = bt.indicators.SimpleMovingAverage(self.data)
Как уже было сказано, данные загружаются правильно. Но

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

cerebro.plot(iplot=False)
возвращает ошибку:

ValueError: пределы оси не могут быть NaN или Inf

Однако в моем кадре данных нет NaN.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -inf-error
Ответить

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

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

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

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

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