From 565e2699b4618a81aeefaee885bf343b0d4491c9 Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 8 Aug 2023 20:23:01 +0200 Subject: [PATCH] Re-set funding-fee history limit for bybit to 200 --- freqtrade/exchange/bybit.py | 12 +++++++++++- tests/exchange/test_bybit.py | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/freqtrade/exchange/bybit.py b/freqtrade/exchange/bybit.py index 84779ea72..5f3762453 100644 --- a/freqtrade/exchange/bybit.py +++ b/freqtrade/exchange/bybit.py @@ -7,6 +7,7 @@ import ccxt from freqtrade.constants import BuySell from freqtrade.enums import MarginMode, PriceType, TradingMode +from freqtrade.enums.candletype import CandleType from freqtrade.exceptions import DDosProtection, OperationalException, TemporaryError from freqtrade.exchange import Exchange from freqtrade.exchange.common import retrier @@ -91,6 +92,14 @@ class Bybit(Exchange): except ccxt.BaseError as e: raise OperationalException(e) from e + def ohlcv_candle_limit( + self, timeframe: str, candle_type: CandleType, since_ms: Optional[int] = None) -> int: + + if candle_type in (CandleType.FUNDING_RATE): + return 200 + + return super().ohlcv_candle_limit(timeframe, candle_type, since_ms) + async def _fetch_funding_rate_history( self, pair: str, @@ -104,7 +113,8 @@ class Bybit(Exchange): """ params = {} if since_ms: - until = since_ms + (timeframe_to_msecs(timeframe) * self._ft_has['ohlcv_candle_limit']) + limit = self.ohlcv_candle_limit(timeframe, CandleType.FUNDING_RATE, since_ms) + until = since_ms + (timeframe_to_msecs(timeframe) * limit) params.update({'until': until}) # Funding rate data = await self._api_async.fetch_funding_rate_history( diff --git a/tests/exchange/test_bybit.py b/tests/exchange/test_bybit.py index a8c902fd6..d0d5114a1 100644 --- a/tests/exchange/test_bybit.py +++ b/tests/exchange/test_bybit.py @@ -26,7 +26,7 @@ async def test_bybit_fetch_funding_rate(default_conf, mocker): api_mock = MagicMock() api_mock.fetch_funding_rate_history = get_mock_coro(return_value=[]) exchange = get_patched_exchange(mocker, default_conf, id='bybit', api_mock=api_mock) - limit = 1000 + limit = 200 # Test fetch_funding_rate_history (current data) await exchange._fetch_funding_rate_history( pair='BTC/USDT:USDT',