parent
8f41f943b4
commit
02f2096fc3
@ -100,23 +100,19 @@ class RangeStabilityFilter(IPairList):
|
|||||||
if cached_res is not None:
|
if cached_res is not None:
|
||||||
return cached_res
|
return cached_res
|
||||||
|
|
||||||
result = False
|
result = True
|
||||||
if daily_candles is not None and not daily_candles.empty:
|
if daily_candles is not None and not daily_candles.empty:
|
||||||
highest_high = daily_candles['high'].max()
|
highest_high = daily_candles['high'].max()
|
||||||
lowest_low = daily_candles['low'].min()
|
lowest_low = daily_candles['low'].min()
|
||||||
pct_change = ((highest_high - lowest_low) / lowest_low) if lowest_low > 0 else 0
|
pct_change = ((highest_high - lowest_low) / lowest_low) if lowest_low > 0 else 0
|
||||||
if pct_change >= self._min_rate_of_change:
|
if pct_change < self._min_rate_of_change:
|
||||||
result = True
|
|
||||||
else:
|
|
||||||
self.log_once(f"Removed {pair} from whitelist, because 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"over {self._days} {plural(self._days, 'day')} is {pct_change:.3f}, "
|
||||||
f"which is below the threshold of {self._min_rate_of_change}.",
|
f"which is below the threshold of {self._min_rate_of_change}.",
|
||||||
logger.info)
|
logger.info)
|
||||||
result = False
|
result = False
|
||||||
if self._max_rate_of_change:
|
if self._max_rate_of_change:
|
||||||
if pct_change <= self._max_rate_of_change:
|
if pct_change > self._max_rate_of_change:
|
||||||
result = True
|
|
||||||
else:
|
|
||||||
self.log_once(
|
self.log_once(
|
||||||
f"Removed {pair} from whitelist, because rate of change "
|
f"Removed {pair} from whitelist, because rate of change "
|
||||||
f"over {self._days} {plural(self._days, 'day')} is {pct_change:.3f}, "
|
f"over {self._days} {plural(self._days, 'day')} is {pct_change:.3f}, "
|
||||||
|
@ -467,6 +467,10 @@ def test_VolumePairList_refresh_empty(mocker, markets_empty, whitelist_conf):
|
|||||||
{"method": "RangeStabilityFilter", "lookback_days": 10,
|
{"method": "RangeStabilityFilter", "lookback_days": 10,
|
||||||
"max_rate_of_change": 0.01, "refresh_period": 1440}],
|
"max_rate_of_change": 0.01, "refresh_period": 1440}],
|
||||||
"BTC", []), # All removed because of max_rate_of_change being 0.017
|
"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": "StaticPairList"},
|
||||||
{"method": "VolatilityFilter", "lookback_days": 3,
|
{"method": "VolatilityFilter", "lookback_days": 3,
|
||||||
"min_volatility": 0.002, "max_volatility": 0.004, "refresh_period": 1440}],
|
"min_volatility": 0.002, "max_volatility": 0.004, "refresh_period": 1440}],
|
||||||
|
Loading…
Reference in New Issue
Block a user