From: Jérôme Benoit Date: Wed, 29 Jan 2025 19:49:29 +0000 (+0100) Subject: feat: add tunable for the candles history optuna lookup X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=7a70fad448b7a42a770a595f2f867a27191a09db;p=freqai-strategies.git feat: add tunable for the candles history optuna lookup Signed-off-by: Jérôme Benoit --- 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:]