diff --git a/freqtrade/data/history/datahandlers/featherdatahandler.py b/freqtrade/data/history/datahandlers/featherdatahandler.py index 408ffddb7..46fd7e3ae 100644 --- a/freqtrade/data/history/datahandlers/featherdatahandler.py +++ b/freqtrade/data/history/datahandlers/featherdatahandler.py @@ -58,20 +58,25 @@ class FeatherDataHandler(IDataHandler): ) if not filename.exists(): return DataFrame(columns=self._columns) - - pairdata = read_feather(filename) - pairdata.columns = self._columns - pairdata = pairdata.astype( - dtype={ - "open": "float", - "high": "float", - "low": "float", - "close": "float", - "volume": "float", - } - ) - pairdata["date"] = to_datetime(pairdata["date"], unit="ms", utc=True) - return pairdata + try: + pairdata = read_feather(filename) + pairdata.columns = self._columns + pairdata = pairdata.astype( + dtype={ + "open": "float", + "high": "float", + "low": "float", + "close": "float", + "volume": "float", + } + ) + pairdata["date"] = to_datetime(pairdata["date"], unit="ms", utc=True) + return pairdata + except Exception as e: + logger.exception( + f"Error loading data from {filename}. Exception: {e}. Returning empty dataframe." + ) + return DataFrame(columns=self._columns) def ohlcv_append( self, pair: str, timeframe: str, data: DataFrame, candle_type: CandleType diff --git a/freqtrade/data/history/datahandlers/hdf5datahandler.py b/freqtrade/data/history/datahandlers/hdf5datahandler.py index b0f525b87..3eff133f4 100644 --- a/freqtrade/data/history/datahandlers/hdf5datahandler.py +++ b/freqtrade/data/history/datahandlers/hdf5datahandler.py @@ -68,28 +68,36 @@ class HDF5DataHandler(IDataHandler): ) if not filename.exists(): return pd.DataFrame(columns=self._columns) - where = [] - if timerange: - if timerange.starttype == "date": - where.append(f"date >= Timestamp({timerange.startts * 1e9})") - if timerange.stoptype == "date": - where.append(f"date <= Timestamp({timerange.stopts * 1e9})") + try: + where = [] + if timerange: + if timerange.starttype == "date": + where.append(f"date >= Timestamp({timerange.startts * 1e9})") + if timerange.stoptype == "date": + where.append(f"date <= Timestamp({timerange.stopts * 1e9})") - pairdata = pd.read_hdf(filename, key=key, mode="r", where=where) + pairdata = pd.read_hdf(filename, key=key, mode="r", where=where) - if list(pairdata.columns) != self._columns: - raise ValueError("Wrong dataframe format") - pairdata = pairdata.astype( - dtype={ - "open": "float", - "high": "float", - "low": "float", - "close": "float", - "volume": "float", - } - ) - pairdata = pairdata.reset_index(drop=True) - return pairdata + if list(pairdata.columns) != self._columns: + raise ValueError("Wrong dataframe format") + pairdata = pairdata.astype( + dtype={ + "open": "float", + "high": "float", + "low": "float", + "close": "float", + "volume": "float", + } + ) + pairdata = pairdata.reset_index(drop=True) + return pairdata + except ValueError as e: + raise + except Exception as e: + logger.exception( + f"Error loading data from {filename}. Exception: {e}. Returning empty dataframe." + ) + return pd.DataFrame(columns=self._columns) def ohlcv_append( self, pair: str, timeframe: str, data: pd.DataFrame, candle_type: CandleType diff --git a/freqtrade/data/history/datahandlers/parquetdatahandler.py b/freqtrade/data/history/datahandlers/parquetdatahandler.py index 82d3babfa..1813f9991 100644 --- a/freqtrade/data/history/datahandlers/parquetdatahandler.py +++ b/freqtrade/data/history/datahandlers/parquetdatahandler.py @@ -56,20 +56,25 @@ class ParquetDataHandler(IDataHandler): ) if not filename.exists(): return DataFrame(columns=self._columns) - - pairdata = read_parquet(filename) - pairdata.columns = self._columns - pairdata = pairdata.astype( - dtype={ - "open": "float", - "high": "float", - "low": "float", - "close": "float", - "volume": "float", - } - ) - pairdata["date"] = to_datetime(pairdata["date"], unit="ms", utc=True) - return pairdata + try: + pairdata = read_parquet(filename) + pairdata.columns = self._columns + pairdata = pairdata.astype( + dtype={ + "open": "float", + "high": "float", + "low": "float", + "close": "float", + "volume": "float", + } + ) + pairdata["date"] = to_datetime(pairdata["date"], unit="ms", utc=True) + return pairdata + except Exception as e: + logger.exception( + f"Error loading data from {filename}. Exception: {e}. Returning empty dataframe." + ) + return DataFrame(columns=self._columns) def ohlcv_append( self, pair: str, timeframe: str, data: DataFrame, candle_type: CandleType