From 28a14cf6d3ca08edd0356dbec69f7f310db75a97 Mon Sep 17 00:00:00 2001 From: Porter Date: Mon, 16 Jun 2025 01:23:27 +0800 Subject: [PATCH] Add some check now --- .DS_Store | Bin 8196 -> 8196 bytes ChanPY.py | 48 ++++++++++++++++++++++++----------- strategies/ChanLun_BTC_30.py | 14 +++++----- 3 files changed, 40 insertions(+), 22 deletions(-) diff --git a/.DS_Store b/.DS_Store index e43026df0290258d060bd82d6137c9e905b1fbce..4b9a6fca2d5173945dddac8b60854daf6f5e3fb2 100644 GIT binary patch delta 39 vcmZp1XmOa}I9U^hRb(qtZikF!l|$lc5?@r`A3mgroji49o*6zmRG delta 139 zcmZp1XmOa}C7U^hRb%48maWyk^Yiam4k zlaq4tlNcBn1Q-|?yMeUce=q>DKw<>+rxYjWB<1JlY(6h=nr$ len(bsp_list): - if abs(last_bsp_value) == 1 or abs(last_bsp_value) == 2: + if abs(last_bsp_value) == 1: bsps.append(1) #print(klu.time, klu.idx, last_bsp.klu.time, last_bsp.klu.idx, last_bsp_value, 98) else: @@ -343,17 +344,28 @@ class ChanPY(): else: if bsp_list_pre_len == len(bsp_list): if klu.idx == last_bsp.klu.idx: - last_bsp_value = self.get_bsp_type(last_bsp.type[0], last_bsp.is_buy) - bsps.append(last_bsp_value) - #if abs(last_bsp_value) == 1 or abs(last_bsp_value) == 2: - #print(klu.time, klu.idx, last_bsp.klu.time, last_bsp.klu.idx, last_bsp_value, "Knonw") + if last_bsp.klu.idx - last_bsp_index > 3: + last_bsp_value = self.get_bsp_type(last_bsp.type[0], last_bsp.is_buy) + bsps.append(last_bsp_value) + else: + bsps.append(0) + last_bsp_index = last_bsp.klu.idx + #if abs(last_bsp_value) == 1 or abs(last_bsp_value) == 2: + #print(klu.time, klu.idx, last_bsp.klu.time, last_bsp.klu.idx, last_bsp_value, "Knonw") else: bsps.append(0) else: - last_bsp_value = self.get_bsp_type(last_bsp.type[0], last_bsp.is_buy) - bsps.append(last_bsp_value) - #if abs(last_bsp_value) == 1 or abs(last_bsp_value) == 2: - #print(klu.time, klu.idx, last_bsp.klu.time, last_bsp.klu.idx, last_bsp_value, "Unknow") + if klu.idx == last_bsp.klu.idx: + if last_bsp.klu.idx - last_bsp_index > 3: + last_bsp_value = self.get_bsp_type(last_bsp.type[0], last_bsp.is_buy) + bsps.append(last_bsp_value) + else: + bsps.append(0) + last_bsp_index = last_bsp.klu.idx + #if abs(last_bsp_value) == 1 or abs(last_bsp_value) == 2: + #print(klu.time, klu.idx, last_bsp.klu.time, last_bsp.klu.idx, last_bsp_value, "Knonw") + else: + bsps.append(0) else: bsps.append(0) bsp_list_pre_len = len(bsp_list) @@ -374,11 +386,17 @@ class ChanPY(): bsps[index] = 0 else: if bsps[index] == 2: - bsps[index] = 1 + bsps[index] = 10 else: if bsps[index] == -2: - bsps[index] = -1 + bsps[index] = -10 else: - bsps[index] = 0 + if bsps[index] == 1: + bsps[index] = 1 + else: + if bsps[index] == -1: + bsps[index] = -1 + else: + bsps[index] = 0 return bsps diff --git a/strategies/ChanLun_BTC_30.py b/strategies/ChanLun_BTC_30.py index 3a7d185..2e30ea7 100644 --- a/strategies/ChanLun_BTC_30.py +++ b/strategies/ChanLun_BTC_30.py @@ -55,19 +55,19 @@ class ChanLun_BTC_30(IStrategy): "480": 0.03, "600": 0 } - minimal_roi_2 = { + minimal_roi_1 = { "0": 0.10, "1200": 0.05, "2400": 0.025, "3600": 0 } can_short = True - lev = 2.0 + lev = 1.0 stoploss = -0.3 - trailing_stop = True + trailing_stop = False trailing_stop_positive = 0.025 trailing_stop_positive_offset = 0.045 - trailing_only_offset_is_reached = True + trailing_only_offset_is_reached = False position_adjustment_enable = True startup_candle_count = 600 @@ -198,12 +198,12 @@ class ChanLun_BTC_30(IStrategy): if trade.is_short: last_high = trade.get_custom_data(key="entry_candle_high") if current_rate > last_high: - print(trade.open_date, last_high, current_rate, "Relay Top FX exit") + #print(trade.open_date, last_high, current_rate, "Relay Top FX exit") return "Relay Top FX exit" else: last_low = trade.get_custom_data(key="entry_candle_low") if current_rate < last_low: - print(trade.open_date, last_low, current_rate, "Relay Bottom FX exit") + #print(trade.open_date, last_low, current_rate, "Relay Bottom FX exit") return "Relay Bottom FX exit" def order_filled(self, pair: str, trade: Trade, order: Order, current_time: datetime, **kwargs) -> None: """ @@ -228,7 +228,7 @@ class ChanLun_BTC_30(IStrategy): else: if (trade.nr_of_successful_entries == 1) and (order.ft_order_side == trade.entry_side): trade.set_custom_data(key="entry_candle_low", value=last_low) - print(trade.open_date, trade.close_date, last_high, last_low, order.ft_order_side, klc_list[-2].start_time, klc_list[-2].end_time) + #print(trade.open_date, trade.close_date, last_high, last_low, order.ft_order_side, klc_list[-2].start_time, klc_list[-2].end_time) self.last_trade = trade return None def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: