From 02f2096fc35d12859c8921c51d2857168d23ee05 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 21 Sep 2022 06:51:14 +0200 Subject: [PATCH] Reverse and fix rangestability conditions closes #7447 --- freqtrade/plugins/pairlist/rangestabilityfilter.py | 10 +++------- tests/plugins/test_pairlist.py | 4 ++++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/freqtrade/plugins/pairlist/rangestabilityfilter.py b/freqtrade/plugins/pairlist/rangestabilityfilter.py index 0bc2cdb47..1bc7ad48f 100644 --- a/freqtrade/plugins/pairlist/rangestabilityfilter.py +++ b/freqtrade/plugins/pairlist/rangestabilityfilter.py @@ -100,23 +100,19 @@ class RangeStabilityFilter(IPairList): if cached_res is not None: return cached_res - result = False + result = True if daily_candles is not None and not daily_candles.empty: highest_high = daily_candles['high'].max() lowest_low = daily_candles['low'].min() pct_change = ((highest_high - lowest_low) / lowest_low) if lowest_low > 0 else 0 - if pct_change >= self._min_rate_of_change: - result = True - else: + if pct_change < self._min_rate_of_change: self.log_once(f"Removed {pair} from whitelist, because rate of change " f"over {self._days} {plural(self._days, 'day')} is {pct_change:.3f}, " f"which is below the threshold of {self._min_rate_of_change}.", logger.info) result = False if self._max_rate_of_change: - if pct_change <= self._max_rate_of_change: - result = True - else: + if pct_change > self._max_rate_of_change: self.log_once( f"Removed {pair} from whitelist, because rate of change " f"over {self._days} {plural(self._days, 'day')} is {pct_change:.3f}, " diff --git a/tests/plugins/test_pairlist.py b/tests/plugins/test_pairlist.py index 48a0f81cb..538751251 100644 --- a/tests/plugins/test_pairlist.py +++ b/tests/plugins/test_pairlist.py @@ -467,6 +467,10 @@ def test_VolumePairList_refresh_empty(mocker, markets_empty, whitelist_conf): {"method": "RangeStabilityFilter", "lookback_days": 10, "max_rate_of_change": 0.01, "refresh_period": 1440}], "BTC", []), # All removed because of max_rate_of_change being 0.017 + ([{"method": "StaticPairList"}, + {"method": "RangeStabilityFilter", "lookback_days": 10, + "min_rate_of_change": 0.018, "max_rate_of_change": 0.02, "refresh_period": 1440}], + "BTC", []), # All removed - limits are above the highest change_rate ([{"method": "StaticPairList"}, {"method": "VolatilityFilter", "lookback_days": 3, "min_volatility": 0.002, "max_volatility": 0.004, "refresh_period": 1440}],