diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index e3fbde459..ee28f9f9e 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -2566,13 +2566,18 @@ class Exchange: input_coroutines: list[Coroutine[Any, Any, OHLCVResponse]] = [] cached_pairs = [] for pair, timeframe, candle_type in set(pair_list): - if timeframe not in self.timeframes and candle_type in ( + invalid_funding = ( + candle_type == CandleType.FUNDING_RATE + and timeframe != self.get_option("funding_fee_timeframe") + ) + invalid_timeframe = timeframe not in self.timeframes and candle_type in ( CandleType.SPOT, CandleType.FUTURES, - ): + ) + if invalid_timeframe or invalid_funding: logger.warning( - f"Cannot download ({pair}, {timeframe}) combination as this timeframe is " - f"not available on {self.name}. Available timeframes are " + f"Cannot download ({pair}, {timeframe}, {candle_type}) combination as this " + f"timeframe is not available on {self.name}. Available timeframes are " f"{', '.join(self.timeframes)}." ) continue diff --git a/tests/exchange/test_exchange.py b/tests/exchange/test_exchange.py index bf7f6350a..fe7e77c42 100644 --- a/tests/exchange/test_exchange.py +++ b/tests/exchange/test_exchange.py @@ -2335,7 +2335,7 @@ def test_refresh_latest_ohlcv(mocker, default_conf_usdt, caplog, candle_type) -> if candle_type != CandleType.MARK: assert not res assert len(res) == 0 - assert log_has_re(r"Cannot download \(IOTA\/USDT, 3m\).*", caplog) + assert log_has_re(r"Cannot download \(IOTA\/USDT, 3m, \S+\).*", caplog) else: assert len(res) == 1