From 7a70fad448b7a42a770a595f2f867a27191a09db Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Wed, 29 Jan 2025 20:49:29 +0100 Subject: [PATCH] feat: add tunable for the candles history optuna lookup MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- quickadapter/user_data/config-template.json | 1 + .../freqaimodels/LightGBMRegressorQuickAdapterV35.py | 7 ++++--- .../freqaimodels/XGBoostRegressorQuickAdapterV35.py | 7 ++++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/quickadapter/user_data/config-template.json b/quickadapter/user_data/config-template.json index 8f04a75..1d1e9f3 100644 --- a/quickadapter/user_data/config-template.json +++ b/quickadapter/user_data/config-template.json @@ -119,6 +119,7 @@ "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, diff --git a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py index c3273eb..7721f72 100644 --- a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py @@ -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:] diff --git a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py index 222b2a7..084e5ee 100644 --- a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py @@ -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:] -- 2.43.0