]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
feat(qav3): allow to configure optuna storage type
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 10 Feb 2025 14:38:45 +0000 (15:38 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 10 Feb 2025 14:38:45 +0000 (15:38 +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 12e5a6efcba547efbb362f7a625b1ae0e1ba1726..13effa223cb2ad93ada0f506781600ea4b65c467 100644 (file)
       "n_trials": 36,
       "n_jobs": 6,
       "timeout": 3600,
-      "candles_step": 10
+      "candles_step": 10,
+      "storage_type": "sqlite"
     },
     "extra_returns_per_train": {
       "DI_value_param1": 0,
index f8429a6f2821c2ebb5934a50d4c1e0190aed3403..f21788efab8e675e75167cd5d66876aab40808ff 100644 (file)
@@ -70,6 +70,17 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel):
         if self.__optuna_hyperopt:
             study_name = str(dk.pair)
             storage_dir = str(dk.full_path)
+            storage_type = self.__optuna_config.get("storage_type", "sqlite")
+            if storage_type == "sqlite":
+                storage = (
+                    f"sqlite:///{storage_dir}/optuna-{sanitize_path(study_name)}.sqlite"
+                )
+            elif storage_type == "file":
+                storage = optuna.storages.JournalStorage(
+                    optuna.storages.journal.JournalFileBackend(
+                        f"{storage_dir}/optuna-{sanitize_path(study_name)}.log"
+                    )
+                )
             pruner = optuna.pruners.HyperbandPruner()
             study = optuna.create_study(
                 study_name=study_name,
@@ -79,11 +90,7 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel):
                 ),
                 pruner=pruner,
                 direction=optuna.study.StudyDirection.MINIMIZE,
-                storage=optuna.storages.JournalStorage(
-                    optuna.storages.journal.JournalFileBackend(
-                        f"{storage_dir}/optuna-{sanitize_path(study_name)}.log"
-                    )
-                ),
+                storage=storage,
                 load_if_exists=True,
             )
             study.optimize(
index f2cb844f5a3e444cdf2daa885d3374472b9a3b93..b70099c7218407bac01ca3d85985782fec964b43 100644 (file)
@@ -70,6 +70,17 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel):
         if self.__optuna_hyperopt:
             study_name = str(dk.pair)
             storage_dir = str(dk.full_path)
+            storage_type = self.__optuna_config.get("storage_type", "sqlite")
+            if storage_type == "sqlite":
+                storage = (
+                    f"sqlite:///{storage_dir}/optuna-{sanitize_path(study_name)}.sqlite"
+                )
+            elif storage_type == "file":
+                storage = optuna.storages.JournalStorage(
+                    optuna.storages.journal.JournalFileBackend(
+                        f"{storage_dir}/optuna-{sanitize_path(study_name)}.log"
+                    )
+                )
             pruner = optuna.pruners.HyperbandPruner()
             study = optuna.create_study(
                 study_name=study_name,
@@ -79,11 +90,7 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel):
                 ),
                 pruner=pruner,
                 direction=optuna.study.StudyDirection.MINIMIZE,
-                storage=optuna.storages.JournalStorage(
-                    optuna.storages.journal.JournalFileBackend(
-                        f"{storage_dir}/optuna-{sanitize_path(study_name)}.log"
-                    )
-                ),
+                storage=storage,
                 load_if_exists=True,
             )
             study.optimize(