]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
refactor(qav3): cleanup period objective function
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Wed, 12 Mar 2025 09:23:41 +0000 (10:23 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Wed, 12 Mar 2025 09:23:41 +0000 (10: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 d813d3b878a4fe32a4fdc224212685a2a845b39e..1081505c0ad51667b48a6e7d23ee1293f7192d50 100644 (file)
@@ -569,17 +569,6 @@ def period_objective(
     test_window = trial.suggest_int(
         "test_period_candles", min_test_window, max_test_window, step=candles_step
     )
-    min_label_period_candles: int = 10
-    max_label_period_candles: int = min(
-        max(fit_live_predictions_candles // 6, min_label_period_candles), test_window
-    )
-    label_period_candles = trial.suggest_int(
-        "label_period_candles",
-        min_label_period_candles,
-        max_label_period_candles,
-        step=candles_step,
-    )
-    test_window = (test_window // label_period_candles) * label_period_candles
     X_test = X_test.iloc[-test_window:]
     y_test = y_test.iloc[-test_window:]
     test_weights = test_weights[-test_window:]
@@ -597,6 +586,22 @@ def period_objective(
     )
     y_pred = model.predict(X_test)
 
+    min_label_period_candles: int = 10
+    max_label_period_candles: int = max(
+        fit_live_predictions_candles // 6, min_label_period_candles
+    )
+    label_period_candles = trial.suggest_int(
+        "label_period_candles",
+        min_label_period_candles,
+        max_label_period_candles,
+        step=candles_step,
+    )
+    label_period_candles_length = (
+        len(y_test) // label_period_candles
+    ) * label_period_candles
+    y_test = y_test.iloc[-label_period_candles_length:]
+    test_weights = test_weights[-label_period_candles_length:]
+    y_pred = y_pred[-label_period_candles_length:]
     n_windows = len(y_test) // label_period_candles
     y_test = [
         y_test.iloc[i : i + label_period_candles].to_numpy()
index 8feb2c821d85b5e354c8f583078d165367a839f4..e7a46f5ed5980c3d681086c39c35716c8f8b10c8 100644 (file)
@@ -572,17 +572,6 @@ def period_objective(
     test_window = trial.suggest_int(
         "test_period_candles", min_test_window, max_test_window, step=candles_step
     )
-    min_label_period_candles: int = 10
-    max_label_period_candles: int = min(
-        max(fit_live_predictions_candles // 6, min_label_period_candles), test_window
-    )
-    label_period_candles = trial.suggest_int(
-        "label_period_candles",
-        min_label_period_candles,
-        max_label_period_candles,
-        step=candles_step,
-    )
-    test_window = (test_window // label_period_candles) * label_period_candles
     X_test = X_test.iloc[-test_window:]
     y_test = y_test.iloc[-test_window:]
     test_weights = test_weights[-test_window:]
@@ -605,6 +594,22 @@ def period_objective(
     )
     y_pred = model.predict(X_test)
 
+    min_label_period_candles: int = 10
+    max_label_period_candles: int = max(
+        fit_live_predictions_candles // 6, min_label_period_candles
+    )
+    label_period_candles = trial.suggest_int(
+        "label_period_candles",
+        min_label_period_candles,
+        max_label_period_candles,
+        step=candles_step,
+    )
+    label_period_candles_length = (
+        len(y_test) // label_period_candles
+    ) * label_period_candles
+    y_test = y_test.iloc[-label_period_candles_length:]
+    test_weights = test_weights[-label_period_candles_length:]
+    y_pred = y_pred[-label_period_candles_length:]
     n_windows = len(y_test) // label_period_candles
     y_test = [
         y_test.iloc[i : i + label_period_candles].to_numpy()