diff --git a/config.json.example b/config.json.example index 4ab4f2c72..3554260bb 100644 --- a/config.json.example +++ b/config.json.example @@ -55,19 +55,18 @@ }, "edge": { "enabled": false, - "process_throttle_secs": 1800, - "calculate_since_number_of_days": 14, + "process_throttle_secs": 3600, + "calculate_since_number_of_days": 2, "total_capital_in_stake_currency": 0.5, "allowed_risk": 0.01, "stoploss_range_min": -0.01, "stoploss_range_max": -0.1, - "stoploss_range_step": -0.001, - "maximum_winrate": 0.80, + "stoploss_range_step": -0.01, + "minimum_winrate": 0.60, "minimum_expectancy": 0.20, - "min_trade_number": 15, + "min_trade_number": 10, "max_trade_duration_minute": 1440, - "remove_pumps": true, - "minimum_delta": 1 + "remove_pumps": false }, "telegram": { "enabled": true, diff --git a/config_full.json.example b/config_full.json.example index e8a3417df..7182c1f85 100644 --- a/config_full.json.example +++ b/config_full.json.example @@ -61,18 +61,18 @@ }, "edge": { "enabled": false, - "process_throttle_secs": 1800, - "calculate_since_number_of_days": 14, + "process_throttle_secs": 3600, + "calculate_since_number_of_days": 2, "total_capital_in_stake_currency": 0.5, "allowed_risk": 0.01, "stoploss_range_min": -0.01, "stoploss_range_max": -0.1, "stoploss_range_step": -0.01, - "maximum_winrate": 0.80, + "minimum_winrate": 0.60, "minimum_expectancy": 0.20, - "min_trade_number": 15, + "min_trade_number": 10, "max_trade_duration_minute": 1440, - "remove_pumps": true + "remove_pumps": false }, "experimental": { "use_sell_signal": false, diff --git a/freqtrade/constants.py b/freqtrade/constants.py index 217855ecf..df98c30b8 100644 --- a/freqtrade/constants.py +++ b/freqtrade/constants.py @@ -182,7 +182,7 @@ CONF_SCHEMA = { "stoploss_range_min": {'type': 'number'}, "stoploss_range_max": {'type': 'number'}, "stoploss_range_step": {'type': 'number'}, - "maximum_winrate": {'type': 'number'}, + "minimum_winrate": {'type': 'number'}, "minimum_expectancy": {'type': 'number'}, "min_trade_number": {'type': 'number'}, "max_trade_duration_minute": {'type': 'integer'}, diff --git a/freqtrade/edge/__init__.py b/freqtrade/edge/__init__.py index 1b0229c61..f0ca6af06 100644 --- a/freqtrade/edge/__init__.py +++ b/freqtrade/edge/__init__.py @@ -145,10 +145,18 @@ class Edge(): def filter(self, pairs) -> list: # Filtering pairs acccording to the expectancy filtered_expectancy: list = [] + + # [pair, stoploss, winrate, risk reward ratio, required risk reward, expectancy] filtered_expectancy = [ - x[0] for x in self._cached_pairs if x[5] > float( - self.edge_config.get( - 'minimum_expectancy', 0.2))] + x[0] for x in self._cached_pairs if ( + (x[5] > float( + self.edge_config.get( + 'minimum_expectancy', + 0.2))) & ( + x[2] > float( + self.edge_config.get( + 'minimum_winrate', + 0.60))))] # Only return pairs which are included in "pairs" argument list final = [x for x in filtered_expectancy if x in pairs]