@@ -594,6 +594,7 @@ def version(self) -> str:
594594 "long_entry_condition_43_enable": True,
595595 "long_entry_condition_44_enable": True,
596596 "long_entry_condition_45_enable": True,
597+ "long_entry_condition_46_enable": True,
597598 "long_entry_condition_101_enable": True,
598599 "long_entry_condition_102_enable": True,
599600 "long_entry_condition_120_enable": True,
@@ -6364,6 +6365,133 @@ def populate_entry_trend(self, df: DataFrame, metadata: dict) -> DataFrame:
63646365 long_entry_logic.append(df["STOCHRSIk_14_14_3_3_15m"] < 20.0)
63656366 long_entry_logic.append(df["close_15m"] < (df["EMA_20_15m"] * 0.920))
63666367
6368+ # Condition #46 - Quick mode (Long).
6369+ if long_entry_condition_index == 46:
6370+ # Protections
6371+ long_entry_logic.append(df["num_empty_288"] <= allowed_empty_candles_288)
6372+
6373+ # 15m & 4h down move
6374+ long_entry_logic.append((df["RSI_3_15m"] > 5.0) | (df["RSI_3_4h"] > 10.0))
6375+ # 15m & 4h down move, 4h still high
6376+ long_entry_logic.append((df["RSI_3_15m"] > 5.0) | (df["RSI_3_4h"] > 25.0) | (df["AROONU_14_4h"] < 50.0))
6377+ # 15m & 1h & 4h down move
6378+ long_entry_logic.append((df["RSI_3_15m"] > 10.0) | (df["RSI_3_1h"] > 15.0) | (df["RSI_3_4h"] > 20.0))
6379+ # 15m & 4h down move, 4h still high
6380+ long_entry_logic.append((df["RSI_3_15m"] > 10.0) | (df["RSI_3_4h"] > 20.0) | (df["AROONU_14_4h"] < 50.0))
6381+ # 15m down move, 1h & 4h still high
6382+ long_entry_logic.append(
6383+ (df["RSI_3_15m"] > 20.0) | (df["AROONU_14_1h"] < 40.0) | (df["STOCHRSIk_14_14_3_3_4h"] < 50.0)
6384+ )
6385+ # 15m & 4h down move, 4h high
6386+ long_entry_logic.append((df["RSI_3_15m"] > 25.0) | (df["RSI_3_4h"] > 45.0) | (df["AROONU_14_4h"] < 85.0))
6387+ # 1h & 4h down move
6388+ long_entry_logic.append((df["RSI_3_1h"] > 5.0) | (df["RSI_3_4h"] > 10.0))
6389+ # 1h & 4h down move, 4h still not low enough
6390+ long_entry_logic.append(
6391+ (df["RSI_3_1h"] > 5.0) | (df["RSI_3_4h"] > 30.0) | (df["STOCHRSIk_14_14_3_3_4h"] < 30.0)
6392+ )
6393+ # 1h down move, 4h high
6394+ long_entry_logic.append((df["RSI_3_1h"] > 5.0) | (df["AROONU_14_4h"] < 70.0))
6395+ # 1h & 4h down move, 4h still not low enough
6396+ long_entry_logic.append((df["RSI_3_1h"] > 10.0) | (df["RSI_3_4h"] > 20.0) | (df["RSI_14_4h"] < 30.0))
6397+ # 1h & 4h down move, 4h still not low enough
6398+ long_entry_logic.append((df["RSI_3_1h"] > 10.0) | (df["RSI_3_4h"] > 30.0) | (df["AROONU_14_4h"] < 30.0))
6399+ # 1h & 4h & 1d down move
6400+ long_entry_logic.append((df["RSI_3_1h"] > 10.0) | (df["RSI_3_4h"] > 30.0) | (df["RSI_3_1d"] > 30.0))
6401+ # 1h & 4h down move, 4h high
6402+ long_entry_logic.append((df["RSI_3_1h"] > 10.0) | (df["RSI_3_4h"] > 45.0) | (df["AROONU_14_4h"] < 70.0))
6403+ # 1h & 1d down move, 4h still not low enough
6404+ long_entry_logic.append(
6405+ (df["RSI_3_1h"] > 10.0) | (df["RSI_3_1d"] > 25.0) | (df["STOCHRSIk_14_14_3_3_4h"] < 30.0)
6406+ )
6407+ # 1h down move, 1h still high
6408+ long_entry_logic.append((df["RSI_3_1h"] > 10.0) | (df["AROONU_14_1h"] < 50.0))
6409+ # 1h & 4h & 1d down move
6410+ long_entry_logic.append((df["RSI_3_1h"] > 15.0) | (df["RSI_3_4h"] > 20.0) | (df["RSI_3_1d"] > 30.0))
6411+ # 1h & 4h down move, 4h still not low enough
6412+ long_entry_logic.append((df["RSI_3_1h"] > 15.0) | (df["RSI_3_4h"] > 20.0) | (df["AROONU_14_4h"] < 30.0))
6413+ # 1h & 4h down move, 1d overbought
6414+ long_entry_logic.append((df["RSI_3_1h"] > 15.0) | (df["RSI_3_4h"] > 20.0) | (df["ROC_9_1d"] < 50.0))
6415+ # 1h & 4h & 1d down move
6416+ long_entry_logic.append((df["RSI_3_1h"] > 15.0) | (df["RSI_3_4h"] > 25.0) | (df["RSI_3_1d"] > 25.0))
6417+ # 1h & 4h down move, 4h still high
6418+ long_entry_logic.append(
6419+ (df["RSI_3_1h"] > 15.0) | (df["RSI_3_4h"] > 45.0) | (df["STOCHRSIk_14_14_3_3_4h"] < 50.0)
6420+ )
6421+ # 1h & 1d down move, 1d still high
6422+ long_entry_logic.append((df["RSI_3_1h"] > 15.0) | (df["RSI_3_1d"] > 15.0) | (df["AROONU_14_1d"] < 50.0))
6423+ # 1h down move, 4h high
6424+ long_entry_logic.append((df["RSI_3_1h"] > 15.0) | (df["STOCHRSIk_14_14_3_3_4h"] < 70.0))
6425+ # 1h & 4h down move, 1h still not low enough
6426+ long_entry_logic.append((df["RSI_3_1h"] > 20.0) | (df["RSI_3_4h"] > 20.0) | (df["AROONU_14_1h"] < 30.0))
6427+ # 1h & 4h down move, 4h still high
6428+ long_entry_logic.append((df["RSI_3_1h"] > 20.0) | (df["RSI_3_4h"] > 20.0) | (df["AROONU_14_4h"] < 50.0))
6429+ # 1h & 1d down move, 1d high
6430+ long_entry_logic.append((df["RSI_3_1h"] > 20.0) | (df["RSI_3_1d"] > 20.0) | (df["AROONU_14_1d"] < 70.0))
6431+ # 1h & 4h down move, 4h high
6432+ long_entry_logic.append((df["RSI_3_1h"] > 25.0) | (df["RSI_3_4h"] > 40.0) | (df["AROONU_14_4h"] < 70.0))
6433+ # 1h down move, 1h high
6434+ long_entry_logic.append((df["RSI_3_1h"] > 25.0) | (df["AROONU_14_1h"] < 60.0))
6435+ # 1h down move, 4h high
6436+ long_entry_logic.append((df["RSI_3_1h"] > 25.0) | (df["AROONU_14_4h"] < 80.0))
6437+ # 1h down move, 4h high
6438+ long_entry_logic.append((df["RSI_3_1h"] > 30.0) | (df["STOCHRSIk_14_14_3_3_4h"] < 90.0))
6439+ # 1h down move, 1h & 4h high
6440+ long_entry_logic.append((df["RSI_3_1h"] > 35.0) | (df["AROONU_14_1h"] < 70.0) | (df["AROONU_14_4h"] < 90.0))
6441+ # 4h & 1d down move
6442+ long_entry_logic.append((df["RSI_3_4h"] > 10.0) | (df["RSI_3_1d"] > 20.0))
6443+ # 4h down move, 4h high
6444+ long_entry_logic.append((df["RSI_3_4h"] > 30.0) | (df["AROONU_14_4h"] < 90.0))
6445+ # 4h down move, 4h & 1d high
6446+ long_entry_logic.append(
6447+ (df["RSI_3_4h"] > 35.0) | (df["AROONU_14_4h"] < 60.0) | (df["STOCHRSIk_14_14_3_3_1d"] < 90.0)
6448+ )
6449+ # pump, drop but not yet near the previous lows
6450+ long_entry_logic.append(
6451+ (((df["high_max_6_1d"] - df["low_min_6_1d"]) / df["low_min_6_1d"]) < 2.0)
6452+ | (df["close"] > (df["high_max_12_4h"] * 0.50))
6453+ | (df["close"] < (df["low_min_24_4h"] * 1.05))
6454+ )
6455+ # 1d overbought, drop but not yet near the previous lows
6456+ long_entry_logic.append(
6457+ (df["ROC_9_1d"] < 50.0)
6458+ | (df["close"] > (df["high_max_6_1d"] * 0.70))
6459+ | (df["close"] < (df["low_min_12_1d"] * 1.25))
6460+ )
6461+ # 1d overbought, drop but not yet near the previous lows
6462+ long_entry_logic.append(
6463+ (((df["high_max_12_1d"] - df["low_min_12_1d"]) / df["low_min_12_1d"]) < 2.5)
6464+ | (df["close"] > (df["high_max_6_1d"] * 0.60))
6465+ | (df["close"] < (df["low_min_12_1d"] * 1.25))
6466+ )
6467+ # big drop in the last 12 days, 1h down move
6468+ long_entry_logic.append((df["close"] > (df["high_max_12_1d"] * 0.30)) | (df["RSI_3_1h"] > 20.0))
6469+ # big drop in the last 12 days, 4h still high
6470+ long_entry_logic.append(
6471+ (df["close"] > (df["high_max_12_1d"] * 0.40)) | (df["STOCHRSIk_14_14_3_3_4h"] < 50.0)
6472+ )
6473+ # big drop in the last 20 days, 1h down move
6474+ long_entry_logic.append((df["close"] > (df["high_max_20_1d"] * 0.40)) | (df["RSI_3_1h"] > 10.0))
6475+ # big drop in the last 20 days, 4h down move
6476+ long_entry_logic.append((df["close"] > (df["high_max_20_1d"] * 0.10)) | (df["RSI_3_4h"] > 25.0))
6477+ # big drop in the last 30 days, 4h down move
6478+ long_entry_logic.append((df["close"] > (df["high_max_30_1d"] * 0.40)) | (df["RSI_3_4h"] > 15.0))
6479+ # big drop in the last 30 days, 4h still not low enough
6480+ long_entry_logic.append(
6481+ (df["close"] > (df["high_max_30_1d"] * 0.25)) | (df["STOCHRSIk_14_14_3_3_4h"] < 30.0)
6482+ )
6483+
6484+ # Logic
6485+ long_entry_logic.append(df["RSI_3"] < 40.0)
6486+ long_entry_logic.append(df["RSI_3_15m"] < 50.0)
6487+ long_entry_logic.append(df["WILLR_14_15m"] < -50.0)
6488+ long_entry_logic.append(df["AROONU_14_15m"] < 25.0)
6489+ long_entry_logic.append(df["STOCHRSIk_14_14_3_3_15m"] < 20.0)
6490+ long_entry_logic.append(df["WILLR_84_1h"] < -70.0)
6491+ long_entry_logic.append(df["STOCHRSIk_14_14_3_3_1h"] < 20.0)
6492+ long_entry_logic.append(df["BBB_20_2.0_1h"] > 16.0)
6493+ long_entry_logic.append(df["close_max_48"] >= (df["close"] * 1.10))
6494+
63676495 # Condition #101 - Rapid mode (Long).
63686496 if long_entry_condition_index == 101:
63696497 # Protections
0 commit comments