]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
refactor(qav3): add optuna config section in freqai config
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 6 Feb 2025 12:21:40 +0000 (13:21 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 6 Feb 2025 12:21:40 +0000 (13:21 +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 b28f087d3e282e84f17552fd39e3e7499792ba06..2b6fe86971ea2d3137aa92d28efc7ba08c94cca3 100644 (file)
     "track_performance": false,
     "data_kitchen_thread_count": 6, // set to number of CPU threads / 4
     "outlier_threshold": 0.999,
-    "optuna_hyperopt": true,
-    "optuna_hyperopt_trials": 36,
-    "optuna_hyperopt_timeout": 3600,
-    "optuna_hyperopt_jobs": 6,
-    "optuna_hyperopt_candles_step": 10,
+    "optuna_hyperopt": {
+      "enabled": true,
+      "n_trials": 36,
+      "n_jobs": 6,
+      "timeout": 3600,
+      "candles_step": 10
+    },
     "extra_returns_per_train": {
       "DI_value_param1": 0,
       "DI_value_param2": 0,
index 1ad7b5d2356f566f8032212656f0165ffca98dde..f6736011b694eb47dd382c804de236c043b554cd 100644 (file)
@@ -38,8 +38,9 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel):
 
     def __init__(self, **kwargs):
         super().__init__(**kwargs)
+        self.__optuna_config = self.freqai_info.get("optuna_hyperopt", {})
         self.__optuna_hyperopt: bool = (
-            self.freqai_info.get("optuna_hyperopt", False)
+            self.__optuna_config.get("enabled", False)
             and self.data_split_parameters.get("test_size", TEST_SIZE) > 0
         )
         self.__optuna_hp = {}
@@ -77,12 +78,12 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel):
                     y_test,
                     test_weights,
                     self.freqai_info.get("fit_live_predictions_candles", 100),
-                    self.freqai_info.get("optuna_hyperopt_candles_step", 100),
+                    self.__optuna_config.get("candles_step", 100),
                     self.model_training_parameters,
                 ),
-                n_trials=self.freqai_info.get("optuna_hyperopt_trials", N_TRIALS),
-                n_jobs=self.freqai_info.get("optuna_hyperopt_jobs", 1),
-                timeout=self.freqai_info.get("optuna_hyperopt_timeout", 3600),
+                n_trials=self.__optuna_config.get("n_trials", N_TRIALS),
+                n_jobs=self.__optuna_config.get("n_jobs", 1),
+                timeout=self.__optuna_config.get("timeout", 3600),
             )
 
             self.__optuna_hp = study.best_params
index e57b8d36b04a89c86d464ab91ae412f12634b14a..15abca3c4ed10007b83c8837735659194a10eeae 100644 (file)
@@ -38,8 +38,9 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel):
 
     def __init__(self, **kwargs):
         super().__init__(**kwargs)
+        self.__optuna_config = self.freqai_info.get("optuna_hyperopt", {})
         self.__optuna_hyperopt: bool = (
-            self.freqai_info.get("optuna_hyperopt", False)
+            self.__optuna_config.get("enabled", False)
             and self.data_split_parameters.get("test_size", TEST_SIZE) > 0
         )
         self.__optuna_hp = {}
@@ -77,12 +78,12 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel):
                     y_test,
                     test_weights,
                     self.freqai_info.get("fit_live_predictions_candles", 100),
-                    self.freqai_info.get("optuna_hyperopt_candles_step", 100),
+                    self.__optuna_config.get("candles_step", 100),
                     self.model_training_parameters,
                 ),
-                n_trials=self.freqai_info.get("optuna_hyperopt_trials", N_TRIALS),
-                n_jobs=self.freqai_info.get("optuna_hyperopt_jobs", 1),
-                timeout=self.freqai_info.get("optuna_hyperopt_timeout", 3600),
+                n_trials=self.__optuna_config.get("n_trials", N_TRIALS),
+                n_jobs=self.__optuna_config.get("n_jobs", 1),
+                timeout=self.__optuna_config.get("timeout", 3600),
             )
 
             self.__optuna_hp = study.best_params