From: Jérôme Benoit Date: Fri, 28 Feb 2025 17:34:00 +0000 (+0100) Subject: perf(qav3): ensure hyperopt choose the labelling period optimally X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=c14c79ae2bfc58660f469b4277cd7ba8813bb9ab;p=freqai-strategies.git perf(qav3): ensure hyperopt choose the labelling period optimally Signed-off-by: Jérôme Benoit --- diff --git a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py index 227b9af..59ede95 100644 --- a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py @@ -608,8 +608,12 @@ def period_objective( min_label_period_candles, max_label_period_candles, ) - y_test = y_test.tail(label_period_candles) - y_pred = y_pred[-label_period_candles:] + y_test_length = len(y_test) + y_pred_length = len(y_pred) + y_test = y_test.tail(y_test_length - (y_test_length % label_period_candles)) + y_pred = y_pred[-(y_pred_length - (y_pred_length % label_period_candles)) :] + y_test.reshape(len(y_test) // label_period_candles, label_period_candles) + y_pred.reshape(len(y_pred) // label_period_candles, label_period_candles) error = sklearn.metrics.root_mean_squared_error(y_test, y_pred) diff --git a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py index f0860ca..3b02ebf 100644 --- a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py @@ -612,8 +612,12 @@ def period_objective( min_label_period_candles, max_label_period_candles, ) - y_test = y_test.tail(label_period_candles) - y_pred = y_pred[-label_period_candles:] + y_test_length = len(y_test) + y_pred_length = len(y_pred) + y_test = y_test.tail(y_test_length - (y_test_length % label_period_candles)) + y_pred = y_pred[-(y_pred_length - (y_pred_length % label_period_candles)) :] + y_test.reshape(len(y_test) // label_period_candles, label_period_candles) + y_pred.reshape(len(y_pred) // label_period_candles, label_period_candles) error = sklearn.metrics.root_mean_squared_error(y_test, y_pred)