diff --git a/freqtrade/plugins/pairlist/AgeFilter.py b/freqtrade/plugins/pairlist/AgeFilter.py index 0be04d7b8..e1d4711c5 100644 --- a/freqtrade/plugins/pairlist/AgeFilter.py +++ b/freqtrade/plugins/pairlist/AgeFilter.py @@ -35,10 +35,10 @@ class AgeFilter(IPairList): self._symbolsChecked: Dict[str, int] = {} self._symbolsCheckFailed = PeriodicCache(maxsize=1000, ttl=86_400) - self._min_days_listed = pairlistconfig.get("min_days_listed", 10) - self._max_days_listed = pairlistconfig.get("max_days_listed") + self._min_days_listed = self._pairlistconfig.get("min_days_listed", 10) + self._max_days_listed = self._pairlistconfig.get("max_days_listed") - candle_limit = exchange.ohlcv_candle_limit("1d", self._config["candle_type_def"]) + candle_limit = self._exchange.ohlcv_candle_limit("1d", self._config["candle_type_def"]) if self._min_days_listed < 1: raise OperationalException("AgeFilter requires min_days_listed to be >= 1") if self._min_days_listed > candle_limit: diff --git a/freqtrade/plugins/pairlist/MarketCapPairList.py b/freqtrade/plugins/pairlist/MarketCapPairList.py index 709b6100b..6395bd1a9 100644 --- a/freqtrade/plugins/pairlist/MarketCapPairList.py +++ b/freqtrade/plugins/pairlist/MarketCapPairList.py @@ -38,14 +38,14 @@ class MarketCapPairList(IPairList): 'for "pairlist.config.number_assets"' ) - self._stake_currency = config["stake_currency"] + self._stake_currency = self._config["stake_currency"] self._number_assets = self._pairlistconfig["number_assets"] self._max_rank = self._pairlistconfig.get("max_rank", 30) self._refresh_period = self._pairlistconfig.get("refresh_period", 86400) self._marketcap_cache: TTLCache = TTLCache(maxsize=1, ttl=self._refresh_period) self._def_candletype = self._config["candle_type_def"] - _coingecko_config = config.get("coingecko", {}) + _coingecko_config = self._config.get("coingecko", {}) self._coingecko: FtCoinGeckoApi = FtCoinGeckoApi( api_key=_coingecko_config.get("api_key", ""), diff --git a/freqtrade/plugins/pairlist/OffsetFilter.py b/freqtrade/plugins/pairlist/OffsetFilter.py index 1fa9e1bd0..a49c04ad4 100644 --- a/freqtrade/plugins/pairlist/OffsetFilter.py +++ b/freqtrade/plugins/pairlist/OffsetFilter.py @@ -25,8 +25,8 @@ class OffsetFilter(IPairList): ) -> None: super().__init__(exchange, pairlistmanager, config, pairlistconfig, pairlist_pos) - self._offset = pairlistconfig.get("offset", 0) - self._number_pairs = pairlistconfig.get("number_assets", 0) + self._offset = self._pairlistconfig.get("offset", 0) + self._number_pairs = self._pairlistconfig.get("number_assets", 0) if self._offset < 0: raise OperationalException("OffsetFilter requires offset to be >= 0") diff --git a/freqtrade/plugins/pairlist/PerformanceFilter.py b/freqtrade/plugins/pairlist/PerformanceFilter.py index 930c78334..edd2376de 100644 --- a/freqtrade/plugins/pairlist/PerformanceFilter.py +++ b/freqtrade/plugins/pairlist/PerformanceFilter.py @@ -27,8 +27,8 @@ class PerformanceFilter(IPairList): ) -> None: super().__init__(exchange, pairlistmanager, config, pairlistconfig, pairlist_pos) - self._minutes = pairlistconfig.get("minutes", 0) - self._min_profit = pairlistconfig.get("min_profit") + self._minutes = self._pairlistconfig.get("minutes", 0) + self._min_profit = self._pairlistconfig.get("min_profit") @property def needstickers(self) -> bool: diff --git a/freqtrade/plugins/pairlist/PriceFilter.py b/freqtrade/plugins/pairlist/PriceFilter.py index 81dbdfc33..6af8bc54b 100644 --- a/freqtrade/plugins/pairlist/PriceFilter.py +++ b/freqtrade/plugins/pairlist/PriceFilter.py @@ -25,16 +25,16 @@ class PriceFilter(IPairList): ) -> None: super().__init__(exchange, pairlistmanager, config, pairlistconfig, pairlist_pos) - self._low_price_ratio = pairlistconfig.get("low_price_ratio", 0) + self._low_price_ratio = self._pairlistconfig.get("low_price_ratio", 0) if self._low_price_ratio < 0: raise OperationalException("PriceFilter requires low_price_ratio to be >= 0") - self._min_price = pairlistconfig.get("min_price", 0) + self._min_price = self._pairlistconfig.get("min_price", 0) if self._min_price < 0: raise OperationalException("PriceFilter requires min_price to be >= 0") - self._max_price = pairlistconfig.get("max_price", 0) + self._max_price = self._pairlistconfig.get("max_price", 0) if self._max_price < 0: raise OperationalException("PriceFilter requires max_price to be >= 0") - self._max_value = pairlistconfig.get("max_value", 0) + self._max_value = self._pairlistconfig.get("max_value", 0) if self._max_value < 0: raise OperationalException("PriceFilter requires max_value to be >= 0") self._enabled = ( diff --git a/freqtrade/plugins/pairlist/ProducerPairList.py b/freqtrade/plugins/pairlist/ProducerPairList.py index 771f87380..036a6eaeb 100644 --- a/freqtrade/plugins/pairlist/ProducerPairList.py +++ b/freqtrade/plugins/pairlist/ProducerPairList.py @@ -44,7 +44,7 @@ class ProducerPairList(IPairList): self._num_assets: int = self._pairlistconfig.get("number_assets", 0) self._producer_name = self._pairlistconfig.get("producer_name", "default") - if not config.get("external_message_consumer", {}).get("enabled"): + if not self._config.get("external_message_consumer", {}).get("enabled"): raise OperationalException( "ProducerPairList requires external_message_consumer to be enabled." ) diff --git a/freqtrade/plugins/pairlist/ShuffleFilter.py b/freqtrade/plugins/pairlist/ShuffleFilter.py index a7ebe2722..015aa540b 100644 --- a/freqtrade/plugins/pairlist/ShuffleFilter.py +++ b/freqtrade/plugins/pairlist/ShuffleFilter.py @@ -32,15 +32,15 @@ class ShuffleFilter(IPairList): # Apply seed in backtesting mode to get comparable results, # but not in live modes to get a non-repeating order of pairs during live modes. - if config.get("runmode") in (RunMode.LIVE, RunMode.DRY_RUN): + if self._config.get("runmode") in (RunMode.LIVE, RunMode.DRY_RUN): self._seed = None logger.info("Live mode detected, not applying seed.") else: - self._seed = pairlistconfig.get("seed") + self._seed = self._pairlistconfig.get("seed") logger.info(f"Backtesting mode detected, applying seed value: {self._seed}") self._random = random.Random(self._seed) # noqa: S311 - self._shuffle_freq: ShuffleValues = pairlistconfig.get("shuffle_frequency", "candle") + self._shuffle_freq: ShuffleValues = self._pairlistconfig.get("shuffle_frequency", "candle") self.__pairlist_cache = PeriodicCache( maxsize=1000, ttl=timeframe_to_seconds(self._config["timeframe"]) ) diff --git a/freqtrade/plugins/pairlist/SpreadFilter.py b/freqtrade/plugins/pairlist/SpreadFilter.py index 4aca98f3e..1b9d75f40 100644 --- a/freqtrade/plugins/pairlist/SpreadFilter.py +++ b/freqtrade/plugins/pairlist/SpreadFilter.py @@ -25,7 +25,7 @@ class SpreadFilter(IPairList): ) -> None: super().__init__(exchange, pairlistmanager, config, pairlistconfig, pairlist_pos) - self._max_spread_ratio = pairlistconfig.get("max_spread_ratio", 0.005) + self._max_spread_ratio = self._pairlistconfig.get("max_spread_ratio", 0.005) self._enabled = self._max_spread_ratio != 0 if not self._exchange.get_option("tickers_have_bid_ask"): diff --git a/freqtrade/plugins/pairlist/VolatilityFilter.py b/freqtrade/plugins/pairlist/VolatilityFilter.py index c4088196d..f108e3a02 100644 --- a/freqtrade/plugins/pairlist/VolatilityFilter.py +++ b/freqtrade/plugins/pairlist/VolatilityFilter.py @@ -37,16 +37,16 @@ class VolatilityFilter(IPairList): ) -> None: super().__init__(exchange, pairlistmanager, config, pairlistconfig, pairlist_pos) - self._days = pairlistconfig.get("lookback_days", 10) - self._min_volatility = pairlistconfig.get("min_volatility", 0) - self._max_volatility = pairlistconfig.get("max_volatility", sys.maxsize) - self._refresh_period = pairlistconfig.get("refresh_period", 1440) + self._days = self._pairlistconfig.get("lookback_days", 10) + self._min_volatility = self._pairlistconfig.get("min_volatility", 0) + self._max_volatility = self._pairlistconfig.get("max_volatility", sys.maxsize) + self._refresh_period = self._pairlistconfig.get("refresh_period", 1440) self._def_candletype = self._config["candle_type_def"] - self._sort_direction: Optional[str] = pairlistconfig.get("sort_direction", None) + self._sort_direction: Optional[str] = self._pairlistconfig.get("sort_direction", None) self._pair_cache: TTLCache = TTLCache(maxsize=1000, ttl=self._refresh_period) - candle_limit = exchange.ohlcv_candle_limit("1d", self._config["candle_type_def"]) + candle_limit = self._exchange.ohlcv_candle_limit("1d", self._config["candle_type_def"]) if self._days < 1: raise OperationalException("VolatilityFilter requires lookback_days to be >= 1") if self._days > candle_limit: diff --git a/freqtrade/plugins/pairlist/VolumePairList.py b/freqtrade/plugins/pairlist/VolumePairList.py index f9a0dd6b1..1953e3ae0 100644 --- a/freqtrade/plugins/pairlist/VolumePairList.py +++ b/freqtrade/plugins/pairlist/VolumePairList.py @@ -43,7 +43,7 @@ class VolumePairList(IPairList): 'for "pairlist.config.number_assets"' ) - self._stake_currency = config["stake_currency"] + self._stake_currency = self._config["stake_currency"] self._number_pairs = self._pairlistconfig["number_assets"] self._sort_key: Literal["quoteVolume"] = self._pairlistconfig.get("sort_key", "quoteVolume") self._min_value = self._pairlistconfig.get("min_value", 0) @@ -94,7 +94,7 @@ class VolumePairList(IPairList): if not self._validate_keys(self._sort_key): raise OperationalException(f"key {self._sort_key} not in {SORT_VALUES}") - candle_limit = exchange.ohlcv_candle_limit( + candle_limit = self._exchange.ohlcv_candle_limit( self._lookback_timeframe, self._config["candle_type_def"] ) if self._lookback_period < 0: diff --git a/freqtrade/plugins/pairlist/rangestabilityfilter.py b/freqtrade/plugins/pairlist/rangestabilityfilter.py index 54c6a536e..d39a85eef 100644 --- a/freqtrade/plugins/pairlist/rangestabilityfilter.py +++ b/freqtrade/plugins/pairlist/rangestabilityfilter.py @@ -31,16 +31,16 @@ class RangeStabilityFilter(IPairList): ) -> None: super().__init__(exchange, pairlistmanager, config, pairlistconfig, pairlist_pos) - self._days = pairlistconfig.get("lookback_days", 10) - self._min_rate_of_change = pairlistconfig.get("min_rate_of_change", 0.01) - self._max_rate_of_change = pairlistconfig.get("max_rate_of_change") - self._refresh_period = pairlistconfig.get("refresh_period", 86400) + self._days = self._pairlistconfig.get("lookback_days", 10) + self._min_rate_of_change = self._pairlistconfig.get("min_rate_of_change", 0.01) + self._max_rate_of_change = self._pairlistconfig.get("max_rate_of_change") + self._refresh_period = self._pairlistconfig.get("refresh_period", 86400) self._def_candletype = self._config["candle_type_def"] - self._sort_direction: Optional[str] = pairlistconfig.get("sort_direction", None) + self._sort_direction: Optional[str] = self._pairlistconfig.get("sort_direction", None) self._pair_cache: TTLCache = TTLCache(maxsize=1000, ttl=self._refresh_period) - candle_limit = exchange.ohlcv_candle_limit("1d", self._config["candle_type_def"]) + candle_limit = self._exchange.ohlcv_candle_limit("1d", self._config["candle_type_def"]) if self._days < 1: raise OperationalException("RangeStabilityFilter requires lookback_days to be >= 1") if self._days > candle_limit: