diff --git a/NostalgiaForInfinityX5.py b/NostalgiaForInfinityX5.py index 326682b7c5..dff3ae09c3 100644 --- a/NostalgiaForInfinityX5.py +++ b/NostalgiaForInfinityX5.py @@ -67,7 +67,7 @@ class NostalgiaForInfinityX5(IStrategy): INTERFACE_VERSION = 3 def version(self) -> str: - return "v15.1.270" + return "v15.1.273" stoploss = -0.99 @@ -3063,6 +3063,21 @@ def populate_indicators(self, df: DataFrame, metadata: dict) -> DataFrame: | (df["AROONU_14_1d"] < 75.0) | (df["STOCHk_14_3_3_1d"] < 50.0) ) + # 15m & 4h down move, 15m & 1h & 4h still not low enough, 1d still high & overbought + & ( + (df["RSI_3_15m"] > 15.0) + | (df["RSI_3_4h"] > 40.0) + | (df["RSI_14_15m"] < 35.0) + | (df["AROONU_14_15m"] < 25.0) + | (df["STOCHRSIk_14_14_3_3_15m"] < 20.0) + | (df["RSI_14_1h"] < 40.0) + | (df["STOCHRSIk_14_14_3_3_1h"] < 30.0) + | (df["RSI_14_4h"] < 40.0) + | (df["AROONU_14_4h"] < 25.0) + | (df["RSI_14_1d"] < 60.0) + | (df["AROONU_14_1d"] < 75.0) + | (df["ROC_9_1d"] < 30.0) + ) # 15m & 1h & 4h down move, 15m still not low enough, 4h & 1d still high & ( (df["RSI_3_15m"] > 20.0) @@ -3074,6 +3089,25 @@ def populate_indicators(self, df: DataFrame, metadata: dict) -> DataFrame: | (df["AROONU_14_1d"] < 75.0) | (df["STOCHRSIk_14_14_3_3_1d"] < 70.0) ) + # 15m & 1h & 4h down move, 15m & 1h still not low enough, 4h still high, 1d still high & overbought + & ( + (df["RSI_3_15m"] > 20.0) + | (df["RSI_3_1h"] > 60.0) + | (df["RSI_3_4h"] > 60.0) + | (df["RSI_14_15m"] < 30.0) + | (df["CCI_20_15m"] < -350.0) + | (df["RSI_14_1h"] < 40.0) + | (df["CCI_20_1h"] < -150.0) + | (df["STOCHk_14_3_3_1h"] < 20.0) + | (df["RSI_14_4h"] < 50.0) + | (df["CCI_20_4h"] < -100.0) + | (df["AROONU_14_4h"] < 75.0) + | (df["STOCHk_14_3_3_4h"] < 40.0) + | (df["RSI_14_1d"] < 60.0) + | (df["AROONU_14_1d"] < 75.0) + | (df["STOCHk_14_3_3_1d"] < 50.0) + | (df["ROC_9_1d"] < 20.0) + ) # 15m & 1h & 4h down move, 15m & 1h & 4h still not low enough, 1d high & overbought & ( (df["RSI_3_15m"] > 25.0) @@ -3751,6 +3785,22 @@ def populate_indicators(self, df: DataFrame, metadata: dict) -> DataFrame: | (df["STOCHk_14_3_3_1d"] < 70.0) | (df["ROC_9_1d"] < 50.0) ) + # 15m & 1h & 4h down move, 15m & 1h still not low enough, 4h still high, 1d still high & overbought + & ( + (df["RSI_3_15m"] > 40.0) + | (df["RSI_3_1h"] > 30.0) + | (df["RSI_3_4h"] > 50.0) + | (df["RSI_14_15m"] < 35.0) + | (df["STOCHk_14_3_3_15m"] < 30.0) + | (df["RSI_14_1h"] < 35.0) + | (df["AROONU_14_1h"] < 25.0) + | (df["STOCHk_14_3_3_1h"] < 30.0) + | (df["RSI_14_4h"] < 40.0) + | (df["AROONU_14_4h"] < 75.0) + | (df["RSI_14_1d"] < 60.0) + | (df["AROONU_14_1d"] < 75.0) + | (df["ROC_9_1d"] < 30.0) + ) # 15m & 1h & 4h down move, 15m & 1h still not low enough, 4h still high & overbought, 1d overbought & ( (df["RSI_3_15m"] > 45.0) @@ -4465,12 +4515,11 @@ def populate_indicators(self, df: DataFrame, metadata: dict) -> DataFrame: | (df["UO_7_14_28_4h"] < 40.0) | (df["RSI_14_1d"] < 40.0) ) - # 15m & 1h & 4h & 1d down move, 15m & 1h & 4h still not low enough, 1d still high + # 15m & 1h & 4h down move, 15m & 1h & 4h still not low enough, 1d still high & ( (df["RSI_3_15m"] > 10.0) | (df["RSI_3_1h"] > 20.0) | (df["RSI_3_4h"] > 35.0) - | (df["RSI_3_1d"] > 60.0) | (df["RSI_14_15m"] < 15.0) | (df["CCI_20_15m"] < -250.0) | (df["RSI_14_1h"] < 30.0) @@ -4479,10 +4528,25 @@ def populate_indicators(self, df: DataFrame, metadata: dict) -> DataFrame: | (df["WILLR_14_4h"] < -80.0) | (df["CCI_20_4h"] < -200.0) | (df["STOCHk_14_3_3_4h"] < 20.0) - | (df["STOCHRSIk_14_14_3_3_4h"] < 20.0) | (df["RSI_14_1d"] < 50.0) | (df["STOCHk_14_3_3_1d"] < 60.0) ) + # 15m & 1h & 4h & 1d down move, 15m & 1h & 4h still not low enough, 1d still high + & ( + (df["RSI_3_15m"] > 10.0) + | (df["RSI_3_1h"] > 25.0) + | (df["RSI_3_4h"] > 10.0) + | (df["RSI_3_1d"] > 60.0) + | (df["RSI_14_15m"] < 20.0) + | (df["CCI_20_15m"] < -350.0) + | (df["RSI_14_1h"] < 20.0) + | (df["CCI_20_1h"] < -250.0) + | (df["RSI_14_4h"] < 20.0) + | (df["CCI_20_4h"] < -200.0) + | (df["RSI_14_1d"] < 50.0) + | (df["AROONU_14_1d"] < 75.0) + | (df["STOCHk_14_3_3_1d"] < 40.0) + ) # 15m & 1h & 4h & 1d down move, 15m & 1h & 4h & 1d still not low enough & ( (df["RSI_3_15m"] > 10.0) @@ -4626,6 +4690,21 @@ def populate_indicators(self, df: DataFrame, metadata: dict) -> DataFrame: | (df["RSI_14_1d"] < 35.0) | (df["ROC_9_1d"] > -40.0) ) + # 15m & 1h down move, 15m still not low enough, 1h & 4h & 1d still high + & ( + (df["RSI_3_15m"] > 15.0) + | (df["RSI_3_1h"] > 45.0) + | (df["RSI_14_15m"] < 15.0) + | (df["RSI_14_1h"] < 40.0) + | (df["CCI_20_1h"] < -0.0) + | (df["STOCHk_14_3_3_1h"] < 30.0) + | (df["RSI_14_4h"] < 50.0) + | (df["CCI_20_4h"] < -0.0) + | (df["STOCHk_14_3_3_4h"] < 30.0) + | (df["RSI_14_1d"] < 50.0) + | (df["AROONU_14_1d"] < 75.0) + | (df["STOCHk_14_3_3_1d"] < 50.0) + ) # 15m & 1h & 4h & 1d down move, 15m downtrend, 1h & 4h still not low enough, 1d still high & ( (df["RSI_3_15m"] > 15.0) diff --git a/configs/pairlist-volume-binance-btc.json b/configs/pairlist-volume-binance-btc.json index 9e4439542d..8851045535 100644 --- a/configs/pairlist-volume-binance-btc.json +++ b/configs/pairlist-volume-binance-btc.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.01 diff --git a/configs/pairlist-volume-binance-busd.json b/configs/pairlist-volume-binance-busd.json index 5fab8c11fe..cc1644130f 100644 --- a/configs/pairlist-volume-binance-busd.json +++ b/configs/pairlist-volume-binance-busd.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.003 diff --git a/configs/pairlist-volume-binance-usdt.json b/configs/pairlist-volume-binance-usdt.json index 25e8cfd553..626a9f010d 100644 --- a/configs/pairlist-volume-binance-usdt.json +++ b/configs/pairlist-volume-binance-usdt.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.003 diff --git a/configs/pairlist-volume-bitget-btc.json b/configs/pairlist-volume-bitget-btc.json index 450c000170..a5cc771aa8 100644 --- a/configs/pairlist-volume-bitget-btc.json +++ b/configs/pairlist-volume-bitget-btc.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.01 diff --git a/configs/pairlist-volume-bitget-usdt.json b/configs/pairlist-volume-bitget-usdt.json index 527fd4b1c0..9b3ff9bb85 100644 --- a/configs/pairlist-volume-bitget-usdt.json +++ b/configs/pairlist-volume-bitget-usdt.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.003 diff --git a/configs/pairlist-volume-bitmart-btc.json b/configs/pairlist-volume-bitmart-btc.json index 7c6dd19585..072a917b7a 100644 --- a/configs/pairlist-volume-bitmart-btc.json +++ b/configs/pairlist-volume-bitmart-btc.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.01 diff --git a/configs/pairlist-volume-bitmart-usdt.json b/configs/pairlist-volume-bitmart-usdt.json index 13dbcb6369..f3765ff3c0 100644 --- a/configs/pairlist-volume-bitmart-usdt.json +++ b/configs/pairlist-volume-bitmart-usdt.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.003 diff --git a/configs/pairlist-volume-bitvavo-eur.json b/configs/pairlist-volume-bitvavo-eur.json index 13dbcb6369..f3765ff3c0 100644 --- a/configs/pairlist-volume-bitvavo-eur.json +++ b/configs/pairlist-volume-bitvavo-eur.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.003 diff --git a/configs/pairlist-volume-bybit-btc.json b/configs/pairlist-volume-bybit-btc.json index 9e4439542d..8851045535 100644 --- a/configs/pairlist-volume-bybit-btc.json +++ b/configs/pairlist-volume-bybit-btc.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.01 diff --git a/configs/pairlist-volume-bybit-usdt.json b/configs/pairlist-volume-bybit-usdt.json index c4d78cca94..e11e7060f3 100644 --- a/configs/pairlist-volume-bybit-usdt.json +++ b/configs/pairlist-volume-bybit-usdt.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.003 diff --git a/configs/pairlist-volume-ftx-btc.json b/configs/pairlist-volume-ftx-btc.json index 92e338d9eb..d0b8dd7a5e 100644 --- a/configs/pairlist-volume-ftx-btc.json +++ b/configs/pairlist-volume-ftx-btc.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.01 diff --git a/configs/pairlist-volume-ftx-usdt.json b/configs/pairlist-volume-ftx-usdt.json index 5fab8c11fe..cc1644130f 100644 --- a/configs/pairlist-volume-ftx-usdt.json +++ b/configs/pairlist-volume-ftx-usdt.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.003 diff --git a/configs/pairlist-volume-htx-btc.json b/configs/pairlist-volume-htx-btc.json index 6559797198..3f4b8bc7a1 100644 --- a/configs/pairlist-volume-htx-btc.json +++ b/configs/pairlist-volume-htx-btc.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "SpreadFilter", "max_spread_ratio": 0.0075 diff --git a/configs/pairlist-volume-htx-usdt.json b/configs/pairlist-volume-htx-usdt.json index 25e8cfd553..626a9f010d 100644 --- a/configs/pairlist-volume-htx-usdt.json +++ b/configs/pairlist-volume-htx-usdt.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.003 diff --git a/configs/pairlist-volume-kucoin-btc.json b/configs/pairlist-volume-kucoin-btc.json index 7c6dd19585..072a917b7a 100644 --- a/configs/pairlist-volume-kucoin-btc.json +++ b/configs/pairlist-volume-kucoin-btc.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.01 diff --git a/configs/pairlist-volume-kucoin-usdt.json b/configs/pairlist-volume-kucoin-usdt.json index 13dbcb6369..f3765ff3c0 100644 --- a/configs/pairlist-volume-kucoin-usdt.json +++ b/configs/pairlist-volume-kucoin-usdt.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.003 diff --git a/configs/pairlist-volume-mexc-btc.json b/configs/pairlist-volume-mexc-btc.json index 9e4439542d..8851045535 100644 --- a/configs/pairlist-volume-mexc-btc.json +++ b/configs/pairlist-volume-mexc-btc.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.01 diff --git a/configs/pairlist-volume-mexc-usdt.json b/configs/pairlist-volume-mexc-usdt.json index 25e8cfd553..626a9f010d 100644 --- a/configs/pairlist-volume-mexc-usdt.json +++ b/configs/pairlist-volume-mexc-usdt.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.003 diff --git a/configs/pairlist-volume-okx-btc.json b/configs/pairlist-volume-okx-btc.json index 9e4439542d..8851045535 100644 --- a/configs/pairlist-volume-okx-btc.json +++ b/configs/pairlist-volume-okx-btc.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.01 diff --git a/configs/pairlist-volume-okx-futures.json b/configs/pairlist-volume-okx-futures.json index 4f666205b9..1dd4d72475 100644 --- a/configs/pairlist-volume-okx-futures.json +++ b/configs/pairlist-volume-okx-futures.json @@ -8,7 +8,7 @@ "lookback_days": 1 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.003 diff --git a/configs/pairlist-volume-okx-usdt.json b/configs/pairlist-volume-okx-usdt.json index 25e8cfd553..626a9f010d 100644 --- a/configs/pairlist-volume-okx-usdt.json +++ b/configs/pairlist-volume-okx-usdt.json @@ -7,7 +7,7 @@ "refresh_period": 1800 }, { "method": "FullTradesFilter" }, - { "method": "AgeFilter", "min_days_listed": 4 }, + { "method": "AgeFilter", "min_days_listed": 30 }, { "method": "PriceFilter", "low_price_ratio": 0.003