From 389ed25bd22080b29ac4593315129717de20460c Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Mon, 25 Aug 2025 15:23:31 +0200 Subject: [PATCH] Revert "refactor(qav3): cleanup predictions thresholds computation" This reverts commit 383f13d8c2cf5d9048f6d7e1cdc03487bb18c4b7. --- .../freqaimodels/QuickAdapterRegressorV3.py | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py index 1d67c25..3b9e7c4 100644 --- a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py +++ b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py @@ -547,10 +547,7 @@ class QuickAdapterRegressorV3(BaseRegressionModel): max(2, int(label_period_cycles)) * label_period_candles, ) ) - pred_extrema = pred_df.get(EXTREMA_COLUMN).iloc[-thresholds_candles:].copy() - pred_minima, pred_maxima = QuickAdapterRegressorV3.get_pred_min_max( - pred_extrema - ) + pred_extrema = pred_df.get(EXTREMA_COLUMN).iloc[-thresholds_candles:] thresholds_smoothing = str( self.freqai_info.get("prediction_thresholds_smoothing", "mean") ) @@ -571,11 +568,11 @@ class QuickAdapterRegressorV3(BaseRegressionModel): self.freqai_info.get("prediction_thresholds_alpha", 12.0) ) return QuickAdapterRegressorV3.soft_extremum_min_max( - pred_minima, pred_maxima, thresholds_alpha + pred_extrema, thresholds_alpha ) elif thresholds_smoothing in skimage_thresholds_smoothing_methods: return QuickAdapterRegressorV3.skimage_min_max( - pred_minima, pred_maxima, thresholds_smoothing + pred_extrema, thresholds_smoothing ) else: raise ValueError( @@ -629,10 +626,13 @@ class QuickAdapterRegressorV3(BaseRegressionModel): @staticmethod def soft_extremum_min_max( - pred_minima: pd.Series, pred_maxima: pd.Series, alpha: float + pred_extrema: pd.Series, alpha: float ) -> tuple[float, float]: if alpha < 0: raise ValueError("alpha must be non-negative") + pred_minima, pred_maxima = QuickAdapterRegressorV3.get_pred_min_max( + pred_extrema + ) soft_minimum = soft_extremum(pred_minima, alpha=-alpha) if not np.isfinite(soft_minimum): soft_minimum = QuickAdapterRegressorV3.safe_min_pred(pred_extrema) @@ -642,9 +642,11 @@ class QuickAdapterRegressorV3(BaseRegressionModel): return soft_minimum, soft_maximum @staticmethod - def skimage_min_max( - pred_minima: pd.Series, pred_maxima: pd.Series, method: str - ) -> tuple[float, float]: + def skimage_min_max(pred_extrema: pd.Series, method: str) -> tuple[float, float]: + pred_minima, pred_maxima = QuickAdapterRegressorV3.get_pred_min_max( + pred_extrema + ) + method_functions = { "isodata": QuickAdapterRegressorV3.apply_skimage_threshold, "li": QuickAdapterRegressorV3.apply_skimage_threshold, -- 2.43.0