diff --git a/config_examples/Strategy002.py b/config_examples/Strategy002.py index 7452ee571..2fc5cfce4 100644 --- a/config_examples/Strategy002.py +++ b/config_examples/Strategy002.py @@ -1,6 +1,6 @@ # --- Do not remove these libs --- -from datetime import datetime + from freqtrade.strategy import IStrategy from typing import Dict, List @@ -11,6 +11,7 @@ from pandas import DataFrame import talib.abstract as ta import freqtrade.vendor.qtpylib.indicators as qtpylib import numpy # noqa +from datetime import datetime import subprocess @@ -159,7 +160,8 @@ class Strategy002(IStrategy): :return bool: When True is returned, then the buy-order is placed on the exchange. False aborts the process """ - print("confirm_trade_entry --------------> current_time = " + str(current_time)) - subprocess.call("python /root/workspace/execution/launcher.py", shell=True) + mode = "test" + coin = pair.split("/")[0] + subprocess.call("python3 /root/workspace/execution/launcher.py " + mode + " " + coin, shell=True) return True diff --git a/config_examples/Strategy003.py b/config_examples/Strategy003.py index 8d8630b77..3856e9a50 100644 --- a/config_examples/Strategy003.py +++ b/config_examples/Strategy003.py @@ -9,7 +9,8 @@ from pandas import DataFrame import talib.abstract as ta import freqtrade.vendor.qtpylib.indicators as qtpylib import numpy # noqa - +from datetime import datetime +import subprocess class Strategy003(IStrategy): """ @@ -150,3 +151,29 @@ class Strategy003(IStrategy): ), 'sell'] = 1 return dataframe + + def confirm_trade_entry(self, pair: str, order_type: str, amount: float, rate: float, + time_in_force: str, current_time: datetime, **kwargs) -> bool: + """ + Called right before placing a buy order. + Timing for this function is critical, so avoid doing heavy computations or + network requests in this method. + + For full documentation please go to https://www.freqtrade.io/en/latest/strategy-advanced/ + + When not implemented by a strategy, returns True (always confirming). + + :param pair: Pair that's about to be bought. + :param order_type: Order type (as configured in order_types). usually limit or market. + :param amount: Amount in target (quote) currency that's going to be traded. + :param rate: Rate that's going to be used when using limit orders + :param time_in_force: Time in force. Defaults to GTC (Good-til-cancelled). + :param current_time: datetime object, containing the current datetime + :param **kwargs: Ensure to keep this here so updates to this won't break your strategy. + :return bool: When True is returned, then the buy-order is placed on the exchange. + False aborts the process + """ + mode = "test" + coin = pair.split("/")[0] + subprocess.call("python3 /root/workspace/execution/launcher.py " + mode + " " + coin, shell=True) + return True \ No newline at end of file diff --git a/config_examples/Strategy004.py b/config_examples/Strategy004.py index 8e8b65999..3645b17dc 100644 --- a/config_examples/Strategy004.py +++ b/config_examples/Strategy004.py @@ -1,4 +1,3 @@ - # --- Do not remove these libs --- from freqtrade.strategy import IStrategy from typing import Dict, List @@ -6,12 +5,12 @@ from functools import reduce from pandas import DataFrame # -------------------------------- from datetime import datetime - -import talib.abstract as ta import subprocess -class Strategy004(IStrategy): +import talib.abstract as ta + +class Strategy004(IStrategy): """ Strategy 004 author@: Gerald Lonlas @@ -24,10 +23,10 @@ class Strategy004(IStrategy): # Minimal ROI designed for the strategy. # This attribute will be overridden if the config file contains "minimal_roi" minimal_roi = { - "60": 0.01, - "30": 0.03, - "20": 0.04, - "0": 0.05 + "60": 0.01, + "30": 0.03, + "20": 0.04, + "0": 0.05 } # Optimal stoploss designed for the strategy @@ -116,23 +115,23 @@ class Strategy004(IStrategy): """ dataframe.loc[ ( - ( - (dataframe['adx'] > 50) | - (dataframe['slowadx'] > 26) - ) & - (dataframe['cci'] < -100) & - ( - (dataframe['fastk-previous'] < 20) & - (dataframe['fastd-previous'] < 20) - ) & - ( - (dataframe['slowfastk-previous'] < 30) & - (dataframe['slowfastd-previous'] < 30) - ) & - (dataframe['fastk-previous'] < dataframe['fastd-previous']) & - (dataframe['fastk'] > dataframe['fastd']) & - (dataframe['mean-volume'] > 0.75) & - (dataframe['close'] > 0.00000100) + ( + (dataframe['adx'] > 50) | + (dataframe['slowadx'] > 26) + ) & + (dataframe['cci'] < -100) & + ( + (dataframe['fastk-previous'] < 20) & + (dataframe['fastd-previous'] < 20) + ) & + ( + (dataframe['slowfastk-previous'] < 30) & + (dataframe['slowfastd-previous'] < 30) + ) & + (dataframe['fastk-previous'] < dataframe['fastd-previous']) & + (dataframe['fastk'] > dataframe['fastd']) & + (dataframe['mean-volume'] > 0.75) & + (dataframe['close'] > 0.00000100) ), 'buy'] = 1 @@ -146,15 +145,14 @@ class Strategy004(IStrategy): """ dataframe.loc[ ( - (dataframe['slowadx'] < 25) & - ((dataframe['fastk'] > 70) | (dataframe['fastd'] > 70)) & - (dataframe['fastk-previous'] < dataframe['fastd-previous']) & - (dataframe['close'] > dataframe['ema5']) + (dataframe['slowadx'] < 25) & + ((dataframe['fastk'] > 70) | (dataframe['fastd'] > 70)) & + (dataframe['fastk-previous'] < dataframe['fastd-previous']) & + (dataframe['close'] > dataframe['ema5']) ), 'sell'] = 1 return dataframe - def confirm_trade_entry(self, pair: str, order_type: str, amount: float, rate: float, time_in_force: str, current_time: datetime, **kwargs) -> bool: """ @@ -176,7 +174,7 @@ class Strategy004(IStrategy): :return bool: When True is returned, then the buy-order is placed on the exchange. False aborts the process """ - print("confirm_trade_entry --------------> current_time = " + str(current_time)) - subprocess.call("python3 /root/workspace/execution/launcher.py "+ pair, shell=True) + mode = "test" + coin = pair.split("/")[0] + subprocess.call("python3 /root/workspace/execution/launcher.py " + mode + " " + coin, shell=True) return True -