diff --git a/freqtrade/exchange/__init__.py b/freqtrade/exchange/__init__.py index e883175e7..4a827fcb5 100644 --- a/freqtrade/exchange/__init__.py +++ b/freqtrade/exchange/__init__.py @@ -164,6 +164,12 @@ class Exchange(object): else: return None + def last_kline_close(self, pair: str): + if pair in self._klines: + return self._klines[pair].iloc[-1]['close'] + else: + return None + def set_sandbox(self, api, exchange_config: dict, name: str): if exchange_config.get('sandbox'): if api.urls.get('test'): diff --git a/freqtrade/tests/exchange/test_exchange.py b/freqtrade/tests/exchange/test_exchange.py index 647440223..6299d8dc8 100644 --- a/freqtrade/tests/exchange/test_exchange.py +++ b/freqtrade/tests/exchange/test_exchange.py @@ -814,6 +814,9 @@ def test_refresh_tickers(mocker, default_conf, caplog) -> None: assert isinstance(exchange.klines(pair), DataFrame) assert len(exchange.klines(pair)) > 0 + # test last kline close price + assert exchange.last_kline_close('XRP/ETH') == 4 + # test caching exchange.refresh_tickers(['IOTA/ETH', 'XRP/ETH'], '5m')