diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index 6e25689f3..dcc6e513a 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -1581,31 +1581,6 @@ class Exchange: self._async_get_trade_history(pair=pair, since=since, until=until, from_id=from_id)) - @retrier - def get_interest_rate( - self, - pair: str, - maker_or_taker: str, - is_short: bool - ) -> Tuple[float, float]: - """ - Gets the rate of interest for borrowed currency when margin trading - :param pair: base/quote currency pair - :param maker_or_taker: "maker" if limit order, "taker" if market order - :param is_short: True if requesting base interest, False if requesting quote interest - :return: (open_interest, rollover_interest) - """ - try: - # TODO-lev: implement, currently there is no ccxt method for this - return (0.0005, 0.0005) - except ccxt.DDoSProtection as e: - raise DDosProtection(e) from e - except (ccxt.NetworkError, ccxt.ExchangeError) as e: - raise TemporaryError( - f'Could not set leverage due to {e.__class__.__name__}. Message: {e}') from e - except ccxt.BaseError as e: - raise OperationalException(e) from e - @retrier def fill_leverage_brackets(self): """ diff --git a/tests/exchange/test_exchange.py b/tests/exchange/test_exchange.py index 348aa3290..5d7901420 100644 --- a/tests/exchange/test_exchange.py +++ b/tests/exchange/test_exchange.py @@ -2998,69 +2998,6 @@ def test_fill_leverage_brackets(): return -# TODO-lev: These tests don't test anything real, they need to be replaced with real values once -# get_interest_rates is written -@pytest.mark.parametrize('exchange_name,pair,maker_or_taker,is_short,borrow_rate,interest_rate', [ - ('binance', "ADA/USDT", "maker", True, 0.0005, 0.0005), - ('binance', "ADA/USDT", "maker", False, 0.0005, 0.0005), - ('binance', "ADA/USDT", "taker", True, 0.0005, 0.0005), - ('binance', "ADA/USDT", "taker", False, 0.0005, 0.0005), - # Kraken - ('kraken', "ADA/USDT", "maker", True, 0.0005, 0.0005), - ('kraken', "ADA/USDT", "maker", False, 0.0005, 0.0005), - ('kraken', "ADA/USDT", "taker", True, 0.0005, 0.0005), - ('kraken', "ADA/USDT", "taker", False, 0.0005, 0.0005), - # FTX - ('ftx', "ADA/USDT", "maker", True, 0.0005, 0.0005), - ('ftx', "ADA/USDT", "maker", False, 0.0005, 0.0005), - ('ftx', "ADA/USDT", "taker", True, 0.0005, 0.0005), - ('ftx', "ADA/USDT", "taker", False, 0.0005, 0.0005), -]) -def test_get_interest_rate( - default_conf, - mocker, - exchange_name, - pair, - maker_or_taker, - is_short, - borrow_rate, - interest_rate -): - exchange = get_patched_exchange(mocker, default_conf, id=exchange_name) - assert exchange.get_interest_rate( - pair, maker_or_taker, is_short) == (borrow_rate, interest_rate) - - -@pytest.mark.parametrize("exchange_name", [("binance"), ("ftx"), ("kraken")]) -@pytest.mark.parametrize("maker_or_taker", [("maker"), ("taker")]) -@pytest.mark.parametrize("is_short", [(True), (False)]) -def test_get_interest_rate_exceptions( - mocker, - default_conf, - exchange_name, - maker_or_taker, - is_short -): - - # api_mock = MagicMock() - # # TODO-lev: get_interest_rate currently not implemented on CCXT, so this may be renamed - # api_mock.get_interest_rate = MagicMock() - # type(api_mock).has = PropertyMock(return_value={'getInterestRate': True}) - - # ccxt_exceptionhandlers( - # mocker, - # default_conf, - # api_mock, - # exchange_name, - # "get_interest_rate", - # "get_interest_rate", - # pair="XRP/USDT", - # is_short=is_short, - # maker_or_taker="maker_or_taker" - # ) - return - - @pytest.mark.parametrize("collateral", [ (Collateral.CROSS), (Collateral.ISOLATED)