diff --git a/freqtrade/exchange/binance.py b/freqtrade/exchange/binance.py index 787285a02..eb0ab5cc8 100644 --- a/freqtrade/exchange/binance.py +++ b/freqtrade/exchange/binance.py @@ -3,7 +3,7 @@ import json import logging from datetime import datetime from pathlib import Path -from typing import Any, Dict, List, Optional, Tuple +from typing import Dict, List, Optional, Tuple import arrow import ccxt @@ -119,10 +119,6 @@ class Binance(Exchange): except ccxt.BaseError as e: raise OperationalException(e) from e - def market_is_future(self, market: Dict[str, Any]) -> bool: - # TODO-lev: This should be unified in ccxt to "swap"... - return market.get('future', False) is True - @retrier def fill_leverage_brackets(self): """ diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index 8f91e6a47..82b6eec77 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -338,7 +338,7 @@ class Exchange: return self.markets.get(pair, {}).get('base', '') def market_is_future(self, market: Dict[str, Any]) -> bool: - return market.get('swap', False) is True + return market.get(self._ft_has["ccxt_futures_name"], False) is True def market_is_spot(self, market: Dict[str, Any]) -> bool: return market.get('spot', False) is True diff --git a/freqtrade/exchange/ftx.py b/freqtrade/exchange/ftx.py index e798f2c29..fc7bc682e 100644 --- a/freqtrade/exchange/ftx.py +++ b/freqtrade/exchange/ftx.py @@ -20,7 +20,8 @@ class Ftx(Exchange): _ft_has: Dict = { "stoploss_on_exchange": True, "ohlcv_candle_limit": 1500, - "mark_ohlcv_price": "index" + "mark_ohlcv_price": "index", + "ccxt_futures_name": "future" } _supported_trading_mode_collateral_pairs: List[Tuple[TradingMode, Collateral]] = [ @@ -159,7 +160,3 @@ class Ftx(Exchange): if order['type'] == 'stop': return safe_value_fallback2(order, order, 'id_stop', 'id') return order['id'] - - def market_is_future(self, market: Dict[str, Any]) -> bool: - # TODO-lev: This should be unified in ccxt to "swap"... - return market.get('future', False) is True diff --git a/tests/exchange/test_exchange.py b/tests/exchange/test_exchange.py index 9da05f8e0..eb21c7f0a 100644 --- a/tests/exchange/test_exchange.py +++ b/tests/exchange/test_exchange.py @@ -3309,7 +3309,7 @@ def test_validate_trading_mode_and_collateral( ("bibox", "margin", {"has": {"fetchCurrencies": False}, "options": {"defaultType": "margin"}}), ("bibox", "futures", {"has": {"fetchCurrencies": False}, "options": {"defaultType": "swap"}}), ("bybit", "futures", {"options": {"defaultType": "linear"}}), - ("ftx", "futures", {"options": {"defaultType": "swap"}}), + ("ftx", "futures", {"options": {"defaultType": "future"}}), ("gateio", "futures", {"options": {"defaultType": "swap"}}), ("hitbtc", "futures", {"options": {"defaultType": "swap"}}), ("kraken", "futures", {"options": {"defaultType": "swap"}}),