Я могу создать объект с образцом данных, вот так:
Код: Выделить всё
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
Мобильная версия