From 61ad38500a903f82015c11bc9a2d7524f30d5eab Mon Sep 17 00:00:00 2001 From: Sam Germain Date: Mon, 23 Aug 2021 00:18:15 -0600 Subject: [PATCH] Reverted freqtrade/templates/*hyperopt* files back to no shorting --- freqtrade/templates/sample_hyperopt.py | 48 --------------- .../templates/sample_hyperopt_advanced.py | 58 +------------------ 2 files changed, 2 insertions(+), 104 deletions(-) diff --git a/freqtrade/templates/sample_hyperopt.py b/freqtrade/templates/sample_hyperopt.py index ca72e3740..7ed726d7a 100644 --- a/freqtrade/templates/sample_hyperopt.py +++ b/freqtrade/templates/sample_hyperopt.py @@ -55,10 +55,6 @@ class SampleHyperOpt(IHyperOpt): Integer(15, 45, name='fastd-value'), Integer(20, 50, name='adx-value'), Integer(20, 40, name='rsi-value'), - Integer(75, 90, name='short-mfi-value'), - Integer(55, 85, name='short-fastd-value'), - Integer(50, 80, name='short-adx-value'), - Integer(60, 80, name='short-rsi-value'), Categorical([True, False], name='mfi-enabled'), Categorical([True, False], name='fastd-enabled'), Categorical([True, False], name='adx-enabled'), @@ -76,60 +72,40 @@ class SampleHyperOpt(IHyperOpt): Buy strategy Hyperopt will build and use. """ long_conditions = [] - short_conditions = [] # GUARDS AND TRENDS if 'mfi-enabled' in params and params['mfi-enabled']: long_conditions.append(dataframe['mfi'] < params['mfi-value']) - short_conditions.append(dataframe['mfi'] > params['short-mfi-value']) if 'fastd-enabled' in params and params['fastd-enabled']: long_conditions.append(dataframe['fastd'] < params['fastd-value']) - short_conditions.append(dataframe['fastd'] > params['short-fastd-value']) if 'adx-enabled' in params and params['adx-enabled']: long_conditions.append(dataframe['adx'] > params['adx-value']) - short_conditions.append(dataframe['adx'] < params['short-adx-value']) if 'rsi-enabled' in params and params['rsi-enabled']: long_conditions.append(dataframe['rsi'] < params['rsi-value']) - short_conditions.append(dataframe['rsi'] > params['short-rsi-value']) # TRIGGERS if 'trigger' in params: if params['trigger'] == 'boll': long_conditions.append(dataframe['close'] < dataframe['bb_lowerband']) - short_conditions.append(dataframe['close'] > dataframe['bb_upperband']) if params['trigger'] == 'macd_cross_signal': long_conditions.append(qtpylib.crossed_above( dataframe['macd'], dataframe['macdsignal'] )) - short_conditions.append(qtpylib.crossed_below( - dataframe['macd'], - dataframe['macdsignal'] - )) if params['trigger'] == 'sar_reversal': long_conditions.append(qtpylib.crossed_above( dataframe['close'], dataframe['sar'] )) - short_conditions.append(qtpylib.crossed_below( - dataframe['close'], - dataframe['sar'] - )) # Check that volume is not 0 long_conditions.append(dataframe['volume'] > 0) - short_conditions.append(dataframe['volume'] > 0) if long_conditions: dataframe.loc[ reduce(lambda x, y: x & y, long_conditions), 'buy'] = 1 - if short_conditions: - dataframe.loc[ - reduce(lambda x, y: x & y, short_conditions), - 'enter_short'] = 1 - return dataframe return populate_buy_trend @@ -144,10 +120,6 @@ class SampleHyperOpt(IHyperOpt): Integer(50, 100, name='sell-fastd-value'), Integer(50, 100, name='sell-adx-value'), Integer(60, 100, name='sell-rsi-value'), - Integer(1, 25, name='exit-short-mfi-value'), - Integer(1, 50, name='exit-short-fastd-value'), - Integer(1, 50, name='exit-short-adx-value'), - Integer(1, 40, name='exit-short-rsi-value'), Categorical([True, False], name='sell-mfi-enabled'), Categorical([True, False], name='sell-fastd-enabled'), Categorical([True, False], name='sell-adx-enabled'), @@ -169,60 +141,40 @@ class SampleHyperOpt(IHyperOpt): Sell strategy Hyperopt will build and use. """ exit_long_conditions = [] - exit_short_conditions = [] # GUARDS AND TRENDS if 'sell-mfi-enabled' in params and params['sell-mfi-enabled']: exit_long_conditions.append(dataframe['mfi'] > params['sell-mfi-value']) - exit_short_conditions.append(dataframe['mfi'] < params['exit-short-mfi-value']) if 'sell-fastd-enabled' in params and params['sell-fastd-enabled']: exit_long_conditions.append(dataframe['fastd'] > params['sell-fastd-value']) - exit_short_conditions.append(dataframe['fastd'] < params['exit-short-fastd-value']) if 'sell-adx-enabled' in params and params['sell-adx-enabled']: exit_long_conditions.append(dataframe['adx'] < params['sell-adx-value']) - exit_short_conditions.append(dataframe['adx'] > params['exit-short-adx-value']) if 'sell-rsi-enabled' in params and params['sell-rsi-enabled']: exit_long_conditions.append(dataframe['rsi'] > params['sell-rsi-value']) - exit_short_conditions.append(dataframe['rsi'] < params['exit-short-rsi-value']) # TRIGGERS if 'sell-trigger' in params: if params['sell-trigger'] == 'sell-boll': exit_long_conditions.append(dataframe['close'] > dataframe['bb_upperband']) - exit_short_conditions.append(dataframe['close'] < dataframe['bb_lowerband']) if params['sell-trigger'] == 'sell-macd_cross_signal': exit_long_conditions.append(qtpylib.crossed_above( dataframe['macdsignal'], dataframe['macd'] )) - exit_short_conditions.append(qtpylib.crossed_below( - dataframe['macdsignal'], - dataframe['macd'] - )) if params['sell-trigger'] == 'sell-sar_reversal': exit_long_conditions.append(qtpylib.crossed_above( dataframe['sar'], dataframe['close'] )) - exit_short_conditions.append(qtpylib.crossed_below( - dataframe['sar'], - dataframe['close'] - )) # Check that volume is not 0 exit_long_conditions.append(dataframe['volume'] > 0) - exit_short_conditions.append(dataframe['volume'] > 0) if exit_long_conditions: dataframe.loc[ reduce(lambda x, y: x & y, exit_long_conditions), 'sell'] = 1 - if exit_short_conditions: - dataframe.loc[ - reduce(lambda x, y: x & y, exit_short_conditions), - 'exit_short'] = 1 - return dataframe return populate_sell_trend diff --git a/freqtrade/templates/sample_hyperopt_advanced.py b/freqtrade/templates/sample_hyperopt_advanced.py index feb617aae..733f1ef3e 100644 --- a/freqtrade/templates/sample_hyperopt_advanced.py +++ b/freqtrade/templates/sample_hyperopt_advanced.py @@ -70,10 +70,6 @@ class AdvancedSampleHyperOpt(IHyperOpt): Integer(15, 45, name='fastd-value'), Integer(20, 50, name='adx-value'), Integer(20, 40, name='rsi-value'), - Integer(75, 90, name='short-mfi-value'), - Integer(55, 85, name='short-fastd-value'), - Integer(50, 80, name='short-adx-value'), - Integer(60, 80, name='short-rsi-value'), Categorical([True, False], name='mfi-enabled'), Categorical([True, False], name='fastd-enabled'), Categorical([True, False], name='adx-enabled'), @@ -91,59 +87,37 @@ class AdvancedSampleHyperOpt(IHyperOpt): Buy strategy Hyperopt will build and use """ long_conditions = [] - short_conditions = [] # GUARDS AND TRENDS if 'mfi-enabled' in params and params['mfi-enabled']: long_conditions.append(dataframe['mfi'] < params['mfi-value']) - short_conditions.append(dataframe['mfi'] > params['short-mfi-value']) if 'fastd-enabled' in params and params['fastd-enabled']: long_conditions.append(dataframe['fastd'] < params['fastd-value']) - short_conditions.append(dataframe['fastd'] > params['short-fastd-value']) if 'adx-enabled' in params and params['adx-enabled']: long_conditions.append(dataframe['adx'] > params['adx-value']) - short_conditions.append(dataframe['adx'] < params['short-adx-value']) if 'rsi-enabled' in params and params['rsi-enabled']: long_conditions.append(dataframe['rsi'] < params['rsi-value']) - short_conditions.append(dataframe['rsi'] > params['short-rsi-value']) # TRIGGERS if 'trigger' in params: if params['trigger'] == 'boll': long_conditions.append(dataframe['close'] < dataframe['bb_lowerband']) - short_conditions.append(dataframe['close'] > dataframe['bb_upperband']) if params['trigger'] == 'macd_cross_signal': long_conditions.append(qtpylib.crossed_above( - dataframe['macd'], - dataframe['macdsignal'] - )) - short_conditions.append(qtpylib.crossed_below( - dataframe['macd'], - dataframe['macdsignal'] + dataframe['macd'], dataframe['macdsignal'] )) if params['trigger'] == 'sar_reversal': long_conditions.append(qtpylib.crossed_above( - dataframe['close'], - dataframe['sar'] - )) - short_conditions.append(qtpylib.crossed_below( - dataframe['close'], - dataframe['sar'] + dataframe['close'], dataframe['sar'] )) # Check that volume is not 0 long_conditions.append(dataframe['volume'] > 0) - short_conditions.append(dataframe['volume'] > 0) if long_conditions: dataframe.loc[ reduce(lambda x, y: x & y, long_conditions), 'buy'] = 1 - if short_conditions: - dataframe.loc[ - reduce(lambda x, y: x & y, short_conditions), - 'enter_short'] = 1 - return dataframe return populate_buy_trend @@ -158,10 +132,6 @@ class AdvancedSampleHyperOpt(IHyperOpt): Integer(50, 100, name='sell-fastd-value'), Integer(50, 100, name='sell-adx-value'), Integer(60, 100, name='sell-rsi-value'), - Integer(1, 25, name='exit_short-mfi-value'), - Integer(1, 50, name='exit_short-fastd-value'), - Integer(1, 50, name='exit_short-adx-value'), - Integer(1, 40, name='exit_short-rsi-value'), Categorical([True, False], name='sell-mfi-enabled'), Categorical([True, False], name='sell-fastd-enabled'), Categorical([True, False], name='sell-adx-enabled'), @@ -183,59 +153,39 @@ class AdvancedSampleHyperOpt(IHyperOpt): """ # print(params) exit_long_conditions = [] - exit_short_conditions = [] # GUARDS AND TRENDS if 'sell-mfi-enabled' in params and params['sell-mfi-enabled']: exit_long_conditions.append(dataframe['mfi'] > params['sell-mfi-value']) - exit_short_conditions.append(dataframe['mfi'] < params['exit-short-mfi-value']) if 'sell-fastd-enabled' in params and params['sell-fastd-enabled']: exit_long_conditions.append(dataframe['fastd'] > params['sell-fastd-value']) - exit_short_conditions.append(dataframe['fastd'] < params['exit-short-fastd-value']) if 'sell-adx-enabled' in params and params['sell-adx-enabled']: exit_long_conditions.append(dataframe['adx'] < params['sell-adx-value']) - exit_short_conditions.append(dataframe['adx'] > params['exit-short-adx-value']) if 'sell-rsi-enabled' in params and params['sell-rsi-enabled']: exit_long_conditions.append(dataframe['rsi'] > params['sell-rsi-value']) - exit_short_conditions.append(dataframe['rsi'] < params['exit-short-rsi-value']) # TRIGGERS if 'sell-trigger' in params: if params['sell-trigger'] == 'sell-boll': exit_long_conditions.append(dataframe['close'] > dataframe['bb_upperband']) - exit_short_conditions.append(dataframe['close'] < dataframe['bb_lowerband']) if params['sell-trigger'] == 'sell-macd_cross_signal': exit_long_conditions.append(qtpylib.crossed_above( dataframe['macdsignal'], dataframe['macd'] )) - exit_long_conditions.append(qtpylib.crossed_below( - dataframe['macdsignal'], - dataframe['macd'] - )) if params['sell-trigger'] == 'sell-sar_reversal': exit_long_conditions.append(qtpylib.crossed_above( dataframe['sar'], dataframe['close'] )) - exit_long_conditions.append(qtpylib.crossed_below( - dataframe['sar'], - dataframe['close'] - )) # Check that volume is not 0 exit_long_conditions.append(dataframe['volume'] > 0) - exit_short_conditions.append(dataframe['volume'] > 0) if exit_long_conditions: dataframe.loc[ reduce(lambda x, y: x & y, exit_long_conditions), 'sell'] = 1 - if exit_short_conditions: - dataframe.loc[ - reduce(lambda x, y: x & y, exit_short_conditions), - 'exit_short'] = 1 - return dataframe return populate_sell_trend @@ -243,7 +193,6 @@ class AdvancedSampleHyperOpt(IHyperOpt): @staticmethod def generate_roi_table(params: Dict) -> Dict[int, float]: """ - # TODO-lev? Generate the ROI table that will be used by Hyperopt This implementation generates the default legacy Freqtrade ROI tables. @@ -265,7 +214,6 @@ class AdvancedSampleHyperOpt(IHyperOpt): @staticmethod def roi_space() -> List[Dimension]: """ - # TODO-lev? Values to search for each ROI steps Override it if you need some different ranges for the parameters in the @@ -286,7 +234,6 @@ class AdvancedSampleHyperOpt(IHyperOpt): @staticmethod def stoploss_space() -> List[Dimension]: """ - # TODO-lev? Stoploss Value to search Override it if you need some different range for the parameter in the @@ -299,7 +246,6 @@ class AdvancedSampleHyperOpt(IHyperOpt): @staticmethod def trailing_space() -> List[Dimension]: """ - # TODO-lev? Create a trailing stoploss space. You may override it in your custom Hyperopt class.