From c72a2c26c7c3be0f9da2582886cd8bcca87efb5b Mon Sep 17 00:00:00 2001 From: Timothy Pogue Date: Wed, 31 Aug 2022 12:06:24 -0600 Subject: [PATCH] remove external pairlist --- .../plugins/pairlist/ExternalPairList.py | 103 ------------------ 1 file changed, 103 deletions(-) delete mode 100644 freqtrade/plugins/pairlist/ExternalPairList.py diff --git a/freqtrade/plugins/pairlist/ExternalPairList.py b/freqtrade/plugins/pairlist/ExternalPairList.py deleted file mode 100644 index 27a328060..000000000 --- a/freqtrade/plugins/pairlist/ExternalPairList.py +++ /dev/null @@ -1,103 +0,0 @@ -""" -External Pair List provider - -Provides pair list from Leader data -""" -import logging -from typing import Any, Dict, List - -from freqtrade.plugins.pairlist.IPairList import IPairList - - -logger = logging.getLogger(__name__) - - -class ExternalPairList(IPairList): - """ - PairList plugin for use with external signal follower mode. - Will use pairs given from leader data. - - Usage: - "pairlists": [ - { - "method": "ExternalPairList", - "number_assets": 5, # We can limit the amount of pairs to use from leader - } - ], - """ - - def __init__(self, exchange, pairlistmanager, - config: Dict[str, Any], pairlistconfig: Dict[str, Any], - pairlist_pos: int) -> None: - super().__init__(exchange, pairlistmanager, config, pairlistconfig, pairlist_pos) - - # Not sure how to enforce ExternalPairList as the only PairList - - self._num_assets = self._pairlistconfig.get('number_assets') - - self._leader_pairs: List[str] = [] - - def _clamped_pairlist(self): - """ - Return the self._leader_pairs pairlist limited to the maximum set num_assets - or the length of it. - """ - length = len(self._leader_pairs) - if self._num_assets: - return self._leader_pairs[:min(length, self._num_assets)] - else: - return self._leader_pairs - - @property - def needstickers(self) -> bool: - """ - Boolean property defining if tickers are necessary. - If no Pairlist requires tickers, an empty Dict is passed - as tickers argument to filter_pairlist - """ - return False - - def short_desc(self) -> str: - """ - Short whitelist method description - used for startup-messages - -> Please overwrite in subclasses - """ - return f"{self.name}" - - def add_pairlist_data(self, pairlist: List[str]): - """ - Add pairs from Leader - - :param pairlist: List of pairs - """ - - # If some pairs were removed on Leader, remove them here - for pair in self._leader_pairs: - if pair not in pairlist: - logger.debug(f"Leader removed pair: {pair}") - self._leader_pairs.remove(pair) - - # Only add new pairs - seen = set(self._leader_pairs) - for pair in pairlist: - if pair in seen: - continue - self._leader_pairs.append(pair) - - def gen_pairlist(self, tickers: Dict) -> List[str]: - """ - Generate the pairlist - :param tickers: Tickers (from exchange.get_tickers()). May be cached. - :return: List of pairs - """ - return self._clamped_pairlist() - - def filter_pairlist(self, pairlist: List[str], tickers: Dict) -> List[str]: - """ - Filters and sorts pairlist and returns the whitelist again. - Called on each bot iteration - please use internal caching if necessary - :param pairlist: pairlist to filter or sort - :param tickers: Tickers (from exchange.get_tickers()). May be cached. - :return: new whitelist - """ - return self._clamped_pairlist()