diff --git a/freqtrade/exchange/bybit.py b/freqtrade/exchange/bybit.py index 187830943..e71229cad 100644 --- a/freqtrade/exchange/bybit.py +++ b/freqtrade/exchange/bybit.py @@ -7,7 +7,7 @@ import ccxt from freqtrade.constants import BuySell from freqtrade.enums import CandleType, MarginMode, PriceType, TradingMode -from freqtrade.exceptions import DDosProtection, OperationalException, TemporaryError +from freqtrade.exceptions import DDosProtection, ExchangeError, OperationalException, TemporaryError from freqtrade.exchange import Exchange from freqtrade.exchange.common import retrier from freqtrade.util.datetime_helpers import dt_now, dt_ts @@ -202,8 +202,11 @@ class Bybit(Exchange): """ # Bybit does not provide "applied" funding fees per position. if self.trading_mode == TradingMode.FUTURES: - return self._fetch_and_calculate_funding_fees( - pair, amount, is_short, open_date) + try: + return self._fetch_and_calculate_funding_fees( + pair, amount, is_short, open_date) + except ExchangeError: + logger.warning(f"Could not update funding fees for {pair}.") return 0.0 def fetch_orders(self, pair: str, since: datetime, params: Optional[Dict] = None) -> List[Dict]: diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index ae8cdaa98..d6a458bf3 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -2815,17 +2815,19 @@ class Exchange: :param amount: Trade amount :param open_date: Open date of the trade :return: funding fee since open_date - :raises: ExchangeError if something goes wrong. """ if self.trading_mode == TradingMode.FUTURES: - if self._config['dry_run']: - funding_fees = self._fetch_and_calculate_funding_fees( - pair, amount, is_short, open_date) - else: - funding_fees = self._get_funding_fees_from_exchange(pair, open_date) - return funding_fees - else: - return 0.0 + try: + if self._config['dry_run']: + funding_fees = self._fetch_and_calculate_funding_fees( + pair, amount, is_short, open_date) + else: + funding_fees = self._get_funding_fees_from_exchange(pair, open_date) + return funding_fees + except ExchangeError: + logger.warning(f"Could not update funding fees for {pair}.") + + return 0.0 def get_liquidation_price( self,