]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
feat: add tunable for the candles history optuna lookup
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Wed, 29 Jan 2025 19:49:29 +0000 (20:49 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Wed, 29 Jan 2025 19:49:29 +0000 (20:49 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
quickadapter/user_data/config-template.json
quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py
quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py

index 8f04a7583f07d1939cd31649525e033c5f0019e7..1d1e9f3163ad7ca5e573fefd0ed499ebe5f6dbb2 100644 (file)
         "optuna_hyperopt_trials": 36,
         "optuna_hyperopt_timeout": 3600,
         "optuna_hyperopt_jobs": 6,
+        "optuna_hyperopt_candles_step": 100,
         "extra_returns_per_train": {
             "DI_value_param1": 0,
             "DI_value_param2": 0,
index c3273eb551929230fd599c71f030903ef7b67bb9..7721f7232cf35c34a49dd8cb008b150c638ff8e6 100644 (file)
@@ -79,6 +79,7 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel):
                     X_test,
                     y_test,
                     test_weights,
+                    self.freqai_info.get("optuna_hyperopt_candles_step", 100),
                     self.model_training_parameters,
                 ),
                 n_trials=self.freqai_info.get("optuna_hyperopt_trials", N_TRIALS),
@@ -208,13 +209,13 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel):
         return eval_set, eval_weights
 
 
-def objective(trial, X, y, train_weights, X_test, y_test, test_weights, params):
-    train_window = trial.suggest_int("train_period_candles", 1152, 17280, step=100)
+def objective(trial, X, y, train_weights, X_test, y_test, test_weights, candles_step, params):
+    train_window = trial.suggest_int("train_period_candles", 1152, 17280, step=candles_step)
     X = X.tail(train_window)
     y = y.tail(train_window)
     train_weights = train_weights[-train_window:]
 
-    test_window = trial.suggest_int("test_period_candles", 1152, 17280, step=100)
+    test_window = trial.suggest_int("test_period_candles", 1152, 17280, step=candles_step)
     X_test = X_test.tail(test_window)
     y_test = y_test.tail(test_window)
     test_weights = test_weights[-test_window:]
index 222b2a7aa18f2fd900bf32ba557b4abe445d126c..084e5ee7a4453c417fa873a26de2314936ea794f 100644 (file)
@@ -76,6 +76,7 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel):
                     X_test,
                     y_test,
                     test_weights,
+                    self.freqai_info.get("optuna_hyperopt_candles_step", 100),
                     self.model_training_parameters,
                 ),
                 n_trials=self.freqai_info.get("optuna_hyperopt_trials", N_TRIALS),
@@ -205,13 +206,13 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel):
         return eval_set, eval_weights
 
 
-def objective(trial, X, y, train_weights, X_test, y_test, test_weights, params):
-    train_window = trial.suggest_int("train_period_candles", 1152, 17280, step=100)
+def objective(trial, X, y, train_weights, X_test, y_test, test_weights, candles_step, params):
+    train_window = trial.suggest_int("train_period_candles", 1152, 17280, step=candles_step)
     X = X.tail(train_window)
     y = y.tail(train_window)
     train_weights = train_weights[-train_window:]
 
-    test_window = trial.suggest_int("test_period_candles", 1152, 17280, step=100)
+    test_window = trial.suggest_int("test_period_candles", 1152, 17280, step=candles_step)
     X_test = X_test.tail(test_window)
     y_test = y_test.tail(test_window)
     test_weights = test_weights[-test_window:]