From 95b63ea496da622fc055b7d55e358b47bfe56e61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Rodr=C3=ADguez?= Date: Tue, 22 Feb 2022 19:33:52 +0100 Subject: [PATCH 1/3] Add short signal to base strategy template --- freqtrade/templates/base_strategy.py.j2 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/freqtrade/templates/base_strategy.py.j2 b/freqtrade/templates/base_strategy.py.j2 index 64283c7e7..b98b75118 100644 --- a/freqtrade/templates/base_strategy.py.j2 +++ b/freqtrade/templates/base_strategy.py.j2 @@ -129,6 +129,13 @@ class {{ strategy }}(IStrategy): (dataframe['volume'] > 0) # Make sure Volume is not 0 ), 'enter_long'] = 1 + # Uncomment to use shorts (remember to set margin in trading mode in configuration) + '''dataframe.loc[ + ( + {{ sell_trend | indent(16) }} + (dataframe['volume'] > 0) # Make sure Volume is not 0 + ), + 'enter_short'] = 1''' return dataframe @@ -145,5 +152,12 @@ class {{ strategy }}(IStrategy): (dataframe['volume'] > 0) # Make sure Volume is not 0 ), 'exit_long'] = 1 + # Uncomment to use shorts (remember to set margin in trading mode in configuration) + '''dataframe.loc[ + ( + {{ buy_trend | indent(16) }} + (dataframe['volume'] > 0) # Make sure Volume is not 0 + ), + 'exit_short'] = 1''' return dataframe {{ additional_methods | indent(4) }} From c51603b1109cebcbc146246d69a4dc935aba5bd6 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 23 Feb 2022 20:16:52 +0100 Subject: [PATCH 2/3] Slightly improve formatting, Point to documentation --- freqtrade/templates/base_strategy.py.j2 | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/freqtrade/templates/base_strategy.py.j2 b/freqtrade/templates/base_strategy.py.j2 index b98b75118..06abecc42 100644 --- a/freqtrade/templates/base_strategy.py.j2 +++ b/freqtrade/templates/base_strategy.py.j2 @@ -129,13 +129,15 @@ class {{ strategy }}(IStrategy): (dataframe['volume'] > 0) # Make sure Volume is not 0 ), 'enter_long'] = 1 - # Uncomment to use shorts (remember to set margin in trading mode in configuration) - '''dataframe.loc[ + # Uncomment to use shorts (Only used in futures/margin mode. Check the documentation for more info) + """ + dataframe.loc[ ( {{ sell_trend | indent(16) }} (dataframe['volume'] > 0) # Make sure Volume is not 0 ), - 'enter_short'] = 1''' + 'enter_short'] = 1 + """ return dataframe @@ -152,12 +154,14 @@ class {{ strategy }}(IStrategy): (dataframe['volume'] > 0) # Make sure Volume is not 0 ), 'exit_long'] = 1 - # Uncomment to use shorts (remember to set margin in trading mode in configuration) - '''dataframe.loc[ + # Uncomment to use shorts (Only used in futures/margin mode. Check the documentation for more info) + """ + dataframe.loc[ ( {{ buy_trend | indent(16) }} (dataframe['volume'] > 0) # Make sure Volume is not 0 ), - 'exit_short'] = 1''' + 'exit_short'] = 1 + """ return dataframe {{ additional_methods | indent(4) }} From d973ba1f5dcf22031bc0463df3e58a968b0673f8 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 23 Feb 2022 20:19:52 +0100 Subject: [PATCH 3/3] Add leverage callback to advanced template --- freqtrade/strategy/interface.py | 3 +-- .../subtemplates/strategy_methods_advanced.j2 | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/freqtrade/strategy/interface.py b/freqtrade/strategy/interface.py index 6bfd12851..cc540e368 100644 --- a/freqtrade/strategy/interface.py +++ b/freqtrade/strategy/interface.py @@ -426,8 +426,7 @@ class IStrategy(ABC, HyperStrategyMixin): proposed_leverage: float, max_leverage: float, side: str, **kwargs) -> float: """ - Customize leverage for each new trade. This method is not called when edge module is - enabled. + Customize leverage for each new trade. This method is only called in futures mode. :param pair: Pair that's currently analyzed :param current_time: datetime object, containing the current datetime diff --git a/freqtrade/templates/subtemplates/strategy_methods_advanced.j2 b/freqtrade/templates/subtemplates/strategy_methods_advanced.j2 index f81514b2a..d0b56fe8e 100644 --- a/freqtrade/templates/subtemplates/strategy_methods_advanced.j2 +++ b/freqtrade/templates/subtemplates/strategy_methods_advanced.j2 @@ -232,3 +232,19 @@ def adjust_trade_position(self, trade: 'Trade', current_time: 'datetime', :return float: Stake amount to adjust your trade """ return None + +def leverage(self, pair: str, current_time: datetime, current_rate: float, + proposed_leverage: float, max_leverage: float, side: str, + **kwargs) -> float: + """ + Customize leverage for each new trade. This method is only called in futures mode. + + :param pair: Pair that's currently analyzed + :param current_time: datetime object, containing the current datetime + :param current_rate: Rate, calculated based on pricing settings in ask_strategy. + :param proposed_leverage: A leverage proposed by the bot. + :param max_leverage: Max leverage allowed on this pair + :param side: 'long' or 'short' - indicating the direction of the proposed trade + :return: A leverage amount, which is between 1.0 and max_leverage. + """ + return 1.0