adding category list if the category is not from the category

This commit is contained in:
Jakub Werner (jakubikan) 2024-09-17 22:35:00 +02:00
parent 0b7cb2a1a8
commit 03ee3aaf40

View File

@ -14,7 +14,6 @@ from freqtrade.exchange.exchange_types import Tickers
from freqtrade.plugins.pairlist.IPairList import IPairList, PairlistParameter, SupportsBacktesting from freqtrade.plugins.pairlist.IPairList import IPairList, PairlistParameter, SupportsBacktesting
from freqtrade.util.coin_gecko import FtCoinGeckoApi from freqtrade.util.coin_gecko import FtCoinGeckoApi
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -34,11 +33,9 @@ class MarketCapPairList(IPairList):
self._stake_currency = self._config["stake_currency"] self._stake_currency = self._config["stake_currency"]
self._number_assets = self._pairlistconfig["number_assets"] self._number_assets = self._pairlistconfig["number_assets"]
self._max_rank = self._pairlistconfig.get("max_rank", 30) self._max_rank = self._pairlistconfig.get("max_rank", 30)
self._refresh_period = self._pairlistconfig.get( self._refresh_period = self._pairlistconfig.get("refresh_period", 86400)
"refresh_period", 86400)
self._category = self._pairlistconfig.get("category", None) self._category = self._pairlistconfig.get("category", None)
self._marketcap_cache: TTLCache = TTLCache( self._marketcap_cache: TTLCache = TTLCache(maxsize=1, ttl=self._refresh_period)
maxsize=1, ttl=self._refresh_period)
self._def_candletype = self._config["candle_type_def"] self._def_candletype = self._config["candle_type_def"]
_coingecko_config = self._config.get("coingecko", {}) _coingecko_config = self._config.get("coingecko", {})
@ -48,9 +45,14 @@ class MarketCapPairList(IPairList):
is_demo=_coingecko_config.get("is_demo", True), is_demo=_coingecko_config.get("is_demo", True),
) )
categories = self._coingecko.get_coins_categories_list()
category_ids = [cat['category_id'] for cat in categories]
if self._category not in category_ids:
raise OperationalException(f"category not in coingecko category list you can choose from {category_ids}")
if self._max_rank > 250: if self._max_rank > 250:
raise OperationalException( raise OperationalException("This filter only support marketcap rank up to 250.")
"This filter only support marketcap rank up to 250.")
@property @property
def needstickers(self) -> bool: def needstickers(self) -> bool: