]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
Revert "refactor(qav3): cleanup predictions thresholds computation"
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 25 Aug 2025 13:23:31 +0000 (15:23 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 25 Aug 2025 13:23:31 +0000 (15:23 +0200)
This reverts commit 383f13d8c2cf5d9048f6d7e1cdc03487bb18c4b7.

quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py

index 1d67c25fce87f03e8e3f1611e81d635555a6ceb4..3b9e7c4ef0d090e116d3f44e16780482986f0eca 100644 (file)
@@ -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,