diff --git a/docs/bot-optimization.md b/docs/bot-optimization.md index 6d03f55ac..7fee559b8 100644 --- a/docs/bot-optimization.md +++ b/docs/bot-optimization.md @@ -247,7 +247,7 @@ All methods return `None` in case of failure (do not raise an exception). #### Possible options for DataProvider - `available_pairs` - Property containing cached pairs -- `ohlcv(pair, ticker_interval)` - Currently cached ticker data for all pairs in the whitelist +- `ohlcv(pair, ticker_interval)` - Currently cached ticker data for all pairs in the whitelist, returns DataFrame or empty DataFrame - `historic_ohlcv(pair, ticker_interval)` - Data stored on disk - `runmode` - Property containing the current runmode. diff --git a/freqtrade/data/dataprovider.py b/freqtrade/data/dataprovider.py index e75f6ce33..4f854e647 100644 --- a/freqtrade/data/dataprovider.py +++ b/freqtrade/data/dataprovider.py @@ -37,7 +37,7 @@ class DataProvider(object): """ return list(self._exchange._klines.keys()) - def ohlcv(self, pair: str, copy: bool = True) -> List[str]: + def ohlcv(self, pair: str, copy: bool = True) -> DataFrame: """ get ohlcv data for the given pair as DataFrame Please check `available_pairs` to verify which pairs are currently cached. @@ -49,7 +49,7 @@ class DataProvider(object): if self.runmode in (RunMode.DRY_RUN, RunMode.LIVE): return self._exchange.klines(pair, copy) else: - return None + return DataFrame() def historic_ohlcv(self, pair: str, ticker_interval: str) -> DataFrame: """ diff --git a/freqtrade/exchange/__init__.py b/freqtrade/exchange/__init__.py index e0e4d7723..03b28939e 100644 --- a/freqtrade/exchange/__init__.py +++ b/freqtrade/exchange/__init__.py @@ -162,7 +162,7 @@ class Exchange(object): if pair in self._klines: return self._klines[pair].copy() if copy else self._klines[pair] else: - return None + return DataFrame() def set_sandbox(self, api, exchange_config: dict, name: str): if exchange_config.get('sandbox'): diff --git a/freqtrade/tests/data/test_dataprovider.py b/freqtrade/tests/data/test_dataprovider.py index 9988d0fef..9f17da391 100644 --- a/freqtrade/tests/data/test_dataprovider.py +++ b/freqtrade/tests/data/test_dataprovider.py @@ -18,7 +18,8 @@ def test_ohlcv(mocker, default_conf, ticker_history): assert isinstance(dp.ohlcv('UNITTEST/BTC'), DataFrame) assert dp.ohlcv('UNITTEST/BTC') is not ticker_history assert dp.ohlcv('UNITTEST/BTC', copy=False) is ticker_history - assert dp.ohlcv('NONESENSE/AAA') is None + assert not dp.ohlcv('UNITTEST/BTC').empty + assert dp.ohlcv('NONESENSE/AAA').empty default_conf['runmode'] = RunMode.LIVE dp = DataProvider(default_conf, exchange) @@ -28,7 +29,7 @@ def test_ohlcv(mocker, default_conf, ticker_history): default_conf['runmode'] = RunMode.BACKTEST dp = DataProvider(default_conf, exchange) assert dp.runmode == RunMode.BACKTEST - assert dp.ohlcv('UNITTEST/BTC') is None + assert dp.ohlcv('UNITTEST/BTC').empty def test_historic_ohlcv(mocker, default_conf, ticker_history):