]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
refactor(qav3): execute only the code neede during warmup
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 2 Feb 2025 18:23:44 +0000 (19:23 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 2 Feb 2025 18:23:44 +0000 (19:23 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py
quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py

index 111ad93a46006ceef597fe23f119345032c53325..afab9499e4589dd927ff562a4d1daaad3ef9f57e 100644 (file)
@@ -140,27 +140,27 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel):
         pred_df_full = (
             self.dd.historic_predictions[pair].tail(num_candles).reset_index(drop=True)
         )
-        pred_df_sorted = pd.DataFrame()
-        for label in pred_df_full.keys():
-            if pred_df_full[label].dtype == object:
-                continue
-            pred_df_sorted[label] = pred_df_full[label]
-
-        # pred_df_sorted = pred_df_sorted
-        for col in pred_df_sorted:
-            pred_df_sorted[col] = pred_df_sorted[col].sort_values(
-                ascending=False, ignore_index=True
-            )
-        frequency = num_candles / (
-            self.freqai_info["feature_parameters"]["label_period_candles"] * 2
-        )
-        max_pred = pred_df_sorted.iloc[: int(frequency)].mean()
-        min_pred = pred_df_sorted.iloc[-int(frequency) :].mean()
 
         if not warmed_up:
             dk.data["extra_returns_per_train"]["&s-maxima_sort_threshold"] = 2
             dk.data["extra_returns_per_train"]["&s-minima_sort_threshold"] = -2
         else:
+            pred_df_sorted = pd.DataFrame()
+            for label in pred_df_full.keys():
+                if pred_df_full[label].dtype == object:
+                    continue
+                pred_df_sorted[label] = pred_df_full[label]
+
+            # pred_df_sorted = pred_df_sorted
+            for col in pred_df_sorted:
+                pred_df_sorted[col] = pred_df_sorted[col].sort_values(
+                    ascending=False, ignore_index=True
+                )
+            frequency = num_candles / (
+                self.freqai_info["feature_parameters"]["label_period_candles"] * 2
+            )
+            max_pred = pred_df_sorted.iloc[: int(frequency)].mean()
+            min_pred = pred_df_sorted.iloc[-int(frequency) :].mean()
             dk.data["extra_returns_per_train"]["&s-maxima_sort_threshold"] = max_pred[
                 "&s-extrema"
             ]
index 5908892fd03760b9456118d7915184a5d9d04b57..1d347c87aa37ffec5db56ee2d527695b411225b3 100644 (file)
@@ -137,27 +137,27 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel):
         pred_df_full = (
             self.dd.historic_predictions[pair].tail(num_candles).reset_index(drop=True)
         )
-        pred_df_sorted = pd.DataFrame()
-        for label in pred_df_full.keys():
-            if pred_df_full[label].dtype == object:
-                continue
-            pred_df_sorted[label] = pred_df_full[label]
-
-        # pred_df_sorted = pred_df_sorted
-        for col in pred_df_sorted:
-            pred_df_sorted[col] = pred_df_sorted[col].sort_values(
-                ascending=False, ignore_index=True
-            )
-        frequency = num_candles / (
-            self.freqai_info["feature_parameters"]["label_period_candles"] * 2
-        )
-        max_pred = pred_df_sorted.iloc[: int(frequency)].mean()
-        min_pred = pred_df_sorted.iloc[-int(frequency) :].mean()
 
         if not warmed_up:
             dk.data["extra_returns_per_train"]["&s-maxima_sort_threshold"] = 2
             dk.data["extra_returns_per_train"]["&s-minima_sort_threshold"] = -2
         else:
+            pred_df_sorted = pd.DataFrame()
+            for label in pred_df_full.keys():
+                if pred_df_full[label].dtype == object:
+                    continue
+                pred_df_sorted[label] = pred_df_full[label]
+
+            # pred_df_sorted = pred_df_sorted
+            for col in pred_df_sorted:
+                pred_df_sorted[col] = pred_df_sorted[col].sort_values(
+                    ascending=False, ignore_index=True
+                )
+            frequency = num_candles / (
+                self.freqai_info["feature_parameters"]["label_period_candles"] * 2
+            )
+            max_pred = pred_df_sorted.iloc[: int(frequency)].mean()
+            min_pred = pred_df_sorted.iloc[-int(frequency) :].mean()
             dk.data["extra_returns_per_train"]["&s-maxima_sort_threshold"] = max_pred[
                 "&s-extrema"
             ]