parent
0b35c0571f
commit
b191663a7e
@ -39,6 +39,15 @@ class {{ hyperopt }}(IHyperOpt):
|
|||||||
https://github.com/freqtrade/freqtrade/blob/develop/freqtrade/templates/sample_hyperopt_advanced.py.
|
https://github.com/freqtrade/freqtrade/blob/develop/freqtrade/templates/sample_hyperopt_advanced.py.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def indicator_space() -> List[Dimension]:
|
||||||
|
"""
|
||||||
|
Define your Hyperopt space for searching buy strategy parameters.
|
||||||
|
"""
|
||||||
|
return [
|
||||||
|
{{ buy_space | indent(12) }}
|
||||||
|
]
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def buy_strategy_generator(params: Dict[str, Any]) -> Callable:
|
def buy_strategy_generator(params: Dict[str, Any]) -> Callable:
|
||||||
"""
|
"""
|
||||||
@ -79,12 +88,12 @@ class {{ hyperopt }}(IHyperOpt):
|
|||||||
return populate_buy_trend
|
return populate_buy_trend
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def indicator_space() -> List[Dimension]:
|
def sell_indicator_space() -> List[Dimension]:
|
||||||
"""
|
"""
|
||||||
Define your Hyperopt space for searching buy strategy parameters.
|
Define your Hyperopt space for searching sell strategy parameters.
|
||||||
"""
|
"""
|
||||||
return [
|
return [
|
||||||
{{ buy_space | indent(12) }}
|
{{ sell_space | indent(12) }}
|
||||||
]
|
]
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -126,11 +135,3 @@ class {{ hyperopt }}(IHyperOpt):
|
|||||||
|
|
||||||
return populate_sell_trend
|
return populate_sell_trend
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def sell_indicator_space() -> List[Dimension]:
|
|
||||||
"""
|
|
||||||
Define your Hyperopt space for searching sell strategy parameters.
|
|
||||||
"""
|
|
||||||
return [
|
|
||||||
{{ sell_space | indent(12) }}
|
|
||||||
]
|
|
||||||
|
@ -45,6 +45,23 @@ class SampleHyperOpt(IHyperOpt):
|
|||||||
https://github.com/freqtrade/freqtrade/blob/develop/freqtrade/templates/sample_hyperopt_advanced.py.
|
https://github.com/freqtrade/freqtrade/blob/develop/freqtrade/templates/sample_hyperopt_advanced.py.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def indicator_space() -> List[Dimension]:
|
||||||
|
"""
|
||||||
|
Define your Hyperopt space for searching buy strategy parameters.
|
||||||
|
"""
|
||||||
|
return [
|
||||||
|
Integer(10, 25, name='mfi-value'),
|
||||||
|
Integer(15, 45, name='fastd-value'),
|
||||||
|
Integer(20, 50, name='adx-value'),
|
||||||
|
Integer(20, 40, name='rsi-value'),
|
||||||
|
Categorical([True, False], name='mfi-enabled'),
|
||||||
|
Categorical([True, False], name='fastd-enabled'),
|
||||||
|
Categorical([True, False], name='adx-enabled'),
|
||||||
|
Categorical([True, False], name='rsi-enabled'),
|
||||||
|
Categorical(['bb_lower', 'macd_cross_signal', 'sar_reversal'], name='trigger')
|
||||||
|
]
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def buy_strategy_generator(params: Dict[str, Any]) -> Callable:
|
def buy_strategy_generator(params: Dict[str, Any]) -> Callable:
|
||||||
"""
|
"""
|
||||||
@ -92,20 +109,22 @@ class SampleHyperOpt(IHyperOpt):
|
|||||||
return populate_buy_trend
|
return populate_buy_trend
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def indicator_space() -> List[Dimension]:
|
def sell_indicator_space() -> List[Dimension]:
|
||||||
"""
|
"""
|
||||||
Define your Hyperopt space for searching buy strategy parameters.
|
Define your Hyperopt space for searching sell strategy parameters.
|
||||||
"""
|
"""
|
||||||
return [
|
return [
|
||||||
Integer(10, 25, name='mfi-value'),
|
Integer(75, 100, name='sell-mfi-value'),
|
||||||
Integer(15, 45, name='fastd-value'),
|
Integer(50, 100, name='sell-fastd-value'),
|
||||||
Integer(20, 50, name='adx-value'),
|
Integer(50, 100, name='sell-adx-value'),
|
||||||
Integer(20, 40, name='rsi-value'),
|
Integer(60, 100, name='sell-rsi-value'),
|
||||||
Categorical([True, False], name='mfi-enabled'),
|
Categorical([True, False], name='sell-mfi-enabled'),
|
||||||
Categorical([True, False], name='fastd-enabled'),
|
Categorical([True, False], name='sell-fastd-enabled'),
|
||||||
Categorical([True, False], name='adx-enabled'),
|
Categorical([True, False], name='sell-adx-enabled'),
|
||||||
Categorical([True, False], name='rsi-enabled'),
|
Categorical([True, False], name='sell-rsi-enabled'),
|
||||||
Categorical(['bb_lower', 'macd_cross_signal', 'sar_reversal'], name='trigger')
|
Categorical(['sell-bb_upper',
|
||||||
|
'sell-macd_cross_signal',
|
||||||
|
'sell-sar_reversal'], name='sell-trigger')
|
||||||
]
|
]
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -153,56 +172,3 @@ class SampleHyperOpt(IHyperOpt):
|
|||||||
return dataframe
|
return dataframe
|
||||||
|
|
||||||
return populate_sell_trend
|
return populate_sell_trend
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def sell_indicator_space() -> List[Dimension]:
|
|
||||||
"""
|
|
||||||
Define your Hyperopt space for searching sell strategy parameters.
|
|
||||||
"""
|
|
||||||
return [
|
|
||||||
Integer(75, 100, name='sell-mfi-value'),
|
|
||||||
Integer(50, 100, name='sell-fastd-value'),
|
|
||||||
Integer(50, 100, name='sell-adx-value'),
|
|
||||||
Integer(60, 100, name='sell-rsi-value'),
|
|
||||||
Categorical([True, False], name='sell-mfi-enabled'),
|
|
||||||
Categorical([True, False], name='sell-fastd-enabled'),
|
|
||||||
Categorical([True, False], name='sell-adx-enabled'),
|
|
||||||
Categorical([True, False], name='sell-rsi-enabled'),
|
|
||||||
Categorical(['sell-bb_upper',
|
|
||||||
'sell-macd_cross_signal',
|
|
||||||
'sell-sar_reversal'], name='sell-trigger')
|
|
||||||
]
|
|
||||||
|
|
||||||
def populate_buy_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
|
||||||
"""
|
|
||||||
Based on TA indicators. Should be a copy of same method from strategy.
|
|
||||||
Must align to populate_indicators in this file.
|
|
||||||
Only used when --spaces does not include buy space.
|
|
||||||
"""
|
|
||||||
dataframe.loc[
|
|
||||||
(
|
|
||||||
(dataframe['close'] < dataframe['bb_lowerband']) &
|
|
||||||
(dataframe['mfi'] < 16) &
|
|
||||||
(dataframe['adx'] > 25) &
|
|
||||||
(dataframe['rsi'] < 21)
|
|
||||||
),
|
|
||||||
'buy'] = 1
|
|
||||||
|
|
||||||
return dataframe
|
|
||||||
|
|
||||||
def populate_sell_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
|
||||||
"""
|
|
||||||
Based on TA indicators. Should be a copy of same method from strategy.
|
|
||||||
Must align to populate_indicators in this file.
|
|
||||||
Only used when --spaces does not include sell space.
|
|
||||||
"""
|
|
||||||
dataframe.loc[
|
|
||||||
(
|
|
||||||
(qtpylib.crossed_above(
|
|
||||||
dataframe['macdsignal'], dataframe['macd']
|
|
||||||
)) &
|
|
||||||
(dataframe['fastd'] > 54)
|
|
||||||
),
|
|
||||||
'sell'] = 1
|
|
||||||
|
|
||||||
return dataframe
|
|
||||||
|
@ -60,6 +60,23 @@ class AdvancedSampleHyperOpt(IHyperOpt):
|
|||||||
dataframe['sar'] = ta.SAR(dataframe)
|
dataframe['sar'] = ta.SAR(dataframe)
|
||||||
return dataframe
|
return dataframe
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def indicator_space() -> List[Dimension]:
|
||||||
|
"""
|
||||||
|
Define your Hyperopt space for searching buy strategy parameters.
|
||||||
|
"""
|
||||||
|
return [
|
||||||
|
Integer(10, 25, name='mfi-value'),
|
||||||
|
Integer(15, 45, name='fastd-value'),
|
||||||
|
Integer(20, 50, name='adx-value'),
|
||||||
|
Integer(20, 40, name='rsi-value'),
|
||||||
|
Categorical([True, False], name='mfi-enabled'),
|
||||||
|
Categorical([True, False], name='fastd-enabled'),
|
||||||
|
Categorical([True, False], name='adx-enabled'),
|
||||||
|
Categorical([True, False], name='rsi-enabled'),
|
||||||
|
Categorical(['bb_lower', 'macd_cross_signal', 'sar_reversal'], name='trigger')
|
||||||
|
]
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def buy_strategy_generator(params: Dict[str, Any]) -> Callable:
|
def buy_strategy_generator(params: Dict[str, Any]) -> Callable:
|
||||||
"""
|
"""
|
||||||
@ -106,20 +123,22 @@ class AdvancedSampleHyperOpt(IHyperOpt):
|
|||||||
return populate_buy_trend
|
return populate_buy_trend
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def indicator_space() -> List[Dimension]:
|
def sell_indicator_space() -> List[Dimension]:
|
||||||
"""
|
"""
|
||||||
Define your Hyperopt space for searching strategy parameters
|
Define your Hyperopt space for searching sell strategy parameters.
|
||||||
"""
|
"""
|
||||||
return [
|
return [
|
||||||
Integer(10, 25, name='mfi-value'),
|
Integer(75, 100, name='sell-mfi-value'),
|
||||||
Integer(15, 45, name='fastd-value'),
|
Integer(50, 100, name='sell-fastd-value'),
|
||||||
Integer(20, 50, name='adx-value'),
|
Integer(50, 100, name='sell-adx-value'),
|
||||||
Integer(20, 40, name='rsi-value'),
|
Integer(60, 100, name='sell-rsi-value'),
|
||||||
Categorical([True, False], name='mfi-enabled'),
|
Categorical([True, False], name='sell-mfi-enabled'),
|
||||||
Categorical([True, False], name='fastd-enabled'),
|
Categorical([True, False], name='sell-fastd-enabled'),
|
||||||
Categorical([True, False], name='adx-enabled'),
|
Categorical([True, False], name='sell-adx-enabled'),
|
||||||
Categorical([True, False], name='rsi-enabled'),
|
Categorical([True, False], name='sell-rsi-enabled'),
|
||||||
Categorical(['bb_lower', 'macd_cross_signal', 'sar_reversal'], name='trigger')
|
Categorical(['sell-bb_upper',
|
||||||
|
'sell-macd_cross_signal',
|
||||||
|
'sell-sar_reversal'], name='sell-trigger')
|
||||||
]
|
]
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -168,25 +187,6 @@ class AdvancedSampleHyperOpt(IHyperOpt):
|
|||||||
|
|
||||||
return populate_sell_trend
|
return populate_sell_trend
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def sell_indicator_space() -> List[Dimension]:
|
|
||||||
"""
|
|
||||||
Define your Hyperopt space for searching sell strategy parameters
|
|
||||||
"""
|
|
||||||
return [
|
|
||||||
Integer(75, 100, name='sell-mfi-value'),
|
|
||||||
Integer(50, 100, name='sell-fastd-value'),
|
|
||||||
Integer(50, 100, name='sell-adx-value'),
|
|
||||||
Integer(60, 100, name='sell-rsi-value'),
|
|
||||||
Categorical([True, False], name='sell-mfi-enabled'),
|
|
||||||
Categorical([True, False], name='sell-fastd-enabled'),
|
|
||||||
Categorical([True, False], name='sell-adx-enabled'),
|
|
||||||
Categorical([True, False], name='sell-rsi-enabled'),
|
|
||||||
Categorical(['sell-bb_upper',
|
|
||||||
'sell-macd_cross_signal',
|
|
||||||
'sell-sar_reversal'], name='sell-trigger')
|
|
||||||
]
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def generate_roi_table(params: Dict) -> Dict[int, float]:
|
def generate_roi_table(params: Dict) -> Dict[int, float]:
|
||||||
"""
|
"""
|
||||||
@ -267,40 +267,3 @@ class AdvancedSampleHyperOpt(IHyperOpt):
|
|||||||
|
|
||||||
Categorical([True, False], name='trailing_only_offset_is_reached'),
|
Categorical([True, False], name='trailing_only_offset_is_reached'),
|
||||||
]
|
]
|
||||||
|
|
||||||
def populate_buy_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
|
||||||
"""
|
|
||||||
Based on TA indicators.
|
|
||||||
Can be a copy of the corresponding method from the strategy,
|
|
||||||
or will be loaded from the strategy.
|
|
||||||
Must align to populate_indicators used (either from this File, or from the strategy)
|
|
||||||
Only used when --spaces does not include buy
|
|
||||||
"""
|
|
||||||
dataframe.loc[
|
|
||||||
(
|
|
||||||
(dataframe['close'] < dataframe['bb_lowerband']) &
|
|
||||||
(dataframe['mfi'] < 16) &
|
|
||||||
(dataframe['adx'] > 25) &
|
|
||||||
(dataframe['rsi'] < 21)
|
|
||||||
),
|
|
||||||
'buy'] = 1
|
|
||||||
|
|
||||||
return dataframe
|
|
||||||
|
|
||||||
def populate_sell_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
|
||||||
"""
|
|
||||||
Based on TA indicators.
|
|
||||||
Can be a copy of the corresponding method from the strategy,
|
|
||||||
or will be loaded from the strategy.
|
|
||||||
Must align to populate_indicators used (either from this File, or from the strategy)
|
|
||||||
Only used when --spaces does not include sell
|
|
||||||
"""
|
|
||||||
dataframe.loc[
|
|
||||||
(
|
|
||||||
(qtpylib.crossed_above(
|
|
||||||
dataframe['macdsignal'], dataframe['macd']
|
|
||||||
)) &
|
|
||||||
(dataframe['fastd'] > 54)
|
|
||||||
),
|
|
||||||
'sell'] = 1
|
|
||||||
return dataframe
|
|
||||||
|
Loading…
Reference in New Issue
Block a user