def to_btfeed(self): """ Performs BTgymDataset-->bt.feed conversion. Returns: bt.datafeed instance. """ try: assert not self.data.empty btfeed = btfeeds.PandasDirectData(dataname=self.data, timeframe=self.timeframe, datetime=self.datetime, open=self.open, high=self.high, low=self.low, close=self.close, volume=self.volume, openinterest=self.openinterest) btfeed.numrecords = self.data.shape[0] return btfeed except (AssertionError, AttributeError) as e: msg = 'BTgymDataset instance holds no data. Hint: forgot to call .read_csv()?' self.log.error(msg) raise AssertionError(msg)
def to_btfeed(self): """ Performs BTgymData-->bt.feed conversion. Returns: dict of type: {data_line_name: bt.datafeed instance}. """ def bt_timeframe(minutes): timeframe = TimeFrame.Minutes if minutes / 1440 == 1: timeframe = TimeFrame.Days return timeframe try: assert not self.data.empty btfeed = btfeeds.PandasDirectData( dataname=self.data, timeframe=bt_timeframe(self.timeframe), datetime=self.datetime, open=self.open, high=self.high, low=self.low, close=self.close, volume=self.volume, openinterest=self.openinterest ) btfeed.numrecords = self.data.shape[0] return {self.data_name: btfeed} except (AssertionError, AttributeError) as e: msg = 'Instance holds no data. Hint: forgot to call .read_csv()?' self.log.error(msg) raise AssertionError(msg)