mirror of
https://github.com/freqtrade/freqtrade.git
synced 2026-02-12 01:00:48 +00:00
Use self._ for pairlist inits
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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", ""),
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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 = (
|
||||
|
||||
@@ -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."
|
||||
)
|
||||
|
||||
@@ -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"])
|
||||
)
|
||||
|
||||
@@ -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"):
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user