From 11b084382af5b853a78b8105914629dd1dfbf9c6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Sun, 1 Jun 2025 19:32:04 +0200 Subject: [PATCH] fix(qav3): fix label params handling MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- quickadapter/user_data/strategies/QuickAdapterV3.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/quickadapter/user_data/strategies/QuickAdapterV3.py b/quickadapter/user_data/strategies/QuickAdapterV3.py index d918cfa..bd986c6 100644 --- a/quickadapter/user_data/strategies/QuickAdapterV3.py +++ b/quickadapter/user_data/strategies/QuickAdapterV3.py @@ -348,24 +348,24 @@ class QuickAdapterV3(IStrategy): label_period_candles = self._label_params.get(pair, {}).get( "label_period_candles" ) - if isinstance(label_period_candles, int): + if label_period_candles and isinstance(label_period_candles, int): return label_period_candles return self.freqai_info["feature_parameters"].get("label_period_candles", 50) def set_label_period_candles(self, pair: str, label_period_candles: int): - if isinstance(label_period_candles, int): + if isinstance(label_period_candles, int) and not np.isnan(label_period_candles): self._label_params[pair]["label_period_candles"] = label_period_candles def get_label_natr_ratio(self, pair: str) -> float: label_natr_ratio = self._label_params.get(pair, {}).get("label_natr_ratio") - if isinstance(label_natr_ratio, float): + if label_natr_ratio and isinstance(label_natr_ratio, float): return label_natr_ratio return float( self.freqai_info["feature_parameters"].get("label_natr_ratio", 6.0) ) def set_label_natr_ratio(self, pair: str, label_natr_ratio: float): - if isinstance(label_natr_ratio, float): + if isinstance(label_natr_ratio, float) and not np.isnan(label_natr_ratio): self._label_params[pair]["label_natr_ratio"] = label_natr_ratio def get_entry_natr_ratio(self, pair: str) -> float: @@ -484,7 +484,9 @@ class QuickAdapterV3(IStrategy): @staticmethod def is_trade_duration_valid(trade_duration: float) -> bool: - return not (isna(trade_duration) or trade_duration <= 0) + return isinstance(trade_duration, (int, float)) and not ( + isna(trade_duration) or trade_duration <= 0 + ) @staticmethod def get_trade_natr( -- 2.43.0