diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index b2869df11..a3102856a 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -1521,10 +1521,23 @@ class Exchange: self._async_get_trade_history(pair=pair, since=since, until=until, from_id=from_id)) - def get_interest_rate(self, pair: str, maker_or_taker: str, is_short: bool) -> float: + @retrier + def get_interest_rate( + self, + pair: str, + maker_or_taker: str, + is_short: bool + ) -> Tuple[float, float]: + """ + :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) + """ # TODO-lev: implement return (0.0005, 0.0005) + @retrier def fill_leverage_brackets(self): """ #TODO-lev: Should maybe be renamed, leverage_brackets might not be accurate for kraken @@ -1543,6 +1556,7 @@ class Exchange: raise OperationalException( f"{self.name.capitalize()}.get_max_leverage has not been implemented.") + @retrier def set_leverage(self, leverage: float, pair: Optional[str]): """ Set's the leverage before making a trade, in order to not @@ -1558,7 +1572,8 @@ class Exchange: except ccxt.BaseError as e: raise OperationalException(e) from e - def set_margin_mode(self, symbol: str, collateral: Collateral, params: dict = {}): + @retrier + def set_margin_mode(self, pair: str, collateral: Collateral, params: dict = {}): ''' Set's the margin mode on the exchange to cross or isolated for a specific pair :param symbol: base/quote currency pair (e.g. "ADA/USDT") @@ -1568,7 +1583,7 @@ class Exchange: return try: - self._api.set_margin_mode(symbol, collateral.value, params) + self._api.set_margin_mode(pair, collateral.value, params) except ccxt.DDoSProtection as e: raise DDosProtection(e) from e except (ccxt.NetworkError, ccxt.ExchangeError) as e: diff --git a/tests/exchange/test_binance.py b/tests/exchange/test_binance.py index bc4cfaa36..aa4c4c62e 100644 --- a/tests/exchange/test_binance.py +++ b/tests/exchange/test_binance.py @@ -149,7 +149,7 @@ def test_get_max_leverage_binance(default_conf, mocker, pair, nominal_value, max def test_fill_leverage_brackets_binance(default_conf, mocker): api_mock = MagicMock() - api_mock.load_leverage_brackets = MagicMock(return_value={{ + api_mock.load_leverage_brackets = MagicMock(return_value={ 'ADA/BUSD': [[0.0, '0.025'], [100000.0, '0.05'], [500000.0, '0.1'], @@ -173,7 +173,7 @@ def test_fill_leverage_brackets_binance(default_conf, mocker): [250000.0, '0.125'], [1000000.0, '0.5']], - }}) + }) exchange = get_patched_exchange(mocker, default_conf, api_mock, id="binance") assert exchange._leverage_brackets == { diff --git a/tests/exchange/test_exchange.py b/tests/exchange/test_exchange.py index 710b70afe..a5e9f6d4c 100644 --- a/tests/exchange/test_exchange.py +++ b/tests/exchange/test_exchange.py @@ -2998,8 +2998,8 @@ def test_set_leverage(mocker, default_conf, exchange_name, collateral): exchange_name, "set_leverage", "set_leverage", - symbol="XRP/USDT", - collateral=collateral + pair="XRP/USDT", + leverage=5.0 ) @@ -3021,6 +3021,6 @@ def test_set_margin_mode(mocker, default_conf, exchange_name, collateral): exchange_name, "set_margin_mode", "set_margin_mode", - symbol="XRP/USDT", + pair="XRP/USDT", collateral=collateral ) diff --git a/tests/exchange/test_kraken.py b/tests/exchange/test_kraken.py index eddef08b8..90c032679 100644 --- a/tests/exchange/test_kraken.py +++ b/tests/exchange/test_kraken.py @@ -274,7 +274,7 @@ def test_get_max_leverage_kraken(default_conf, mocker, pair, nominal_value, max_ def test_fill_leverage_brackets_kraken(default_conf, mocker): api_mock = MagicMock() - api_mock.load_markets = MagicMock(return_value={{ + api_mock.load_markets = MagicMock(return_value={ "ADA/BTC": {'active': True, 'altname': 'ADAXBT', 'base': 'ADA', @@ -483,7 +483,7 @@ def test_fill_leverage_brackets_kraken(default_conf, mocker): [5000000, 0.0012], [10000000, 0.0001]]}} - }}) + }) exchange = get_patched_exchange(mocker, default_conf, api_mock, id="kraken") assert exchange._leverage_brackets == {